Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ช่วยหน่อยค่ะ เป็นการค้นหาข้อมูลอ่ะค่ะ ว่าทำไมมันผิดตรงนี้อ่ะค่ะ



 

ช่วยหน่อยค่ะ เป็นการค้นหาข้อมูลอ่ะค่ะ ว่าทำไมมันผิดตรงนี้อ่ะค่ะ

 



Topic : 090582

Guest




Code (PHP)
<?php
session_start();
include "Config.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
</head>
<body>
<p><strong>ค้นหาสินค้า</strong></p>
<table width="590" border="1">
  <tr>
    <td><form id="form1" name="form1" method="post" action="">
      <label>
        <input type="text" name="search" id="search" />
        </label>
      <label>
      <input type="submit" name="button" id="button" value="ค้นหา" />
      </label>
    </form>    </td>
  </tr>
  <tr>
    <td><table width="582" border="1">
      <tr>
        <td><div align="center">รหัสินค้า</div></td>
        <td><div align="center">ชื่อสินค้า</div></td>
        <td><div align="center">ราคา</div></td>
        <td><div align="center">รายละเอียด</div></td>
      </tr>
      <?
$id_prd=$_POST['id_prd'];
$name_prd=$_POST['name_prd'];
$price_prd=$_POST['price_prd'];
$detail_prd=$_POST['detail_prd'];
$search=$_POST['search'];
	  if(!$search) {
	  $sql="SELECT * FROM `tb_product`";  
	} else {
	$sql="SELECT * FROM `tb_product` WHERE name_prd Like'%$search%' ";
}
$query=mysql_db_query($db,$sql);
$query=mysql_fetch_array($query);
?>
<tr>
<td><?php echo"$array[id_prd]";?></td>
<td><?php echo"$array[name_prd]";?></td>
<td><?php echo"$array[price_prd]";?></td>
<td><?php echo"$array[detail_prd]";?></td>
</tr>
    </table></td>
  </tr>
</table>
 <?
mysql_close();
?>
</body>
</html>

เวลาพิมพ์ข้อมูลลงไปและคลิกค้นหามันขึ้นแบบนี้ค่ะ

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\AppServ\www\Project1\admin\search_prd.php on line 44



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-02-09 01:25:41 By : goy View : 605 Reply : 3
 

 

No. 1



โพสกระทู้ ( 1,521 )
บทความ ( 2 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

มันไม่มีข้อมูล ให้ mysql_fetch_array อะคับ

ลองแก้โดยใช้ @ ใส่ไปข้างหน้า mysql_fetch_array แบบนี้ @mysql_fetch_array

มันก็จะไม่แสดง Error ออกมา ทางที่ดีควรจะใช้ mysql_num_rows() เพื่อตรวจสอบ ก่อนที่จะใช้ mysql_fetch_array

เพราะถ้าไม่มีข้อมูล ก็จะใช้ mysql_fetch_array ไม่ได้






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-09 01:54:16 By : Krungsri
 


 

No. 2



โพสกระทู้ ( 3,155 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


Code (PHP)
$query=mysql_db_query($db,$sql) or die(mysql_error()."[$sql]");
while($array=mysql_fetch_array($query)){
echo "<tr>";
echo "<td>{$array["id_prd"]}</td>";
echo "<td>{$array["name_prd"]}</td>";
echo "<td>{$array["price_prd"]}</td>";
echo "<td>{$array["detail_prd"]}</td></tr>\n";
 } 

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-09 03:37:43 By : sakuraei
 

 

No. 3



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

เสริมอีกนิดครับ
การเขียนโค้ดแบบนี้ เป็นอะไรที่ความปลอดภัยต่ำมากครับ และอาจจะเป็นเหตุผลที่ทำให้เกิด error ดังกล่าว

Code (PHP)
$search=$_POST['search'];
	  if(!$search) {
	  $sql="SELECT * FROM `tb_product`";  
	} else {
	$sql="SELECT * FROM `tb_product` WHERE name_prd Like'%$search%' ";
}


เพราะ

$search=$_POST['search'];

คุณรับค่าจากผู้ใช้มาโดยตรง และเอาไปใช้โดยตรง

Code (PHP)
$sql="SELECT * FROM `tb_product` WHERE name_prd Like'%$search%' ";


ลองคิดดูว่า หากผู้ใช้พิมพ์ค้นหาโดยใช้เครื่องหมาย '

query ที่ได้จะเป็นเช่นนี้ครับ

Code (SQL)
SELECT * FROM `tb_product` WHERE name_prd Like'%'%' 


ซึ่งเป็น query ที่ error แน่นอน

วิธีเพิ่มความปลอดภัย คือเราควร ESCAPE ค่าที่รับมาจากผู้ใช้เหล่านี้ด้วยฟังก์ชั่น mysql_real_escape_String()
ก่อนที่จะนำค่าเหล่านั้นไปรวมกับ query

$search=mysql_real_escape_string($_POST['search']);
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-09 05:28:07 By : cookiephp
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยหน่อยค่ะ เป็นการค้นหาข้อมูลอ่ะค่ะ ว่าทำไมมันผิดตรงนี้อ่ะค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่