 |
ช่วยดูหน่อยค่ะ ว่า error ตรงไหนค่ะ คือต้องการจะทำให้เลือกได้ว่าจะค้นหาจากอะไรอะค่ะ มี 3 อย่างอะค่ะ |
|
 |
|
|
 |
 |
|
search_by_title.php on line 196
search_by_title.php on line 198
ช่วยดึงมาหัยดูหน่อยคราบ
|
 |
 |
 |
 |
Date :
2009-12-26 22:48:38 |
By :
parita |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
1.
%{$search_term}%
2.
$result = mysqli_query($cn,$sql) or die(mysql_error()) ; //เผื่อมีผิดตรงอื่นอีกให้แสดงข้อความ error มาดุครับ
3.
รูปแบบน่าจะผิด ควรใช้ join มากกว่า
- r_id
- id
- project_id
- pro_id
ทั้ง 4ฟิลด์นี้เป็นฟิลด์ของตารางอะไร
|
 |
 |
 |
 |
Date :
2009-12-26 23:01:00 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ของคุณ T หมายถึงโค้ดหรือเปล่าค่ะ
Code (PHP)
if(!$cn) {
echo "ไม่สามารถเชื่อมต่อกับ MySQL Server ได้<br>";
exit;
}
mysqli_select_db($cn,"project");
$sql = "SELECT * FROM researcher,project,researcher_project WHERE ({$search_field}
LIKE '%{$search_term}%') AND (r_id=id) AND (project_id=pro_id) ;";
$result = mysqli_query($cn,$sql) or die(mysql_error()) ;
echo "<h2>ผลการค้นหา</h2>\n";
echo "จำนวนที่พบ: " . mysqli_num_rows($result) . "รายการ<br><br>\n"; บรรทัดที่ 196
$i=1;
while ($row = mysqli_fetch_array($result)){ บรรทัดที่ 198
echo "<b>{$i}. ชื่อนักวิจัย: {$row['r_name']}</b><br>\n";
echo "ภาควิชา: {$row['r_department']}<br>\n";
echo "ชื่องานวิจัย: {$row['pro_ename']}<br>\n";
echo "ชื่องานวิจัย: {$row['pro_thname']}<br><br>\n";
$i++;
}
mysqli_close($cn);
}
?>
ของคุณ xbeginner01
r_id ตาราง researcher
id กับ project_id ตาราง researcher_project
pro_id ตาราง project
อ่ะค่ะ
ขอบคุณมากค่ะ
|
 |
 |
 |
 |
Date :
2009-12-27 00:56:03 |
By :
elfying |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้แล้วใช่ป่ะครับ ได้ตามที่ต้องการแล้วน่ะ   
|
 |
 |
 |
 |
Date :
2009-12-27 01:11:19 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ยังไม่ได้เลยค่ะ
พอใส่คำค้นหาแล้ว ไม่มีผลออกมาได้ แต่โค้ดไม่ error แล้วอะค่ะ Code (PHP)
<?php
if (isset($_POST["send"]))
process_form();
else
show_form();
function show_form() {
echo <<<HTMLBLOCK
<form id="form2" name="form2" method="post" action="{$_SERVER['PHP_SELF']}">
<table width="460" align="center">
<tr>
<td width="452"><span class="style40">ค้นหาจาก:
<label>
<select name="searchtype" id="searchtype">
<option value="r_name">ชื่อนักวิจัย</option>
<option value="pro_thname">ชื่องานวิจัย</option>
<option value="r_department">ชื่อภาควิชา</option>
</select>
</label>
</span></td>
</tr>
</table>
<table width="456" border="0" align="center">
<tr>
<td width="450"><span class="style40">ป้อนคำค้นหา:</span><span class="style40">
<label>
<input name="searchterm" type="text" id="searchterm" size="50" />
</label>
</span>
<p class="style40">
<label>
<input type="submit" name="send" id="send" value="ค้นหา" />
</label>
</p></td>
</tr>
</table>
<p> </p>
</form>
HTMLBLOCK;
}
function process_form(){
$search_term=trim($_POST["searchterm"]);
if ($search_term == ""){
echo "<center><h2><font color=\"red\">การค้นหาเกิดข้อผิดพลาด: คุณยังไม่ได้ป้อนคำค้นหา</font></h2></center><br>";
show_form();
exit;
}
$search_term=addslashes($search_term);
$search_filed=$_POST["searchtype"];
$cn = mysqli_connect("127.0.0.1","root","admin");
if(!$cn) {
echo "ไม่สามารถเชื่อมต่อกับ MySQL Server ได้<br>";
exit;
}
mysqli_select_db($cn,"project");
$sql = "SELECT * FROM researcher,project,researcher_project WHERE {$search_field}
LIKE '%{$search_term}%' AND (r_id=id) AND (project_id=pro_id) ;";
$result = mysqli_query($cn,$sql) or die(mysql_error()) ;
echo "<h2>ผลการค้นหา</h2>\n";
echo "จำนวนที่พบ: " . mysqli_num_rows($result) . "รายการ<br><br>\n";
$i=1;
while ($row = mysqli_fetch_array($result)){
echo "<b>{$i}. ชื่อนักวิจัย: {$row['r_name']}</b><br>\n";
echo "ภาควิชา: {$row['r_department']}<br>\n";
echo "ชื่องานวิจัย: {$row['pro_ename']}<br>\n";
echo "ชื่องานวิจัย: {$row['pro_thname']}<br><br>\n";
$i++;
}
mysqli_close($cn);
}
?>
|
 |
 |
 |
 |
Date :
2009-12-27 01:36:16 |
By :
elfying |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
1.
echo $sql ; ดูก่อนครับว่าถูกต้องเปล่า มีค่าอะไรหายไปเปล่า
2.
ลองเอาวงเล็บปีกกาออกดูน่ะ
SELECT * FROM researcher,project,researcher_project WHERE $search_field
LIKE '%$search_term%' AND (r_id=id) AND (project_id=pro_id)
3. เปลี่ยนแนวเขียนใหม่
select *
from researcher_project as rp
right join researcher as r
on r.r_id=rp.id
right join project as p
on p.pro_id=rp.project_id
where $search_field
like '%$search_term%'
order by rp.id
|
 |
 |
 |
 |
Date :
2009-12-27 02:27:52 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
SELECT * FROM researcher_project as rp right join researcher as r on r.r_id=rp.id right join project as p on p.pro_id=rp.project_id WHERE r_name LIKE '%กนกวรรณ%' ;
echo sql ออกมาได้แบบนี้อะค่ะ
ลองเขียนตามแนวใหม่ที่แนะนำอะค่ะ ยังไม่ได้ผลออกมาเลยค่ะ
|
 |
 |
 |
 |
Date :
2009-12-27 21:47:00 |
By :
elfying |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
dump sql มาให้ดูหน่อยได้ป่ะครับ พอดีผมเองก็กำลังทำการค้นหาหลายตารางแบบนี้อยู่ครับ เด่วช่วยดูให้
|
 |
 |
 |
 |
Date :
2009-12-27 21:57:15 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
dump ยังไงหรอค่ะ ไม่รู้จริงๆค่ะ 
|
 |
 |
 |
 |
Date :
2009-12-27 22:22:13 |
By :
elfying |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไปที่ phpmyadmin หาลิงค์คำว่า export ภาษาไทยน่าจะเขียนว่า ส่งออก แล้วก็เลือกประเภทอะไรก็ได้ เลือก sql มาก็ได้ครับ ก็ dump sql แล้วครับ แล้วเอามาโพสครับ ถ้ามันเยอะมาก ก็ไปอัพโหลดไฟล์ก่อนก็ได้แล้วค่อยส่งลิงค์มาให้ดูครับ
|
 |
 |
 |
 |
Date :
2009-12-27 23:11:13 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
--
-- Table structure for table `journal`
--
CREATE TABLE `journal` (
`pro_id` varchar(10) NOT NULL,
`pro_ename` varchar(100) NOT NULL,
`pro_thname` varchar(100) NOT NULL,
`scholarship_id` varchar(10) NOT NULL,
`start_year` year(4) NOT NULL,
`end_year` year(4) NOT NULL,
`complete` datetime NOT NULL,
`abstract` text NOT NULL,
PRIMARY KEY (`pro_id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
--
-- Dumping data for table `journal`
--
Table structure for table `member`
--
CREATE TABLE `member` (
`mem_id` int(4) NOT NULL auto_increment,
`user` varchar(8) NOT NULL,
`pass` varchar(25) NOT NULL,
`repass` varchar(25) NOT NULL,
`name` varchar(50) NOT NULL,
`surname` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`department` varchar(50) NOT NULL,
`degree` varchar(8) NOT NULL,
PRIMARY KEY (`mem_id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620 AUTO_INCREMENT=47 ;
--
-- Dumping data for table `member`
Table structure for table `other_researcher`
--
CREATE TABLE `other_researcher` (
`o_id` varchar(10) NOT NULL,
`o_name` varchar(100) NOT NULL,
`o_email` varchar(100) NOT NULL,
`o_pic` blob NOT NULL,
`o_company` varchar(100) NOT NULL,
PRIMARY KEY (`o_id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
--
-- Dumping data for table `other_researcher`
--
Table structure for table `pcu`
--
CREATE TABLE `pcu` (
`id` varchar(4) NOT NULL,
`nopcu` varchar(20) NOT NULL,
`rela` varchar(100) NOT NULL,
`pro_th` varchar(100) NOT NULL,
`pro_eng` varchar(500) NOT NULL,
`publish` varchar(100) NOT NULL,
`req` varchar(100) NOT NULL,
`send_journal` varchar(50) NOT NULL,
`send_cd` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
--
-- Dumping data for table `pcu`
--
Table structure for table `progess_report`
--
CREATE TABLE `progess_report` (
`pro_id` varchar(10) NOT NULL,
`progress_id` varchar(10) NOT NULL,
`file` varchar(0) NOT NULL,
`sent_date` date NOT NULL,
PRIMARY KEY (`pro_id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
--
-- Dumping data for table `progess_report`
--
Table structure for table `researcher`
--
CREATE TABLE `researcher` (
`r_id` varchar(11) NOT NULL,
`r_name` varchar(100) NOT NULL,
`r_status` varchar(10) NOT NULL,
`r_phone` varchar(10) NOT NULL,
`r_email` varchar(100) NOT NULL,
`r_pic` blob NOT NULL,
`r_university` varchar(100) NOT NULL,
`r_faculty` varchar(100) NOT NULL,
`r_department` varchar(100) NOT NULL,
`papercount` varchar(100) NOT NULL,
PRIMARY KEY (`r_id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
--
-- Dumping data for table `researcher`
--
Table structure for table `researcher_project`
--
CREATE TABLE `researcher_project` (
`id` varchar(10) NOT NULL,
`project_id` varchar(10) NOT NULL,
`status_id` varchar(10) NOT NULL,
`memo` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
--
-- Dumping data for table `researcher_project`
--
Table structure for table `scholarship`
--
CREATE TABLE `scholarship` (
`sch_id` varchar(10) NOT NULL,
`sch_type` varchar(50) NOT NULL,
`period` varchar(100) NOT NULL,
`source` varchar(100) NOT NULL,
`in_id` varchar(10) NOT NULL,
`out_id` varchar(10) NOT NULL,
PRIMARY KEY (`sch_id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
--
-- Dumping data for table `scholarship`
--
Table structure for table `status`
--
CREATE TABLE `status` (
`status_id` varchar(10) NOT NULL,
`status_name` varchar(25) NOT NULL,
PRIMARY KEY (`status_id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
--
-- Dumping data for table `status`
--
Table structure for table `student`
--
CREATE TABLE `student` (
`s_id` varchar(10) NOT NULL,
`s_name` varchar(100) NOT NULL,
`s_email` varchar(100) NOT NULL,
`s_pic` blob NOT NULL,
`s_university` varchar(100) NOT NULL,
`s_faculty` varchar(100) NOT NULL,
`s_department` varchar(100) NOT NULL,
`edu_level` varchar(100) NOT NULL,
PRIMARY KEY (`s_id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
--
-- Dumping data for table `student`
--
ไม่ได้ใส่ข้อมูลมาให้ดู เพราะว่ามีที่เป็น blob แล้มันจะเก็บเป็นตัวหนังสือ งง ๆ อ่ะค่ะ เลยเอาออก
แต่ว่าเวลา query ผ่าน localhost ก็ออกนะค่ะ ทำไมมาลง php ไม่ออกก็ไม่รู้เหมือนกันค่ะ
งง มาก
ขอบคุณที่ช่วยเหลือค่ะ
|
 |
 |
 |
 |
Date :
2009-12-27 23:21:41 |
By :
elfying |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอข้อมูลตัวอย่างหน่อยครับ จะได้ทดสอบถูก 
|
 |
 |
 |
 |
Date :
2009-12-28 00:00:28 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
INSERT INTO `journal` VALUES ('111', 'ิbanana fruit', 'วิจัยกล้วย', 'ทุนภายนอก', 0000, 0000, '2009-12-23 20:54:05', '');
INSERT INTO `researcher` VALUES ('001', 'กนกวรรณ', 'ผศ.', '0605527', '[email protected]', 392d38, '', 'วิทยาศาสตร์', 'พฤกษศาสตร์', '3');
INSERT INTO `researcher_project` VALUES ('001', '111', '1', '');
ข้อมูลไม่ใช่ข้อมูลจริงจังอะไรอะค่ะ เป็นข้อมูลที่ทำลองๆก่อนอะค่ะ เลยอาจดู งง นะค่ะ
ตอนนี้มันขึ้น error แบบนี้ แบบว่าไรหรอค่ะ
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\AppServ\www\Project\search_by_title.php on line 199
จำนวนที่พบ: รายการ
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\AppServ\www\Project\search_by_title.php on line 201
|
 |
 |
 |
 |
Date :
2009-12-28 00:12:27 |
By :
elfying |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตรงนี้เรามองไม่เห็นภาพครับ แต่กำลังบอกว่าคำสั่ง query ผิดน่ะ
mysqli_query('xxxx') or die(mysql_error()) ; ต้องใส่อย่างงี้ครับ เราถึงจะเข้าใจว่า error อะไร
|
 |
 |
 |
 |
Date :
2009-12-28 00:27:33 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พอใส่ลงไปแล้ว มันไม่มีอะไรเลยค่ะ แบบว่าไม่มีผลของการค้นหาด้วยค่ะ
|
 |
 |
 |
 |
Date :
2009-12-28 00:47:39 |
By :
elfying |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สู่ ๆ น้องelfying
เอาใจช่วยอยู่ห่างๆ
หัยพี่ xbeginner01 โชฝีมือคนเดียวเลย
มาทักแล้วไป
|
 |
 |
 |
 |
Date :
2009-12-28 00:52:18 |
By :
parita |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณนะค่ะ คุณ T
|
 |
 |
 |
 |
Date :
2009-12-28 01:09:12 |
By :
elfying |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ทำไม id ของ researcher_project เป็น primary key ละครับ
จะกลายเป็นว่า
นักวิจัย 1 คนทำโครงการได้แค่ 1 โครงการสิครับ
CREATE TABLE `researcher_project` (
`id` varchar(10) NOT NULL,
`project_id` varchar(10) NOT NULL,
`status_id` varchar(10) NOT NULL,
`memo` text NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
ลบออกไปครบ PRIMARY KEY (`id`) เพราะ id เป็น foreign key ของ r_id ครับ
ถ้าจงใจก็ไม่ต้องแก้ครับ หุหุ
รอแปปหนึ่งน่ะครับ เดียวกำลังทดสอบให้อยู่
|
 |
 |
 |
 |
Date :
2009-12-28 01:21:33 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมลองทดสอบแล้วครับ ข้างล่างเลยลองดูครับ ว่าได้เปล่า แต่ผมได้น่ะ  
Code (PHP)
<form id="form2" name="form2" method="post" action="<?=$_SERVER['PHP_SELF']?>">
<table width="460" align="center">
<tr>
<td width="452"><span class="style40">ค้นหาจาก:
<label>
<select name="searchtype" id="searchtype">
<option value="r_name">ชื่อนักวิจัย</option>
<option value="pro_thname">ชื่องานวิจัย</option>
<option value="r_department">ชื่อภาควิชา</option>
</select>
</label>
</span></td>
</tr>
</table>
<table width="456" border="0" align="center">
<tr>
<td width="450"><span class="style40">ป้อนคำค้นหา:</span><span class="style40">
<label>
<input name="searchterm" type="text" id="searchterm" size="50" />
</label>
</span>
<p class="style40">
<label>
<input type="submit" name="send" id="send" value="ค้นหา" />
</label>
</p></td>
</tr>
</table>
<p> </p>
</form>
<?php
if(isset($_POST[send])){
$field_search =$_POST[searchtype];
$search =trim($_POST[searchterm]);
$cn = mysqli_connect("localhost","root","admin");
mysqli_select_db($cn,'project');
mysqli_query($cn,"SET NAMES TIS620");
$result=mysqli_query($cn,"
SELECT *
FROM project as p
left join researcher_project as rp
on rp.project_id =p.pro_id
left join researcher as r
on r.r_id=rp.id
where $field_search like '%$search%'
")or die(mysql_error());
echo "<h2>ผลการค้นหา</h2>\n";
echo "จำนวนที่พบ: " . mysqli_num_rows($result) . "รายการ<br><br>\n";
$i=1;
while ($row = mysqli_fetch_array($result)){
echo "<b>{$i}. ชื่อนักวิจัย: {$row['r_name']}</b><br>\n";
echo "ภาควิชา: {$row['r_department']}<br>\n";
echo "ชื่องานวิจัย: {$row['pro_ename']}<br>\n";
echo "ชื่องานวิจัย: {$row['pro_thname']}<br><br>\n";
$i++;
}
mysqli_close($cn);
}
?>[
|
 |
 |
 |
 |
Date :
2009-12-28 01:42:22 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลบแล้วค่ะ
ยังไม่ง่วงหรอค่ะ 
|
 |
 |
 |
 |
Date :
2009-12-28 01:54:37 |
By :
elfying |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใกล้แหล่ะครับ เดียวอาบเสร็จก็นอนแหล่ะ    
คิดว่าน่าจะได้น่ะ ไม่สิต้องได้แหล่ะ 555 ติดตรงไหนค่อยว่ากันต่อพรุ่งนี้บ่ายๆแหล่ะครับ
|
 |
 |
 |
 |
Date :
2009-12-28 01:57:53 |
By :
xbeginner01 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
วันนี้ขอบคุณมากเลยค่ะ
ฝันดีนะค่ะ 
|
 |
 |
 |
 |
Date :
2009-12-28 02:11:17 |
By :
elfying |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|