พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
PHP development / WHERE CLUASE
Anan
Anan
Sun 1 Oct 2006 22:46:48

ผมได้เขียนโปรแกรมดังนี้ครับ

<?
 $link=mysql_connect("localhost","root","");
 if(!$link)
 {
  print("Error");
 }
 else
 {
  mysql_select_db("company",$link);
  $sql = "SELECT company, country, email1 FROM WHERE agri=1 order by company asc";
  $res=mysql_query($sql,$link);
  print("<table border=1>");
  print("<tr><td>Company</td><td>Country</td><td>Email</td></tr>");
  while($row=mysql_fetch_row($res))
  {
   print("<tr>");
   print("<td>$row[0]</td><td>$row[3]</td><td>$row[6]</td></tr>");
  }
  print("<table>");
 }
?>

ปรากฎว่าเกิด Error ดังนี้ครับ

: mysql_fetch_row(): supplied argument is not a valid MySQL result

resource in c:\appserv\www\main\index_agri.php on line 14

Company Country Email

ขอคำแนะนำด้วยครับ

อนันต์

Administrator
Sun 1 Oct 2006 23:54:13
$sql = "SELECT company, country, email1 FROM WHERE agri=1 order by company asc";

การใชังาน SELECT...FROM คุณต้องระบุชื่อ table ที่ต้องการด้วยครับ เช่น
$sql = "SELECT company, country, email1 FROM table_name WHERE agri=1 order by company asc";
Anan
Anan
Mon 2 Oct 2006 07:20:37

ขอบคุณครับ

คงต้องขอคำแนะนำเพิ่มเติมดังนี้ครับ

<?
 $link=mysql_connect("localhost","root","");
 if(!$link)
 {
  print("Error");
 }
 else
 {
  mysql_select_db("company",$link);
  $sql = "SELECT company, country, email1 FROM company WHERE agri=1 order by company asc";
  $res=mysql_query($sql,$link);
  print("<table border=1>");
  print("<tr><td>Company</td><td>Country</td><td>Email</td></tr>");
  while($row=mysql_fetch_row($res))
  {
   print("<tr>");
   print("<td>$row[0]</td><td>$row[3]</td><td>$row[6]</td></tr>");
  }
  print("<table>");
 }
?>

ปรากฎว่าผลที่ได้เป็นดังนี้ครับ

Company Country Email
888 Natural Pty Ltd
A & A Hashim
"Al Rabih" Sonaco S.A.R.L.
AAFEX Association
ABCD
ABICAB Assoc. Brasileira da In
Abido Company for Trade and In
Four Seasons Trading Co.

จะไม่แสดงผลของ country และ email1 ออกมาด้วย ทั้งๆที่ในฐานข้อมูลมีข้อมูลนี้อยู่

ช่วยแนะนำด้วยครับ

อนันต์

Administrator
Mon 2 Oct 2006 17:01:55
while($row = mysql_fetch_array($res, MYSQL_ASSOC))
  {
   print("<tr>");
   print("<td>".$row["company"]."</td><td>".$row["country"]."</td><td>".$row["email1"]."</td></tr>");
  }

ผมแนะนำว่าให้ใช้ mysql_fetch_array() ดีกว่าครับเราสามารถอ้างชื่อ field ได้ในรูปแบบ associative array ได้ครับ

ส่วนถ้าต้องการใช้ mysql_fetch_row() นั้นต้องระบุ index ของ array ตามลำดับ field ที่ทำการ select ออกมาครับ ซึ่งคำสั่งของคุณคือ SELECT company, country, email1 FROM...
ค่าของ company จะอยู่ที่ $row[0]
ค่าของ country จะอยู่ที่ $row[1]
ค่าของ email จะอยู่ที่ $row[2]

แต่ในโค๊ดของคุณระบุ index ที่ 3 และ 6 ซึ่งไม่มีอยู่ใน array จึงแสดงเป็นค่าว่างแทนครับ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login