พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
PHP development / ช่วยแนะนำเรื่อง error ด้วยครับ
Anan
Anan
Wed 11 Oct 2006 23:56:43

สวัสดีครับ และขอขอบคุณที่กรุณาช่วยแนะนำอยู่เสมอ

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

session_start()
<meta http-equiv="Content-Type"  content="text/html; charset=tis-620"> 
<center>
<?

$pagelen = 10 ;
$page = $_REQUEST['page'];
if (empty($page)) { $page=1; }

$link=mysql_connect("localhost","root","");
if(!$link)
{
print("Error");
}
else
{
mysql_select_db("company",$link);
$sql = "SELECT company, country, email1 FROM company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."'";
$res=mysql_query($sql,$link);
while($row=mysql_fetch_array($res,MYSQL_ASSOC)) 

$totalpage = ceil($num_rows / $pagelen);

$goto = ($page-1) * $pagelen; 
$sql = "SELECT company, country, email1 from company  LIMIT $goto , $pagelen ";
$res = mysql_query( $sql );
while($row=mysql_fetch_array($res,MYSQL_ASSOC))

  echo"<table border=1 cellpadding=3 cellspacing=0>";
  echo"<tr><td><font color='#8B0000' face='verdana' size='1'><center><b>Company</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Country</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Email</b></center></font></td></tr>";

For ($i=0; $i < $num_rows; $i++)  { 
 $fetcharr = mysql_fetch_array($res);
 $company = $fetcharr['company'];
 $country = $fetcharr['country'];
 $email1 = $fetcharr['email1'];
 echo"<tr><td><font color='#8B0000' face='verdana' size='1'>".$row["company"]."</font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'>".$row["country"]."</font></td>";
 echo"<td><font color='#8B0000' face='verdana' size='1'>".((isset($_SESSION["active'])&&$_SESSION["active"]="ok")?$row["email1"]:"Member only")."</font></td></tr>";

echo "</table>";

if ($page > 1) {
 $back = $page - 1;
 echo "<a href=$PHP_SELF?page=1>".
 "<img src=first.gif border=0 align=absmiddle alt=First></a>\n";
 echo "<a href=$PHP_SELF?page=".  $back .">
 <img src=previous.gif border=0 align=absmiddle alt=Previous></a>";
}

For ($i=1 ; $i<=$totalpage ; $i++) {
 if ($i == $page ) {
  echo " [<b><font size =+1 color=#990000>$i</font></b>] \n";
 } else  {
  echo " <a href=$PHP_SELF?page=$i>$i</a> \n";
 }
}

if ($page < $totalpage) {
 $next = $page  +1;
 echo "<a href=$PHP_SELF?page=".$next.">
 <img src=next.gif border=0 align=absmiddle alt=Next></a>";
 echo " <a href=$PHP_SELF?page=".$totalpage."><img src=last.gif border=0 align=absmiddle alt=Last></a> \n";
   }
}
?>

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

Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\appserv\www\main\index\index_search1.php on line 41

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

อนันต์

Administrator
Thu 12 Oct 2006 09:32:09
echo"<td><font color='#8B0000' face='verdana' size='1'>".((isset($_SESSION["active'])&&$_SESSION["active"]="ok")?$row["email1"]:"Member only")."</font></td></tr>";

เปลี่ยนเป็น

echo"<td><font color='#8B0000' face='verdana' size='1'>".((isset($_SESSION["active"])&&$_SESSION["active"]="ok")?$row["email1"]:"Member only")."</font></td></tr>";

แนะนำลองใช้ DreamWeaver ในการเขียนครับ จะเห็นความแตกต่างและจุดเกิดปัญหาครับ
Anan
Anan
Thu 12 Oct 2006 12:50:20

ขอคุณครับที่แนะนำ

ปรากฎว่าโชว์ข้อมูลเป็นอย่างนี้ครับ

session_start()

Company
Country
Email

1. มีตัว session_start() โชว์มาที่หน้า web แสดงผลด้วยครับ ต้องแก้ไขอย่างไรครับ ต้องมี tag ครอบหรือเปล่าครับ

2. แสดงหัวข้อของข้อมูลออกมา แต่ไม่แสดงผลว่ามีบริษัทไหนบ้าง อยู่ที่ประเทศไหน และมี email อะไรบ้าง?

3. สำหรับ DreamWeaver วันนี้ผมจะไปซื้อหนังสือมาลองหัดเขียนดู ก่อนหน้านี้มีอาจารย์ท่านหนึ่งเคยแนะนำว่าให้เขียนโปรแกรม โดยภาษา html จะดีกว่า เพราะจะได้เรียนรู้ภาษาคอมไปด้วย

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

อนันต์

Administrator
Fri 13 Oct 2006 00:13:21
session_start() เป็น function ใน php ดังนั้นต้องมี <? ?> คร่อมครับ
Anan
Anan
Fri 13 Oct 2006 00:55:57

ขอบคุณครับ

แต่ยังคงติดปัญหาว่าผลที่แสดงออกมาจะแสดงเพียงแค่

Company
Country
Email

แต่ไม่แสดงว่ามีบริษัทอะไรบ้างครับ

ไม่ทราบว่า code ผิดหรือเปล่าครับ

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

อนันต์

Administrator
Fri 13 Oct 2006 02:05:00
while loop ทั้ง 2 ตัวไม่มี {} เพื่อบอกขอบเขตครับ ดังนั้นมันจึง loop การ fetch ไปจนถึง record สุดท้ายแล้วจึงเข้าสู่ for ครับ

อีกอย่างตัวแปร $res นั้นมีการใช้ในทั้ง loop นอกและ loop ในทำให้การ fetch ข้อมูลไม่ได้ตามต้องการครับ
Anan
Anan
Fri 13 Oct 2006 06:24:39

ขอบคุณครับ แต่ต้องขอโทษครับช่วยกรุณาแนะนำให้ชัดเจนเลยครับว่าจะแก้ไขอย่างไร?

1. ตรง while ผมลองใส่ {} ดูแล้ว แต่ผลออกมาผมว่ามันคงจะใส่ผิด

2. ไม่เช้าใจว่า จะแก้ไขตัวแปร $res อย่างไร? ช่วยแนะนำอีกครั้งครับ

<?session_start()?>
<meta http-equiv="Content-Type"  content="text/html; charset=tis-620"> 
<center>
<?

$pagelen = 10 ;
$page = $_REQUEST['page'];
if (empty($page)) { $page=1; }

$link=mysql_connect("localhost","root","");
if(!$link)
{
print("Error");
}
else
{
mysql_select_db("company",$link);
$sql = "SELECT company, country, email1 FROM company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."'";
$res=mysql_query($sql,$link);
$num_rows=mysql_num_rows($res); 

$totalpage = ceil($num_rows / $pagelen);

$goto = ($page-1) * $pagelen; 
$sql = "SELECT company, country, email1 from company  LIMIT $goto , $pagelen ";
$res = mysql_query( $sql,$link );
while($row=mysql_fetch_array($res,MYSQL_ASSOC))
{
  echo"<table border=1 cellpadding=3 cellspacing=0>";
  echo"<tr><td><font color='#8B0000' face='verdana' size='1'><center><b>Company</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Country</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Email</b></center></font></td></tr>";
}
For ($i=0; $i < $num_rows; $i++)  { 
 $fetcharr = mysql_fetch_array($res);
 $company = $fetcharr['company'];
 $country = $fetcharr['country'];
 $email1 = $fetcharr['email1'];
echo"<tr><td><font color='#8B0000' face='verdana' size='1'>".$row["company"]."</font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'>".$row["country"]."</font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'>".((isset($_SESSION["active"])&&$_SESSION["active"]="ok")?$row["email1"]:"Member only")."</font></td></tr>";
}
echo "</table>";


if ($page > 1) {
 $back = $page - 1;
 echo "<a href=$PHP_SELF?page=1>".
 "<img src=first.gif border=0 align=absmiddle alt=First></a>\n";
 echo "<a href=$PHP_SELF?page=".  $back .">
 <img src=previous.gif border=0 align=absmiddle alt=Previous></a>";
}

For ($i=1 ; $i<=$totalpage ; $i++) {
 if ($i == $page ) {
  echo " [<b><font size =+1 color=#990000>$i</font></b>] \n";
 } else  {
  echo " <a href=$PHP_SELF?page=$i>$i</a> \n";
 }
}

if ($page < $totalpage) {
 $next = $page  +1;
 echo "<a href=$PHP_SELF?page=".$next.">
 <img src=next.gif border=0 align=absmiddle alt=Next></a>";
 echo " <a href=$PHP_SELF?page=".$totalpage."><img src=last.gif border=0 align=absmiddle alt=Last></a> \n";
   }
}
?>

ผลที่ได้ดังนี้ครับ

Company
Country
Email
Company
Country
Email
Company
Country
Email
Company
Country
Email
Company
Country
Email
Company
Country
Email
Company
Country
Email
Company
Country
Email
Company
Country
Email
Company
Country
Email
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
Member only
[1] 2 3 4 5 6 7 8 Next Last

Administrator
Fri 13 Oct 2006 10:33:04
ถ้าต้องการทำ paging แล้วใช้ LIMIT ใน MySQL แล้วที่ถูกควรเป็นแบบนี้ครับ

$sql = "SELECT company, country, email1 from company  LIMIT $goto , $pagelen ";
$res = mysql_query( $sql,$link );
echo"<table border=1 cellpadding=3 cellspacing=0>";
echo"<tr><td><font color='#8B0000' face='verdana' size='1'><center><b>Company</b></center></font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Country</b></center></font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Email</b></center></font></td></tr>";
while($row=mysql_fetch_array($res,MYSQL_ASSOC))
{
    echo"<tr><td><font color='#8B0000' face='verdana' size='1'>".$row["company"]."</font></td>";
    echo"<td><font color='#8B0000' face='verdana' size='1'>".$row["country"]."</font></td>";
    echo"<td><font color='#8B0000' face='verdana' size='1'>".((isset($_SESSION["active"])&&$_SESSION["active"]="ok")?$row["email1"]:"Member only")."</font></td></tr>";
}
echo "</table>";

ผมไม่แน่ใจว่า for นั้นไว้ใช้เพื่อการใดครับ
Anan
Anan
Fri 13 Oct 2006 17:46:06

ขอบคุณครับ ผมได้แก้ไขโปรกรมดังนี้

<?session_start()?>
<meta http-equiv="Content-Type"  content="text/html; charset=tis-620"> 
<center>
<?

$pagelen = 10 ;
$page = $_REQUEST['page'];
if (empty($page)) { $page=1; }

$link=mysql_connect("localhost","root","");
if(!$link)
{
print("Error");
}
else
{
mysql_select_db("company",$link);
$sql = "SELECT company, country, email1 FROM company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."'";
$res=mysql_query($sql,$link);
$num_rows=mysql_num_rows($res); 

$totalpage = ceil($num_rows / $pagelen);

$goto = ($page-1) * $pagelen; 
$sql = "SELECT company, country, email1 from company  LIMIT $goto , $pagelen ";
$res = mysql_query( $sql,$link );
  echo"<table border=1 cellpadding=3 cellspacing=0>";
  echo"<tr><td><font color='#8B0000' face='verdana' size='1'><center><b>Company</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Country</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Email</b></center></font></td></tr>";
while($row=mysql_fetch_array($res,MYSQL_ASSOC))
 { 
echo"<tr><td><font color='#8B0000' face='verdana' size='1'>".$row["company"]."</font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'>".$row["country"]."</font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'>".((isset($_SESSION["active"])&&$_SESSION["active"]="ok")?$row["email1"]:"Member only")."</font></td></tr>";
}
echo "</table>";


if ($page > 1) {
 $back = $page - 1;
 echo "<a href=$PHP_SELF?page=1>".
 "<img src=first.gif border=0 align=absmiddle alt=First></a>\n";
 echo "<a href=$PHP_SELF?page=".  $back .">
 <img src=previous.gif border=0 align=absmiddle alt=Previous></a>";
}

For ($i=1 ; $i<=$totalpage ; $i++) {
 if ($i == $page ) {
  echo " [<b><font size =+1 color=#990000>$i</font></b>] \n";
 } else  {
  echo " <a href=$PHP_SELF?page=$i>$i</a> \n";
 }
}

if ($page < $totalpage) {
 $next = $page  +1;
 echo "<a href=$PHP_SELF?page=".$next.">
 <img src=next.gif border=0 align=absmiddle alt=Next></a>";
 echo " <a href=$PHP_SELF?page=".$totalpage."><img src=last.gif border=0 align=absmiddle alt=Last></a> \n";
   }
}
?>

ปรากฎว่าการแสดงผลนั้นไม่ถูกต้องดังนี้ครับ

1. เมื่อผมเลือกบริษัทที่มีตัวอักษร A นำหน้า ปรากฎว่าข้อมูลที่แสดงออกมาเป็นดังนี้ครับ

Company
Country
Email
3 Hills High Pty Ltd Australia barrique@adam.com.au
Four Seasons Trading Co. United Arab Emirates seasons4@emirates.net.ae
BERNARD FIG South Africa berniefig@ricetic.co.za
5 Corners Wines Australia info@5corners.biz
888 Natural Pty Ltd Australia mamalicos@aol.com
A & A Hashim Australia ahashim@bigpond.net.au
1&1 Feinkost Verwaltungs GmbH Germany kolbadi@hotmail.com
3 A Assegnatari Associati Arbo Italy marketing@lattearborea.it
7 chef - Guerra S.p.A. Italy export@guerra.it
A.I.E. - Agro Import Export Lt Bulgaria agroimportexport@yahoo.com
[1] 2 3 4 5 6 7 8 Next Last

1.1 บริษัทที่ไม่ได้ขึ้นต้นด้วยอักษร A นั้นแสดงออกมาด้วย?

1.2 email ของบริษัทแสดงออกมาด้วยทั้งๆที่ไม่ได้เข้า username และ password?

1.3 ช้อมูลที่แสดงออกมามีแค่เพียงหน้า 1 และ 2 เท่านั้น ทำไมถึงได้โชว์หน้า 3,4,5,6,7,8 ออกมาด้วยครับ?

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

อนันต์

Anan
Anan
Fri 13 Oct 2006 17:51:15

สวัสดีครับ สำหรับข้อ 1.2 การแสดง email ของบริษัทแก้ไขได้แล้วครับ แต่ยังติดข้อ 1.1 กับ 1.3 อยู่เลยครับ ต้องขอความกรุณาช่วยแนะนำด้วยครับ

อนันต์

Administrator
Sat 14 Oct 2006 00:55:02
ข้อ 1.1 และ 1.3 นั้นปัญหาเกิดจาก การ query ข้อมูลในตอนแสดงข้อมูลนั้นไม่มี WHERE CLAUSE ครับทำให้การแสดงข้อมูลทั้งหมดโดยไม่มีเงื่อนไขใดๆครับ เปลี่ยนเป็น
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."' LIMIT $goto , $pagelen ";
Anan
Anan
Sat 14 Oct 2006 07:53:43

ขอบคุณครับ ผมได้แก้ตามที่คุณแนะนำแล้ว ปรากฎว่าผลที่ได้เป็นดังนี้ครับ

Company
Country
Email
A.I.E. - Agro Import Export Lt Bulgaria Member only
A.I.D.A. di Giangreco Paolo Italy Member only
A.I.A. S.p.A. Agricoltura Ital Italy Member only
A.F.C. S.A. Belgium Member only
A.C.P. International SRL Italy Member only
A.B.A. Prosciutti SpA Italy Member only
A. Poortman (London) Ltd. United Kingdom Member only
A-1 Produce Co.Ltd Thailand Member only
A.I.M.O. Acetifici Italiani Mo Italy Member only
Aalst Chocolate Pte Ltd Singapore Member only
[1] 2 3 4 5 6 7 8 Next Last

พอ click ที่หน้าที่ 2 จะแสดงข้อมูลดังนี้ครับ

Company
Country
Email
First Previous 1

พอ click ที่หน้าที่ 1 นี้ จะแสดงข้อมูลดังนี้ครับ

Company
Country
Email
888 Natural Pty Ltd Australia Member only
A & A Hashim Australia Member only
Member only
[1]

ปัญหามีดังนี้ครับ

1. ข้อมูลบริษัทที่ขึ้นต้นด้วยอักษร A มีทั้งหมดกว่า 70 บริษัท แต่ปรากฎว่าแสดงผลเพียงแค่ 1 หน้า?

2. เมื่อ click ข้อมูลย้อนกลับ กลับไม่แสดงผลข้อมูลเหมือนเดิม?

ผมคิดว่าคงจะมีปัญหาในเรื่องการแสดงผลให้ออกเป็นหน้าๆ คงต้องขอคำแนะนำด้วยครับ ว่าที่ถูกต้องจะต้องเขียนอย่างไร?

ขอบคุณครับ

อนันต์

Administrator
Sat 14 Oct 2006 13:09:43
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."' LIMIT $goto , $pagelen ";
ก็ต้องเปลี่ยนทั้งส่วนที่ใช้นับ record และส่วนที่ใช้แสดงผลครับ
แล้วก็ต้องเปลี่ยนจาก $page เป็น $_GET["page"] ทั้งหมดครับ
น่าจะมีเพียวเท่านื้ครับ
Anan
Anan
Sat 14 Oct 2006 13:48:47

สวัสดีครับ และขอขอบคุณที่กรุณาแนะนำ ผมได้แก้โปรแกรมตามที่แนะนำตามนี้ครับ

<?session_start()?>
<meta http-equiv="Content-Type"  content="text/html; charset=tis-620"> 
<center>
<?

$pagelen = 10 ;
$_GET["page"] = $_REQUEST['page'];
if (empty($_GET["page"] )) { $_GET["page"] =1; }

$link=mysql_connect("localhost","root","");
if(!$link)
{
print("Error");
}
else
{
mysql_select_db("company",$link);
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."' LIMIT $goto , $pagelen ";

$res=mysql_query($sql,$link);
$num_rows=mysql_num_rows($res);

$totalpage = ceil($num_rows / $pagelen);

$goto = ($_GET["page"] -1) * $pagelen;
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."' LIMIT $goto , $pagelen ";
$res = mysql_query( $sql,$link );
  echo"<table border=1 cellpadding=3 cellspacing=0>";
  echo"<tr><td><font color='#8B0000' face='verdana' size='1'><center><b>Company</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Country</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Email</b></center></font></td></tr>";
while($row=mysql_fetch_array($res,MYSQL_ASSOC))
 {
echo"<tr><td><font color='#8B0000' face='verdana' size='1'>".$row["company"]."</font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'>".$row["country"]."</font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'>".((isset($_SESSION["active"])&&$_SESSION["active"]="ok")?$row["email1"]:"Member only")."</font></td></tr>";
}
echo "</table>";


if ($_GET["page"] > 1) {
 $back = $_GET["page"]  - 1;
 echo "<a href=$PHP_SELF?page=1>".
 "<img src=first.gif border=0 align=absmiddle alt=First></a>\n";
 echo "<a href=$PHP_SELF?page=".  $back .">
 <img src=previous.gif border=0 align=absmiddle alt=Previous></a>";
}

For ($i=1 ; $i<=$totalpage ; $i++) {
 if ($i == $_GET["page"] ) {
  echo " [<b><font size =+1 color=#990000>$i</font></b>] \n";
 } else  {
  echo " <a href=$PHP_SELF?page=$i>$i</a> \n";
 }
}

if ($_GET["page"] < $totalpage) {
 $next = $_GET["page"]  +1;
 echo "<a href=$PHP_SELF?page=".$next.">
 <img src=next.gif border=0 align=absmiddle alt=Next></a>";
 echo " <a href=$PHP_SELF?page=".$totalpage."><img src=last.gif border=0 align=absmiddle alt=Last></a> \n";
   }
}
?>

ผลปรากฎว่า

1. เกิด error ดังนี้ครับ

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\appserv\www\main\index\index_search1.php on line 21

Company
Country
Email
A.I.E. - Agro Import Export Lt Bulgaria Member only
A.I.D.A. di Giangreco Paolo Italy Member only
A.I.A. S.p.A. Agricoltura Ital Italy Member only
A.F.C. S.A. Belgium Member only
A.C.P. International SRL Italy Member only
A.B.A. Prosciutti SpA Italy Member only
A. Poortman (London) Ltd. United Kingdom Member only
A-1 Produce Co.Ltd Thailand Member only
A.I.M.O. Acetifici Italiani Mo Italy Member only
Aalst Chocolate Pte Ltd Singapore Member only

2. การแสดงผลมีเพียงแค่ 1 หน้าเท่านั้นครับ

จึงต้องขอคำแนะนำในปัญหาที่เกิดขึ้น 2 เรื่องด้วยครับ

อนันต์

Administrator
Sat 14 Oct 2006 16:03:50
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."' LIMIT $goto , $pagelen ";

คำสั่งแรกนั้นคุณต้องการหาจำนวน record ดังนั้นไม่ต้องใส่ LIMIT ครับ ไม่เช่นนั้นก็จะได้จำนวน record เท่ากับ $pagelen ครับ

ส่วน query ที่ 2 นั้นใส่ LIMIT เพื่อให้ไปยัง record ที่เราต้องการครับ

Anan
Anan
Sat 14 Oct 2006 16:11:56

สวัสดีครับ

แก้ไขแล้วแต่ยังมี error เหมือนเดิมครับ

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\appserv\www\main\index\index_search1.php on line 21

Company
Country
Email
A.I.E. - Agro Import Export Lt Bulgaria Member only
A.I.D.A. di Giangreco Paolo Italy Member only
A.I.A. S.p.A. Agricoltura Ital Italy Member only
A.F.C. S.A. Belgium Member only
A.C.P. International SRL Italy Member only
A.B.A. Prosciutti SpA Italy Member only
A. Poortman (London) Ltd. United Kingdom Member only
A-1 Produce Co.Ltd Thailand Member only
A.I.M.O. Acetifici Italiani Mo Italy Member only
Aalst Chocolate Pte Ltd Singapore Member only

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

อนันต์

Administrator
Sat 14 Oct 2006 16:22:15
$sql = "SELECT company, country, email1 FROM company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."'";

แก้เป็นตามนี้หรือยังครับ
Anan
Anan
Sat 14 Oct 2006 16:32:00

สวัสดีครับ

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

<?session_start()?>
<meta http-equiv="Content-Type"  content="text/html; charset=tis-620"> 
<center>
<?

$pagelen = 10 ;
$_GET["page"] = $_REQUEST['page'];
if (empty($_GET["page"] )) { $_GET["page"] =1; }

$link=mysql_connect("localhost","root","");
if(!$link)
{
print("Error");
}
else
{
mysql_select_db("company",$link);
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."'";

$res=mysql_query($sql,$link);
$num_rows=mysql_num_rows($res);

$totalpage = ceil($num_rows / $pagelen);

$goto = ($_GET["page"] -1) * $pagelen;
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."' LIMIT $goto , $pagelen ";
$res = mysql_query( $sql,$link );
  echo"<table border=1 cellpadding=3 cellspacing=0>";
  echo"<tr><td><font color='#8B0000' face='verdana' size='1'><center><b>Company</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Country</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Email</b></center></font></td></tr>";
while($row=mysql_fetch_array($res,MYSQL_ASSOC))
 {
echo"<tr><td><font color='#8B0000' face='verdana' size='1'>".$row["company"]."</font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'>".$row["country"]."</font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'>".((isset($_SESSION["active"])&&$_SESSION["active"]="ok")?$row["email1"]:"Member only")."</font></td></tr>";
}
echo "</table>";


if ($_GET["page"] > 1) {
 $back = $_GET["page"]  - 1;
 echo "<a href=$PHP_SELF?page=1>".
 "<img src=first.gif border=0 align=absmiddle alt=First></a>\n";
 echo "<a href=$PHP_SELF?page=".  $back .">
 <img src=previous.gif border=0 align=absmiddle alt=Previous></a>";
}

For ($i=1 ; $i<=$totalpage ; $i++) {
 if ($i == $_GET["page"] ) {
  echo " [<b><font size =+1 color=#990000>$i</font></b>] \n";
 } else  {
  echo " <a href=$PHP_SELF?page=$i>$i</a> \n";
 }
}

if ($_GET["page"] < $totalpage) {
 $next = $_GET["page"]  +1;
 echo "<a href=$PHP_SELF?page=".$next.">
 <img src=next.gif border=0 align=absmiddle alt=Next></a>";
 echo " <a href=$PHP_SELF?page=".$totalpage."><img src=last.gif border=0 align=absmiddle alt=Last></a> \n";
   }
}
?>

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

Company
Country
Email
A.I.E. - Agro Import Export Lt Bulgaria Member only
A.I.D.A. di Giangreco Paolo Italy Member only
A.I.A. S.p.A. Agricoltura Ital Italy Member only
A.F.C. S.A. Belgium Member only
A.C.P. International SRL Italy Member only
A.B.A. Prosciutti SpA Italy Member only
A. Poortman (London) Ltd. United Kingdom Member only
A-1 Produce Co.Ltd Thailand Member only
A.I.M.O. Acetifici Italiani Mo Italy Member only
Aalst Chocolate Pte Ltd Singapore Member only
[1] 2 3 4 5 6 7 8 Next Last

แต่พอ click ที่หน้า 2 ผลที่ได้เป็นอย่างนี้ครับ

Company
Country
Email
First Previous 1

พอ click ที่หน้า 1 อีกครั้ง ผลที่ได้เป็นอย่างนี้ครับ

Company
Country
Email
888 Natural Pty Ltd Australia Member only
A & A Hashim Australia Member only
[1]

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

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