กรอกค่าเพื่อเช็คกับ db แล้ว error คือว่าทำช่อง กรอกค้นหาข้อมูลของสมาชิก โดยที่ ถ้าไม่กรอกค่าจะแสดงข้อมูลทั้งหมด
คือว่าทำช่อง กรอกค้นหาข้อมูลของสมาชิก โดยที่ ถ้าไม่กรอกค่าจะแสดงข้อมูลทั้งหมด
แต่ถ้ากรอกค่าไปแล้วจะแสดงข้อมูลของ id นั้นออกมา หรือกรอกค่าผิดให้แสดง ข้อความว่า "ไม่พบข้อมูลที่ค้นหา"
ตอนนี้ติดตรงที่เวลากรอกค่าแล้ว มัน error ค่ะ ถึงแม้ว่าจะมีสมาชิคนนั้นก็ตาม ช่วยหน่อยค่ะ
Code (PHP)
<?php
<table width="94%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><form id="form1" method="post" action="">
<div align="center">
<p><span style="font-weight: bold"><font color="#000000">พิมพ์ชื่อต้องการค้นหา</font></span>
<input type="text" name="keyword" id="keyword"/>
<input type="submit" name="button" id="button" value="ค้นหา" />
<br />
</p>
<p><font color="#DD0000">หากไม่กรอกคำค้นหา ระบบจะแสดงข้อมูลทั้งหมดนะคะ</font><br />
</p>
</div>
</form>
<?
include "config.inc.php";
include "../function.php";
if($keyword==""){
$sql = "SELECT test_score.test_id,test_score.test_type,test_score.test_date, test_score.score,student.std_id,student.std_name FROM test_score,student
WHERE test_score.std_id=student.std_id order by test_score.test_id desc";
}else{
$sql = "SELECT test_score.test_id,test_score.test_type,test_score.test_date, test_score.score,student.std_id,student.std_name FROM test_score,student
WHERE test_score.std_id=student.std_id AND $by like '%$keyword%' order by test_score.test_id desc";
}
$dbquery = mysql_db_query($dbname,$sql);
$num_rows = mysql_num_rows($dbquery);
if($num_rows==0){
print "<br><br><center>ไม่พบข้อมูลค่ะ</center>";
}else{
?>
<table width="100%" height="48" border="0" cellpadding="4" cellspacing="1" bgcolor="#3AA7A7">
<tr>
<td width="9%" bgcolor="#FF3333"><div align="center" style="font-size: 12px">
<div align="center"><font face="MS Sans Serif"><b>ลำดับที่</b></font></div>
</div></td>
<td width="33%" bgcolor="#FF3333"><div align="center" style="font-size: 14px"><b><font face="MS Sans Serif">ชื่อนักเรียน</font></b></div></td>
<td width="19%" height="35" bgcolor="#FF3333"><div align="center" style="font-size: 14px"><font face="MS Sans Serif"><b>ประเภทแบบทดสอบ</b></font></div></td>
<td width="16%" bgcolor="#FF3333"><div align="center"><span style="font-weight: bold; font-size: 14px"><font face="MS Sans Serif">วันที่ทำ</font></span></div></td>
<td width="14%" bgcolor="#FF3333"><div align="center" style="font-size: 14px"><font face="MS Sans Serif"><b>คะแนนที่ได้</b></font></div></td>
<td width="9%" bgcolor="#FF3333"><div align="center" style="font-size: 14px"><div align="center"><b>ลบ</b></font></div></div></td>
</tr>
<?
}
for($i=0;$i<$num_rows;$i++){
$result = mysql_fetch_array($dbquery);
$test_id = $result[test_id];
$test_type = $result[test_type];
$les_number = $result[les_number];
$std_id = $result[std_id];
$test_date = $result[test_date];
$score = $result[score];
$std_id= $result[std_id];
$std_name= $result[std_name];
if($test_type =="before"){
$show_type="แบบทดสอบก่อนเรียน";
}else{
$show_type="แบบทดสอบหลังเรียน";
}
if($i%2==0){
$color="ffffff";
}else{
$color="ffffff";
}
?>
<tr bgcolor="<? if($i==0){print "ffffff";}else{print $color;}?>" onMouseOver="this.style.backgroundColor='fee1fc'" onMouseOut="this.style.backgroundColor='' ">
<td><div align="center"><font size="2" face="MS Sans Serif"><? print $i+1;?></font></div></td>
<td><font size="2" face="MS Sans Serif"><a href="student_detail.php?std_id=<? print $std_id;?>"><? print $std_name;?></a></td>
<td><div align="center"><font size="2" face="MS Sans Serif"><? print $show_type;?></font></div></td>
<td><div align="center"><font size="2" face="MS Sans Serif"><? print $test_date;?></font></div></td>
<td><div align="center"><font size="2" face="MS Sans Serif"><? print $score;?></font></div></td>
<td><div align="right">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="center"><a href="javascript:confirm_delete(<? print $test_id;?>);"><img src="/e-powerplant/image/images/del.gif" /></a></div></td>
</tr>
</table>
</div></td>
</tr>
<?
}
?>
</table>
</td>
</tr>
</table>
?>
มัน โชว์ error แบบนี้อ่ะค่ะ
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\e-powerplant\admin\admin_show_score_befor_after.php on line 124Tag : - - - -
Date :
2009-08-21 07:54:20
By :
ying-oohho
View :
1292
Reply :
8
$dbquery = mysql_db_query($dbname,$sql);
$num_rows = mysql_num_rows($dbquery);
แก้เป็น
$dbquery = @mysql_db_query($dbname,$sql);
$num_rows = @mysql_num_rows($dbquery);
ลองดูครับ
Date :
2009-08-21 08:08:55
By :
topdkclub02
คำสั่ง SQL ใน $sql ไม่ถูกต้องครับ มันถึง query ข้อมูลไม่ได้ ถ้าวิธีแก้ไขแบบของผมคือ หากมันเป็นแบบนี้ ให้คุณ Copy คำสั่ง ใน $sql ไปวางไว้ใน ช่อง SQL ของ phpmyadmin แล้วลอง รันดู แล้วมันจะแจ้งให้ครับว่า มันมีปัญหาตรงไหนครับ
Date :
2009-08-21 08:11:45
By :
kalamell
ไม่โชว์ error แล้วค่ะ แต่ก็ไม่พบข้อมูลที่ต้องการ ยังไงก็ช่วยดูอีกทีนะคะ
Date :
2009-08-21 08:12:09
By :
ying-oohho
เข้าไปเช็คที่ hphadmin แล้วมันแจ้งประเภทของการ error ไว้หยั่งงี้
Error: 1064 SQLSTATE: 42000 (ER_PARSE_ERROR)
Message: %s near '%s' at line %d
มันน่าจะผิดตรงบรรทัดนี้อ่ะค่ะ
$sql = "SELECT test_score.test_id,test_score.test_type,test_score.test_date,test_score.score,student.std_id,student.std_name FROM test_score,student
WHERE test_score.std_id=student.std_id AND $by like '%$keyword%' order by test_score.test_id desc";
แต่ไม่รู้จะแก้ยังไง ช่วยหน่อยนะค้า
Date :
2009-08-21 08:38:14
By :
ying-oohho
$sql = "SELECT test_score.test_id, test_score.test_type, test_score.test_date, test_score.score,student.std_id, student.std_name
FROM test_score, student
WHERE test_score.std_id = student.std_id AND ".$by." like '%".$keyword."%'
ORDER BY test_score.test_id desc";
//$by นี่คือชื่อ column คุณต้องการเปลี่่ย column ที่ค้นหาข้อมูลเหรอครับ จึงใช้ตัวแปร
Date :
2009-08-21 08:44:20
By :
DownsTream
ไม่ได้ต้องการเปลี่ยนค่ะ แค่ต้องการ key ข้อมูลลงไปแล้วค้นหาออกมาแค่นั้นเองค่ะ
Date :
2009-08-21 08:48:08
By :
ying-oohho
$sql = "SELECT test_score.test_id, test_score.test_type, test_score.test_date, test_score.score,student.std_id, student.std_name
FROM test_score, student
WHERE test_score.std_id = student.std_id AND ชื่อcolumn like '%".$keyword."%'
ORDER BY test_score.test_id desc";
ถ้าต้องการเปรียบเทียบกับหลาย column ให้ใช้ OR
$sql = "SELECT test_score.test_id, test_score.test_type, test_score.test_date, test_score.score,student.std_id, student.std_name
FROM test_score, student
WHERE test_score.std_id = student.std_id AND (ชื่อcolumn1 like '%".$keyword."%' OR ชื่อcolumn2 like '%".$keyword."%')
ORDER BY test_score.test_id desc";
Date :
2009-08-21 09:07:35
By :
DownsTream
column ในที่นี้คือ อะไรคะ (มันก็ยัง งงๆ)
Date :
2009-08-21 09:34:36
By :
ying-oohho
Load balance : Server 02