ขอคำแนะนำนะค่ะ ถ้าเราจะ browse ข้อมูลแบบมีตัวอักษร a b c d e f g ... z ถ้าเรากดตัวไหนก็ขอให้ชื่อที่เราต้องการขึ้นต้นด้วยตัวนั้นๆ
ส่ง a-z ผ่าน url ($_GET) ก็ได้นิครับ
Date :
2013-06-30 09:04:13
By :
mangkunzo
ช่วยแนะนำโค๊ดตัวอย่างให้ดูหน่อยได้มั้ยคะ นึกไม่ออกเลยคะ
Date :
2013-06-30 10:19:59
By :
mrronalz
รบกวนช่วยดูให้หน่อยนะค่ะ
Date :
2013-06-30 16:19:17
By :
mrronalz
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/SeniorProject/02.php on line 22 ค่ะ
01.php
Code (PHP)
<a href="02.php?Page=xxxx&keyword=a">a</a>
02.php
Code (PHP)
<?
include("Connection.php");
$strSQL = "SELECT * FROM ProjectInfo";
if(isset($_GET['keyword']) && $_GET['keyword'] != ''){
$strSQL .= " ProjectName LIKE '". $_GET['keyword'] ."%' ";
}
$objQuery = mysql_query($strSQL);
?>
<table class="table table-hover" width="600">
<tr>
<th width="91"> <div align="center">ID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Language </div></th>
<th width="97"> <div align="center">Advisor </div></th>
<th width="97"> <div align="center">Proj </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["ID"];?></div></a></td>
<td><div align="center"><?=$objResult["ProjectName"];?></div></td>
<td><div align="center"><?=$objResult["Language"];?></div></td>
<td><div align="center"><?=$objResult["Advisor"];?></div></td>
</tr>
<?
}
?>
</table>
<?
mysql_close($objConnect);
?>
รบกวนช่วยดูให้หน่อยนะค่ะ
Date :
2013-06-30 21:59:14
By :
mrronalz
ตก where ไป
Code (PHP)
$strSQL = "SELECT * FROM ProjectInfo";
if(isset($_GET['keyword']) && $_GET['keyword'] != ''){
$strSQL .= " ProjectName LIKE '". $_GET['keyword'] ."%' "; // ตก where
}
แก้เป็น
Code (PHP)
$strSQL = "SELECT * FROM ProjectInfo";
if(isset($_GET['keyword']) && $_GET['keyword'] != ''){
$strSQL .= " where ProjectName LIKE '". mysql_real_escape_string($_GET['keyword']) ."%' ";
}
ปล. อย่าลืม mysql_real_escape_string() เด็ดขาด ไม่งั้นรั่วแน่ๆ
Date :
2013-06-30 22:41:32
By :
randOmizE
ขอบคุณมากๆเลยค่ะ
ขอถามหน่อยนะคะ ถ้าสมมุติว่า มันเป็นหน้ายาวๆ แล้วส่วนนี้อยู่ข้างล่าง
แล้วพอเราลดเปลี่ยนหน้่ามันจะเด้งไปบนสุดคล้ายการรีเพรชใหม่ค่ะ
มีวิธีแก้ไขมั้ยคะ?
Date :
2013-06-30 23:47:57
By :
mrronalz
อย่างตัวนี้น่ะค่ะ
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/SeniorProject/mmmmmm.php on line 53
คือหาไม่เจอเลยค่ะว่าผิดตรงไหนค่ะ ลองแก้ตามที่พี่บอกแล้วก็ไม่ได้ค่ะ สำหรับโค้ดตัวนี้ที่ดัดแปลงค่ะ
ขอคำแนะนำทีนะค่ะ ขอบคุณค่ะ
Code (PHP)
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href="mmmmmm.php?Page=xxxx&keyword=u">u</a>
<a href="mmmmmm.php?Page=xxxx&keyword=a">a</a>
<?
include("Connection.php");
$strSQL = "SELECT * FROM ProjectInfo";
if(isset($_GET['keyword']) && $_GET['keyword'] != ''){
$strSQL .= " where ProjectName LIKE '". mysql_real_escape_string($_GET['keyword']) ."%' ";
}
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
$Per_Page = 4; // Per Page
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
$strSQL .=" order by ID ASC LIMIT $Page_Start , $Per_Page";
$objQuery = mysql_query($strSQL);
?>
<table class="table table-hover" width="600">
<tr>
<th width="91"> <div align="center">ID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Language </div></th>
<th width="97"> <div align="center">Advisor </div></th>
<th width="97"> <div align="center">Proj </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["ID"];?></div></a></td>
<td><div align="center"><?=$objResult["ProjectName"];?></div></td>
<td><div align="center"><?=$objResult["Language"];?></div></td>
<td><div align="center"><?=$objResult["Advisor"];?></div></td>
</tr>
<?
}
?>
</table>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?
if($Prev_Page)
{
echo "<a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'><< Back </a>";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'>$i</a> ]";
}
else
{
echo "<๓b> $i </b>";
}
}
if($Page!=$Num_Pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'>Next>></a> ";
}
mysql_close($objConnect);
?>
</td>
</tr>
</table>
</body>
</html>
Date :
2013-06-30 23:53:36
By :
mrronalz
ลองแล้วค่ะ ตอนนี้มันไม่ขึ้นอะไรเลยนะค่ะสำหรับโค้ด
<a href="javascript:void(0)" onClick="<? $strSQL.="(ProjectName LIKE 'a%')"?>">a</a>
ส่วนถ้าเอามาประยุกต์ แบบให้แบ่งหน้าด้วยจะใช้งานไม่ได้เลยค่ะ
เนื่อจากมันฟ้อง error ลองลบ ออกคือ
Code (PHP)
$objQuery = mysql_query($strSQL);
ตัวนี้เป็นโค้ดทั้งหมดค่ะ
01.php
Code (PHP)
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href="01.php?Page=xxxx&keyword=u">u</a>
<a href="01.php?Page=xxxx&keyword=a">a</a>
<a href="javascript:void(0)" onClick="<? $strSQL.="(ProjectName LIKE 'a%')"?>">a</a>
<?
include("Connection.php");
if(!$_GET["Page"])
{$Page=1;
} else {$Page = $_GET["Page"];}
$strSQL = "SELECT * FROM ProjectInfo";
if(isset($_GET['keyword']) && $_GET['keyword'] != ''){
$strSQL .= " WHERE ProjectName LIKE '". mysql_real_escape_string($_GET['keyword']) ."%' ";
}
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
$Per_Page = 5; // Per Page
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
$strSQL .=" order by ID ASC LIMIT $Page_Start , $Per_Page";
//$objQuery = mysql_query($strSQL);
?>
<table class="table table-hover" width="600">
<tr>
<th width="91"> <div align="center">ID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Language </div></th>
<th width="97"> <div align="center">Advisor </div></th>
<th width="97"> <div align="center">Proj </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["ID"];?></div></a></td>
<td><div align="center"><?=$objResult["ProjectName"];?></div></td>
<td><div align="center"><?=$objResult["Language"];?></div></td>
<td><div align="center"><?=$objResult["Advisor"];?></div></td>
</tr>
<?
}
?>
</table>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?
if($Prev_Page)
{
echo "<a href='?Page=$Prev_Page&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'><< Back </a>";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "[ <a href='?Page=$i&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'>$i</a> ]";
}
else
{
echo "<b> $i </b>";
}
}
if($Page!=$Num_Pages)
{
echo " <a href ='?Page=$Next_Page&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'>Next>></a> ";
}
mysql_close($objConnect);
?>
รบกวนหน่อยนะค่ะ
Date :
2013-07-01 13:28:00
By :
mrronalz
มันไม่มีอะไรเลย ตรง onClick="<? $strSQL.="(ProjectName LIKE 'a%')"?>" จะมาใสดื้อๆแบบนี้ไม่ได้ ลบออกมันไม่จำเป็น
Code (PHP)
<a href="javascript:void(0)" onClick="<? $strSQL.="(ProjectName LIKE 'a%')"?>">a</a>
ตัวอย่าง ในหน้าเดียว
Code (PHP)
$sql = "select distinct left(xxx,1) as letter from mytb order by letter ASC"; // เลือกอักษรตัวแรกเอามาไม่ซ้ำกัน
$query = mysql_query($sql);
while($data = mysql_fetch_array($query)){
echo '<a href="?l='.$data['letter'].'">'.$data['letter'].'</a></br>'; // เอามาทำเป็นลิงค์ตัวอักษร ใส่ตัวแปร l
}
if(isset($_GET['l'])) { // เช็คตัวแปรที่ส่งมา
$l = strip_tags(trim($_GET['l'])); // ตัดแท็ค html ตัดเคาะ
$l = mysql_real_escape_string($l); // กรอง injection
$sql = mysql_query("select * from linkurl where left(title,1)='$l' order by title ASC"); // เอาไปเทียบอักษรตัวแรก
while($i = mysql_fetch_array($sql)){
echo $i['title'].'</br>';
}
}
แบบ 2 หน้า
x.php
Code (PHP)
$sql = "select distinct left(xxx,1) as letter from mytb order by letter ASC"; // เลือกอักษรตัวแรกเอามาไม่ซ้ำกัน
$query = mysql_query($sql);
while($data = mysql_fetch_array($query)){
echo '<a href="xx.php?l='.$data['letter'].'">'.$data['letter'].'</a></br>'; // เอามาทำเป็นลิงค์ตัวอักษร ใส่ตัวแปร l
}
xx.php
Code (PHP)
if(isset($_GET['l'])) { // เช็คตัวแปรที่ส่งมา
$l = strip_tags(trim($_GET['l'])); // ตัดแท็ค html ตัดเคาะ
$l = mysql_real_escape_string($l); // กรอง injection
$sql = mysql_query("select * from linkurl where left(title,1)='$l' order by title ASC"); // เอาไปเทียบอักษรตัวแรก
while($i = mysql_fetch_array($sql)){
echo $i['title'].'</br>';
}
}
การแบ่งหน้าก็ประยุกต์เอานะ
Date :
2013-07-01 21:33:31
By :
randOmizE
ลองแล้วนะค่ะ ยังคิดนิดหน่อย คือตั้งใจอยากจะให้แสดงครบทั้ง a-z เลยน่ะค่ะ แสดงว่าเราต้องทำทุกตัวเลยใช่มั้ยค่ะ แบบทำทีละตัวน่ะค่ะ
Date :
2013-07-02 11:24:55
By :
mrronalz
คือลองแล้วนะค่ะ ตามที่พี่แนะนำมา มัน error เป็น
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\SeniorProject\mmmmmm.php on line 31
ขึ้นตัวขึ้นต้น ขึ้นตาราง แต่ไม่ขึ้นข้อมูลค่ะ
รบกวนดูให้หน่อยนะค่ะ ขอบคุณมากค่า
Code (PHP)
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?
include("Connection.php");
if(!$_GET["Page"])
{$Page=1;
} else {$Page = $_GET["Page"];}
$strSQL = "select distinct left(ProjectName,1) as letter from ProjectInfo order by letter ASC";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($data = mysql_fetch_array($objQuery)){
echo '<a href="?l='.$data['letter'].'">'.$data['letter'].'</a></br>';
}
if(isset($_GET['l'])) {
$l = strip_tags(trim($_GET['l']));
$l = mysql_real_escape_string($l);
$sql = mysql_query("select * from ProjectInfo where left(title,1)='$l' order by title ASC");
while($i = mysql_fetch_array($sql)){
echo $i['title'].'</br>';
}
}
$Num_Rows = mysql_num_rows($objQuery);
$Per_Page = 1; // Per Page
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
//$strSQL .=" order by ID ASC LIMIT $Page_Start , $Per_Page";
//$objQuery = mysql_query($strSQL);
?>
<table class="table table-hover" width="600">
<tr>
<th width="91"> <div align="center">ID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Language </div></th>
<th width="97"> <div align="center">Advisor </div></th>
<th width="97"> <div align="center">Proj </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["ID"];?></div></a></td>
<td><div align="center"><?=$objResult["ProjectName"];?></div></td>
<td><div align="center"><?=$objResult["Language"];?></div></td>
<td><div align="center"><?=$objResult["Advisor"];?></div></td>
</tr>
<?
}
?>
</table>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?
if($Prev_Page)
{
echo "<a href='?Page=$Prev_Page&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'><< Back </a>";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "[ <a href='?Page=$i&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'>$i</a> ]";
}
else
{
echo "<b> $i </b>";
}
}
if($Page!=$Num_Pages)
{
echo " <a href ='?Page=$Next_Page&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'>Next>></a> ";
}
mysql_close($objConnect);
?>
ประวัติการแก้ไข 2013-07-02 13:12:07
Date :
2013-07-02 12:10:51
By :
mrronalz
ตอนนี้ขึ้นเนื้อหาทั้งหมดแล้วค่ะแต่มันไม่แบ่งหน้าให้นะค่ะ
รบกวนช่วยดูให้หน่อยนะค่ะ
Code (PHP)
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?
include("Connection.php");
if(!$_GET["Page"])
{$Page=1;
} else {$Page = $_GET["Page"];}
$strSQL = "select distinct left(ProjectName,1) as letter from ProjectInfo order by letter ASC";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($data = mysql_fetch_array($objQuery)){
echo '<a href="?l='.$data['letter'].'">'.$data['letter'].'</a></br>';
}
if(isset($_GET['l'])) {
$l = strip_tags(trim($_GET['l']));
$l = mysql_real_escape_string($l);
$strSQL = mysql_query("select * from ProjectInfo where left(ProjectName,1)= '$l' order by ID ASC");
// while($i = mysql_fetch_array($strSQL)){
// echo $i['ProjectName'].'</br>';
// }
// }
//$objQuery = mysql_query($strSQL);
$Num_Rows = mysql_num_rows($strSQL);
$Per_Page = 1; // Per Page
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
//$strSQL .=" LIMIT $Page_Start , $Per_Page";
//$strSQL .=" order by ID ASC LIMIT $Page_Start , $Per_Page";
//$objQuery = mysql_query($strSQL);
?>
<table class="table table-hover" width="600">
<tr>
<th width="91"> <div align="center">ID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Language </div></th>
<th width="97"> <div align="center">Advisor </div></th>
<th width="97"> <div align="center">Proj </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($strSQL))
{
?>
<tr>
<td><div align="center"><?=$objResult["ID"];?></div></a></td>
<td><div align="center"><?=$objResult["ProjectName"];?></div></td>
<td><div align="center"><?=$objResult["Language"];?></div></td>
<td><div align="center"><?=$objResult["Advisor"];?></div></td>
</tr>
<?
}
?>
</table>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?
if($Prev_Page)
{
echo "<a href='?Page=$Prev_Page&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'><< Back </a>";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "[ <a href='?Page=$i&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'>$i</a> ]";
}
else
{
echo "<b> $i </b>";
}
}
if($Page!=$Num_Pages)
{
echo " <a href ='?Page=$Next_Page&txtKeyword=$_GET[txtKeyword]&Lang=$_GET[Lang]&Adv=$_GET[Adv]'>Next>></a> ";
}
mysql_close($objConnect);
}
?>
ประวัติการแก้ไข 2013-07-02 13:04:16 2013-07-02 13:28:31
Date :
2013-07-02 12:59:21
By :
mrronalz
แบ่งหน้า เป็นที่ตรงนี้มั้งครับ
Code (PHP)
$Per_Page = 1;
Date :
2013-07-02 23:47:59
By :
randOmizE
Load balance : Server 03