พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
PHP development / Error การแสดงเป็นหน้าๆ
Anan
Anan
Sat 14 Oct 2006 16:38:08

สวัสดีครับ

ฉบับนี้ต่อเนื่องจากฉบับ error ก่อนหน้า ที่คุณแนะนำดังนี้

$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 ที่เราต้องการครับ

ผมได้แก้ตามที่คุณแนะนำ ซึ่งโปรแกรมผละผลจะเป็นดังนี้ครับ

<?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"]."'$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";
   }
}
?>

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

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 17:17:34
คุณต้องแก้ไข form ที่ส่งค่ามาให้เป็น get ครับ เนื่องจากในคำสั่งคุณอ้างถึง

$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."'";

$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."' LIMIT $goto , $pagelen ";

$_POST นั้นจะไม่เกิดขึ้นเมื่อมีการเปลี่ยนหน้าไปครั อีกอย่างในลิงค์เพื่อเปลี่ยนหน้าก็ต้องเพิ่ม alphabet เข้าไปด้วยครับ
Anan
Anan
Sat 14 Oct 2006 17:38:10

ขอบคุณครับ แต่ยังไม่เข้าใจ

ข้อ 1. ต้องแก้ไข form ที่ส่งค่ามาให้เป็น get นั้นหมายถึง form นี้ใช่ไหมครับ

<br>
<script language="javascript" type="text/javascript">
function validate(obj){
    if(obj.product.value == "0"){
       alert("Please select product");
       obj.product.focus();
       return false;
    }else if(obj.country.value == "0"){
       alert("Please select country");
       obj.country.focus();
       return false;
    }
    return true;
}
</script>

<font color="#000000" face="verdana" size="1"><b>www.anan is a world food company directory. We have more than 20,000 food companies that you can open business gate to sell or buy food products.
<p>Post buy and sell member's food products will send to food company in our database that they agree to receive.</p>
<p>Cost of member is USD200/year. If you interest, please register at member register.</p></u></font>
<font color="#000000" face="verdana" size="1"><b><u>Food company search</u></b></font>

<table border="0" width="400">
<tr>
<td width="200"><font color="#8B4513" face="verdana" size="1"><b>Alphabetical search</b></td>
</tr>
<tr>
<td><form name="form2" method="get" action="index_search1.php">
<select name="alphabet">
<option value="0">Please select alphalet</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
<option value="G">G</option>
<option value="H">H</option>
<option value="I">I</option>
<option value="J ">J</option>
<option value="K">K</option>
<option value="L">L</option>
<option value="M">M</option>
<option value="N">N</option>
<option value="O">O</option>
<option value="P">P</option>
<option value="Q">Q</option>
<option value="R">R</option>
<option value="S ">S</option>
<option value="T ">T</option>
<option value="U">U</option>
<option value="V">V</option>
<option value="W">W</option>
<option value="X">X</option>
<option value="Y">Y</option>
<option value="Z">Z</option>
</select></td>
<td width="100" colspan="2">
<input type="submit" value="search">
</form>
</td>
</tr>
</table>

และส่งที่ผมต้องเปลี่ยนได้แก่ method จาก "post" เป็น "get" ใช่ไหมครับ ผมเปลี่ยนแล้ว แล้วลอง click เลือกบริษัทที่มีอักษร A นำหน้า ปรากฎว่าแสดงข้อมูลดังนี้

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
888 Natural Pty Ltd Australia Member only
A & A Hashim Australia Member only

ข้อ 2 ใน link เพื่อเปลี่ยนหน้าก็ต้องเพิ่ม alphabet เข้าไปด้วย นั้นหมายถึงอะไรครับ?

เพราะผมจะมี file ที่เกี่ยวข้องอยู่แค่ 2 ไฟลล์ เท่านั้น ได้แก่ ไฟลล์ index_search ก็คือ file นี้ และจะส่งค่าไปยัง file index_search1 ซึ่งก็คือ file ก่อนหน้านี้

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

อนันต์

Administrator
Sun 15 Oct 2006 03:35:11
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_GET["alphabet"]."'";

$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_GET["alphabet"]."' LIMIT $goto , $pagelen ";

ที่ให้ส่งค่า alphabet มาด้วยในลิงค์นั้นเพื่อเวลาทำลิงค์หน้าจะต้องใช้ตัวแปร alphabet ในการ query ด้วยครับ ซึ่งเดิมคุณมีเพียง page เท่านั้นทำให้ไม่สามารถ query ข้อมูลได้ครับ ก็เพิ่มเป็น
?page=$i&alphabet=$_GET["alphabet"] ประมาณนี้ครับ
Anan
Anan
Sun 15 Oct 2006 08:11:14

ขอบคุณครับ ขอบอกตรงๆว่ายังงอยู่เลยครับ เพราะไม่รู้ว่าจะเพิ่มตรงจุดไหน?

ช่วยบอกผมอีกครั้งหนึ่งว่าให้เพิ่มตรงจุดไหนและให้เพิ่มอย่างไรครับ พราะพยายามเปลี่ยนแล้วปรากฎว่า ยิ่ง error ไปใหญ่เลยครับ

รบกวนอีกครั้งด้วยครับ

อนันต์

Administrator
Sun 15 Oct 2006 10:14:04
การ query เพื่อแสดงผลแบบมีเงื่อนไข คุณต้องมีการใส่เงื่อนไขลงใน WHERE CLAUSE ของคำสั่ง SELECT เพื่อที่จะได้ข้อมูลตามที่ต้องการ

โค๊ดเดิมคุณเป็
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."'";
โดย query นี้คุณใช้เพื่อการนับจำนวน record ทั้งหมด และ
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_POST["alphabet"]."' LIMIT $goto , $pagelen ";
เพื่อใช้ในการแบ่งการแสดงผล

การใช้ POST นั้นจะเกิดจากการ Submit form เท่านั้นซึ่งไม่สามารถนำมาใช้ในการแบ่งหน้าได้ครับ ดังนั้นผมจึงแจ้งว่าให้เปลี่ยนเป็น
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_GET["alphabet"]."'";
เพื่อนำไปใช้ในการนับจำนวน record และ
$sql = "SELECT company, country, email1 from company WHERE UCASE(SUBSTRING(company, 1, 1)) = '".$_GET["alphabet"]."' LIMIT $goto , $pagelen ";
เพื่อใช้ในการแบ่งการแสดงผล

โดยคุณต้องเปลี่ยน form ที่เคย submit เป็น POST ให้เป็น GET เพื่อที่จะได้ใช้งานคำสั่ง query ได้อย่างถูกต้อง

ถึงจุดนี้เมื่อคุณ submit form น่าจะสามารถแสดงผลหน้าแรกได้อย่างถูกต้องแล้ว ต่อมาคือหน้าต่อๆไปนั้นคุณใช้ script เดียวกันนี้ในการแสดงข้อมูล ดังนั้นคุณต้องมีการส่งค่าตัวแปร alphabet มาใน uri หลังจาก submit form แล้ว url คุณจะเป็น
http://localhost/main/index/index_search1.php?alphabet=A
ดังนั้นการจะให้ script นี้สามารถทำงานได้อย่างถูกต้องคุณยังต้องคงไว้ซึ่งตัวแปร alphabet ใน URI และก็ต้องส่งตัวแปร page ไปด้วยเพื่อที่จะได้เกิดการแสดงผลในหน้าที่ต้องการ URI ก็ควรจะเป็น
http://localhost/main/index/index_search1.php?alphabet=A&page=2
http://localhost/main/index/index_search1.php?alphabet=A&page=3
....
ดังนั้นในส่วนของลิงค์ที่คุณเขียนเพื่อให้เปลี่ยนหน้าส่วนล่างของการแสดงผล คุณก็ต้องเปลี่ยนให้มีลิงค์ตามด้านบนครับ

Anan
Anan
Sun 15 Oct 2006 16:45:20

ขอบคุณครับ ที่กรุณาอธิบาย ผมเข้าใจในสิ่งที่คุณอธิบายแล้ว แต่ไม่รู้จะเขียนอย่างไร เพื่อให้ link แต่ละหน้านั้น มีค่าเท่ากับ URL

ผมคิดว่าส่วนที่จะต้องแก้ไข คือส่วนนี้

If ($_GET["page"] > 1) {
 $back = $_GET["page"]  - 1;
 echo "<a href=$PHP_SELF?page=$i&alphabet=$_GET["alphabet"]>".
 "<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&alphabet=$_GET["alphabet"]>$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";
   }
}

ผมพยายมเปลี่ยนจาก

echo "<a href=$PHP_SELF?page=1>". เป็น echo "<a href=$PHP_SELF?page=$i&alphabet=$_GET["alphabet"]>". ปรากฎว่าเกิด 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 43

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

อนันต์

Administrator
Sun 15 Oct 2006 17:13:14
echo "<a href=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">"
Anan
Anan
Sun 15 Oct 2006 18:08:33

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

<?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)) = '".$_GET["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)) = '".$_GET["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=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">";
 "<img src=first.gif border=0 align=absmiddle alt=First></a>\n";
 echo ""<a href=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">=".  $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=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">";
 }
}

if ($_GET["page"] < $totalpage) {
 $next = $_GET["page"]  +1;
 echo "<"<a href=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">=".$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";
   }
}
?>

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in c:\appserv\www\main\index\index_search1.php on line 45

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

อนันต์

Administrator
Sun 15 Oct 2006 18:51:16
if ($_GET["page"] > 1) {
 $back = $_GET["page"]  - 1;
 echo "<a href=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."><img src=first.gif border=0 align=absmiddle alt=First></a>\n";
 echo "<a href=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">=".$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=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">";
 }
}

if ($_GET["page"] < $totalpage) {
 $next = $_GET["page"]  +1;
 echo "<a href=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">=".$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";
   }
}
Anan
Anan
Sun 15 Oct 2006 19:40:20

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

$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)) = '".$_GET["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)) = '".$_GET["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=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."><img src=first.gif border=0 align=absmiddle alt=First></a>\n";
 echo "<a href=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">=".$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=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">";
 }
}

if ($_GET["page"] < $totalpage) {
 $next = $_GET["page"]  +1;
 echo "<a href=".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"].">=".$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>Next Last

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

อนันต์

Administrator
Sun 15 Oct 2006 19:54:47
if ($_GET["page"] > 1) {
 $back = $_GET["page"]  - 1;
 echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."\"><img src=\"first.gif\" border=\"0\" align=\"absmiddle\" alt=\"First\"></a>\n";
 echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."=".$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=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."\">".$i."</a>";
 }
}

if ($_GET["page"] < $totalpage) {
 $next = $_GET["page"]  +1;
 echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."=".$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";
   }
}
Anan
Anan
Sun 15 Oct 2006 20:10:07

ขอบคุณครับ ใช้ได้แล้วครับ

ขอถามเพิ่มเติมหน่อยครับ

src=\"first.gif\" border=\"0\" align=\"absmiddle\"

1. คุณใช้ภาษา PHP เขียนหรือเปล่าครับ?

2. เครื่องหมาย \ นี้นำมาใช้หมายถึงอะไรครับ? ผมเคยเห็น source code ของเว็บหลายเว็บเขียนแบบนี้เหมือนกัน

อนันต์

Administrator
Sun 15 Oct 2006 20:31:47
ผมเขียนภาษา PHP ครับที่ใส่ \ (back-slash) เพื่อให้โค๊ด HTML ที่ถูกแสดงออกมาถูกต้องตาม Sybtax ครับ
ใน HTML นั้น Attribute ของ Tag ต่างๆจะต้องคร่อมด้วย " (double-quote) ซึ่งการใส่ \ (back-slash) เพื่อให้แสดงผลอักขระนั้นๆครับ โดยไม่ให้ interpreater คิดว่าเป็นเครื่องหมายใน PHP ครับ

ประโยชน์ของการใส่ " คร่อมค่าของ attribute นั้นเพื่อให้การแสดงผลถูกต้องครับ คุณอาจจะเขียน
<img src=image/image.gif alt=image> หรือ <img src="image/image.gif" alt="image"> ก็สามารถแสดงผลได้อย่างถูกต้องเหมือนกัน นั่นเป็นส่วนที่ browser อนุโลมให้ครับ
แต่ถ้าเกิดเป็น <img src=image/image.gif alt=this is image> กับ <img src="image/image.gif" alt="this is image"> จะเห็นผลไม่เหมือนกันในบางครั้ง เนื่องจากการเว้นวรรคใน tag นั้นหมายถึง attribute ครับ
Anan
Anan
Sun 15 Oct 2006 20:50:58

ขอบคุณครับสำหรับคำอธิบาย

อนันต์

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