|
|
|
อยากดึงข้อมูลจากการค้นหา Mysql ซึ่งจะได้ผลลัพธ์ออกมาเป็น ลิงค์และบทความย่ออยู่ภายใต้ลิงค์ ครับ |
|
|
|
|
|
|
|
อยากรู้ว่าตอนนี้ทำอะไรไปบ้างแล้วครับ จะได้แนะถูก
|
|
|
|
|
Date :
2011-07-18 23:49:30 |
By :
kerb |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="955" border="1">
<tr>
<th width="945">Keyword
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>" size="38" >
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<?
if($_GET["txtKeyword"] != "")
{
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("test");
$strSQL = "SELECT * FROM new WHERE (id LIKE '%".$_GET["txtKeyword"]."%' or detail LIKE '%".$_GET["txtKeyword"]."%')";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
$Per_Page = 10; // Per Page
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
$Page=1;
}
$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 width="954" border="1">
<tr>
<th width="107" height="27"> <div align="center">]ลำดับที่</div></th>
<th width="168"> <div align="center">ข่าว </div></th>
<th width="490"> <div align="center">บทความที่เกี่ยวข้อง </div></th>
<th width="161"> <div align="center">หมายเหตุ</div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td height="25"><div align="center">
<?=$objResult["id"];?>
</div></td>
<td><?=$objResult["new"];?></td>
<td><?=$objResult["detail"];?></td>
<td><div align="center">
<?=$objResult[""];?>
</div></td>
</tr>
<?
}
?>
</table><br>
<br>
<?
$txtKeyword = $_GET[txtKeyword];
if(isset($txtKeyword) ) {
echo "<font size='-3' color='#FF0000'>ผลลัพธ์ของคำว่า [ $txtKeyword ] </font><br />";}
?>
ค้นพบ <?= $Num_Rows;?> คำ : แสดงใน <?=$Num_Pages;?>หน้า :
<?
if($Prev_Page)
{
echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page&txtKeyword=$_GET[txtKeyword]'><< Back</a> ";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i&txtKeyword=$_GET[txtKeyword]'>$i</a> ]";
}
else
{
echo "<b> $i </b>";
}
}
if($Page!=$Num_Pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page&txtKeyword=$_GET[txtKeyword]'>Next>></a> ";
}
mysql_close($objConnect);
}
?>
ตอนนี้ค้นหาได้แล้วครับ เหลือแต่ สร้างลิงค์จากการค้นหาโดยดึงจากฟิลด์ news แล้วเอา detail เป็นข้อความย่อที่ต่อท้ายเมื่อคลิกไปอยากให้สร้างอีกหน้าแล้ว อ่าน detail เต็มๆครับ
|
|
|
|
|
Date :
2011-07-18 23:54:57 |
By :
keat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้คำสั่งนี้ได้เลยครับ เพื่อทำการแสดงข้อมูลที่ค้นหาได้ออกมาทั้งหมด
Code (PHP)
while($row=mysql_fetch_array($objQuery)){
// ตรงนี้ก็สามารถ แสดง แต่ละฟิลด์ที่ต้องการแสดงได้เลยครับ เช่น
echo '<a href="#">'.$row['news'].' '.$row['detail '].'</a><br>';
}
ลองแค่นี้ดูก่อนก็ได้ครับ
mysql_fetch_array คำสั่งนี้ใช้สำหรับ ดึงข้อมูลที่ query มาได้ มาเป็นในรูปแบบ array ครับ สามารถ เรียกใช้งานได้ 2 แบบ คือ เรียกโดยใช้ตัวเลข หรือ Index นั่นเอง เช่น ต้องการเรียกค่าใน ฟิลด์ แรก เรียกได้โดย $row[0] ที่เป็นเลข 0 เพราะใน php ค่า Index ของ array จะเริ่มจาก 0 ครับ ส่วนอีกแบบ คือเรียกโดยใช้ชื่อ ฟิลด์ได้เลยครับ $row['news'] แบบนี้ครับ
เราสามารถใช้ mysql_fetch_assoc แทน mysql_fetch_array ได้ครับ แต่จะสามารถเรียกใช้งานได้แค่แบบที่ 2 ครับ คือเรียกชื่อฟิลด์
|
|
|
|
|
Date :
2011-07-19 00:15:13 |
By :
kerb |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือผมไม่รู้ว่า ลิงค์ ที่โชว์ detail เต็มๆ มีหรือยัง แล้ว detail ย่ออยู่ ฟิลด์อะไรครับ
|
|
|
|
|
Date :
2011-07-19 00:54:12 |
By :
kerb |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลิงค์(หัวข้อ)ออกมาแล้วครับ อยู่ในฟิลด์ new
ส่วน detailย่อย อยู่ในฟิลด์ detail ครับว่าอยากจะให้แสดงสักสองบรรทัด(เหมือน google ครับ)
เมื่อเราคลิ๊กที่หัวข้ออยากให้ให้ดึงเนื้อหาข่าวออกมาเต็มๆอีกหน้าหนึ่ง ซึ่งอยู่ในฐานข้อมูลครับฟิลด์ detail ตอนนี้ดึงยังไงก็ไม่ออกเดี๋ยวค่อยๆลองดูครับ
|
|
|
|
|
Date :
2011-07-19 11:36:20 |
By :
keat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบนี้หรือเปล่า ตัดคำมาตามจำนวนที่เราต้องการ
เช่น
echo substr($detail,0,100);
หรือตัดย่อหน้า
เช่น
$position=strpos($detail,"<br>");
echo substr($detail,0,$position);
|
ประวัติการแก้ไข 2011-07-19 17:56:14
|
|
|
|
Date :
2011-07-19 17:52:16 |
By :
nimporn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลอง ดูแล้ว ยังไม่ได้เลยคับ พี่nimporn พี่ kerb ลิงค์ มันก็ยังเชื่อม ไม่ได้เลยครับ
|
|
|
|
|
Date :
2011-07-19 22:13:21 |
By :
keat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอดูว่า table มีฟิลด์อะไรบ้างครับ ช่วยบอกหน่อย
|
|
|
|
|
Date :
2011-07-19 22:52:32 |
By :
kerb |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ชื่อตาราง new มีฟิลด์ id เป็น ลำดับครับ new หัวข้อข่าว และ detail เป็นรายละเอียดครับ
|
|
|
|
|
Date :
2011-07-19 23:11:14 |
By :
keat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Error อะไรไหม ติดยังไง Output ตอนนี้เป็นยังไง echo sql statement ออกมาดูแล้วลองเอาไป query ดูใน phpmyadmin ว่ามันได้ไหม
|
|
|
|
|
Date :
2011-07-20 00:34:11 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ติดแบบเดียวครับพี่ๆ คือ ถ้าเรา มีลิงค์แล้วจะใส่ค่าในลิงค์ให้เชือม ไปอีกหน้าหนึ่งทำยังไงคับ และหน้าที่คลิ๊กแล้วมีข้อมูลที่เราต้องการ
|
|
|
|
|
Date :
2011-07-22 16:12:08 |
By :
keat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|