พี่ num อยู่มั้ยคะอยากให้ช่วยทีค่ะ หน้าที่ : Notice: Undefined variable: PHP_SELF in
คำว่า $PHP_SELF เปลี่ยนเป็น {$_SERVER['PHP_SELF']}
Date :
2009-08-05 16:16:39
By :
danya
แก้ได้แล้วค่ะ แต่มีปัญหาตรงที่
1. มันขึ้น error อ่ะค่ะ ถ้ามันมีมากกว่า 1 หน้า สมมุติพอคลิกหน้า 2 จะ error ว่า
Notice: Undefined index: healthtype in C:\AppServ\www\office\HealthSystem_SearchEngine.php on line 184
Notice: Undefined index: txtsearch in C:\AppServ\www\office\HealthSystem_SearchEngine.php on line 184
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\office\HealthSystem_SearchEngine.php on line 186
code นะคะ (ตรงที่มันฟ้องตามบรรทัด)
<?php
$page = @$_GET['page'];
require_once "include/connect_health.php";
$select_type="select * from nsiamdat where $_POST[healthtype] LIKE '%$_POST[txtsearch]%'";
$query_select=mysql_query($select_type);
$num_rows=mysql_num_rows($query_select);
if($num_rows<1){
echo "<br><br><center><font color=#666666 face=tahoma size=2><b>ยังไม่มีการเพิ่มข้อมูลค่ะ</b></font></center>";
}else{
$select="select * from nsiamdat where $_POST[healthtype] LIKE '%$_POST[txtsearch]%' ";
$q_ry = mysql_query($select);
$num_rows=mysql_num_rows($q_ry);
$pagesize=20;
Date :
2009-08-05 16:40:43
By :
น้องเอ๋
$_POST['healthtype'] LIKE '%$_POST['txtsearch']
มันขึ้น
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\AppServ\www\office\HealthSystem_SearchEngine.php on line 184
อ่ะค่ะพี่
Date :
2009-08-05 17:05:52
By :
น้องเอ๋
ออ ลืมไป มันอยู่ใน สตริง
งั้นแก้ใหม่ครับCode (PHP)
<?php
$page = @$_GET['page'];
require_once "include/connect_health.php";
$healthtype = $_POST['healthtype'];
$txtsearch = $_POST['txtsearch'];
$select_type="select * from nsiamdat where $healthtype LIKE '%$txtsearch%' ";
$query_select=mysql_query($select_type);
$num_rows=mysql_num_rows($query_select);
if($num_rows<1){
echo "<br><br><center><font color=#666666 face=tahoma size=2><b>ยังไม่มีการเพิ่มข้อมูลค่ะ</b></font>< /center>";
}else{
$select="select * from nsiamdat where $healthtype LIKE '%$txtsearch%' ";
$q_ry = mysql_query($select);
$num_rows=mysql_num_rows($q_ry);
$pagesize=20;
?>
Date :
2009-08-05 17:19:37
By :
lozomac
สำหรับ form ที่ใช้สำหรับ search เปลี่ยน form เป็น get ดีกว่าครับ
<form method="get" action="?">
...
</form>
ตัวอย่างการสร้าง form search ครับ
<form action="?" method="get">
<br />healthtype<input type="text" name="healthtype" value="h1" />
<br />txtsearch<input type="text" name="txtsearch" value="t1" />
<input type="submit" value="submit" />
</form>
<?php
if (!empty($_GET['healthtype'])){
echo 'helalthtype is ',$_GET['healthtype'],'<br />';
echo 'txtsearch is ',$_GET['txtsearch'],'<br />';
echo 'this is page ',empty($_GET['page'])?1:(int)$_GET['page'],'<br />';
$data = $_GET;
for($i=1;$i<=10;$i++)
{
$data['page'] = $i;
$query = http_build_query($data,'','&');
echo"[<a href='?{$query}'><font size=2 color='#000000'>$i</font></a>]";
}
}
?>
Date :
2009-08-05 21:41:14
By :
num
Code (PHP)
<?php
$page = @$_GET['page'];
require_once "include/connect_health.php";
$healthtype = $_GET['healthtype'];
$txtsearch = $_GET['txtsearch'];
$select_type="select * from nsiamdat where $healthtype LIKE '%$txtsearch%' ";
$query_select=mysql_query($select_type);
$num_rows=mysql_num_rows($query_select);
if($num_rows<1){
echo "<br><br><center><font color=#666666 face=tahoma size=2><b>ยังไม่มีการเพิ่มข้อมูลค่ะ</b></font>< /center>";
}else{
$select="select * from nsiamdat where $healthtype LIKE '%$txtsearch%' ";
$q_ry = mysql_query($select);
$num_rows=mysql_num_rows($q_ry);
$pagesize=20;
$rt=$num_rows%$pagesize;
if($rt!=0)
{
$totalpage=floor($num_rows/$pagesize)+1;
}
else
{
$totalpage=floor($num_rows/$pagesize);
$toppic_id=1;
}
if(empty($page))
{
$page=1;
}
mysql_free_result($q_ry);
$goto=($page-1)*$pagesize;
$sql_select_mem="Select * From nsiamdat where $healthtype LIKE '%$txtsearch%' limit $goto,$pagesize";
$fect=mysql_query($sql_select_mem);
if(!$fect)
{
("ติดต่อฐานข้อมูลไม่ได้".mysql_error());
exit;
}
$bgcount=0;
while($rows=mysql_fetch_array($fect))
{
$perno =$rows['perno'];
$pname = $rows['pname'];
$mname =$rows['mname'];
$plan =$rows['plan'];
$money =$rows['money'];
$exp_mon =$rows['exp_mon'];
$bgcount=$bgcount+1;
$bgmod=$bgcount%2;
if($bgmod==0){
$bgcolor="#E9E9E8";
}else{
$bgcolor="#FFFFFF";
}
if ($exp_mon == "" )
{
$bull_status = "<img src=images/enabled.jpg>";
}else{
$bull_status = "<img src=images/disabled.jpg>";
}
?>
แก้เป็น method = get แล้วค่ะ ยังไม่ได้เลยค่ะ error เหมือนเดิม
Date :
2009-08-06 09:34:25
By :
น้องเอ๋
ต้องแก้ตรงโค้ดส่วนแสดงลิงค์เปลี่ยนหน้าน่ะครับ
ลองนำโค้ดนี้ไปใช้แทนส่วนแสดงลิงค์เดิมครับ
<?php
if (!empty($_GET['healthtype'])){
echo 'helalthtype is ',$_GET['healthtype'],'<br />';
echo 'txtsearch is ',$_GET['txtsearch'],'<br />';
echo 'this is page ',empty($_GET['page'])?1:(int)$_GET['page'],'<br />';
$data = $_GET;
for($i=1;$i<=10;$i++)
{
$data['page'] = $i;
$query = http_build_query($data,'','&');
echo"[<a href='?{$query}'><font size=2 color='#000000'>$i</font></a>]";
}
}
?>
Date :
2009-08-06 09:45:29
By :
num
พี่ num คะ ล่าสุดได้เปลี่ยนตามที่บอกแล้วค่ะ
อย่างเช่นหาคำว่า กัลยา จะขึ้นครบทุกอย่าง แต่..
จะมีหมายเลขหน้าขึ้นมา 8 หน้า [1] [2] [3] จนถึงหน้า 8 ค่ะ
แต่ข้อมูลจะมีแค่หน้าที่ 5 หน้าที่ 6 - 8 จะโล่งเลยค่ะ
อีกคำถามนะคะพี่ num
ถ้าข้อมูลมีประมาณ 10 หน้า เขียนยังไงให้ขึ้นอย่างงี้คะ
[1][2][3][4][5]....[10]
เพราะดูหลายกระทู้ในนี้แล้วยังงงอยู่ค่ะ
ขอบคุณนะคะ
Date :
2009-08-06 10:37:17
By :
น้องเอ๋
จะมีหมายเลขหน้าขึ้นมา 8 หน้า [1] [2] [3] จนถึงหน้า 8 ค่ะ
แต่ข้อมูลจะมีแค่หน้าที่ 5 หน้าที่ 6 - 8 จะโล่งเลยค่ะ
^อันนี้ไม่รู้ครับ แต่อาจจะเริ่มต้นค้นหาจุดที่เป็นปัญหาจากการไปเปิดที่หน้าที่ 6 ครับ
แล้ว echo ตัวแปรต่างๆ เช่น
$num_rows ดูว่ามีจำนวนแถวเท่าไหร่
$sql_select_mem ดูว่า sql ขึ้นว่าอะไร แล้วถ้าเอาไป sql ดังกล่าวไปใช้ใน phpmyadmin จะขึ้นรายการมากี่แถว ฯลฯ
ถ้าไม่ error และไม่มีรายการขึ้นมาแสดงว่าปกติดีครับ
อาจจะต้องแก้โค้ดตรง for($i=1;$i<=10;$i++) เป็น for($i=1;$i<$totalpage;$i++) ครับ
ตรงนี้เขียนผิดนิดนึงครับ
if(!$fect)
{
//("ติดต่อฐานข้อมูลไม่ได้".mysql_error());
die("ติดต่อฐานข้อมูลไม่ได้".mysql_error());
exit;
}
------------------------------------------------------------------------------------------------------------------------------------
[1][2][3][4][5]....[10]
ยังไม่ทราบว่าที่ต้องการเป็นแบบไหนลองหาเว็บตัวอย่างให้ดูหน่อยครับ
Date :
2009-08-06 11:08:41
By :
num
พี่ num ขอบคุณมกนะคะ ได้ครบทุกอย่างแล้ว ขอบคุณจากใจจริงค่ะ
Date :
2009-08-06 12:19:55
By :
น้องเอ๋
พี่ num คะ ขออีกรอบเพิ่งเจอ กรณีที่ข้อมูลพบใน db จะปกติทุกอย่าง แต่ถ้าไม่พบข้อมูลจะ error อ่ะค่ะ
Notice: Undefined variable: totalpage in C:\AppServ\www\office\HealthSystem_SearchEngine.php on line 297
code ด้านบนค่ะ
-----------
Code (PHP)
<?php
$page = @$_GET['page'];
require_once "include/connect_health.php";
$healthtype = $_GET['healthtype'];
$txtsearch = $_GET['txtsearch'];
$select_type="select * from nsiamdat where $healthtype LIKE '%$txtsearch%' ";
$query_select=mysql_query($select_type);
$num_rows=mysql_num_rows($query_select);
if($num_rows<1){
echo "<br><br><center><font color=#666666 face=tahoma size=2><b>ยังไม่มีการเพิ่มข้อมูลค่ะ</b></font>< /center>";
}else{
$select="select * from nsiamdat where $healthtype LIKE '%$txtsearch%' ";
$q_ry = mysql_query($select);
$num_rows=mysql_num_rows($q_ry);
$pagesize=20;
$rt=$num_rows%$pagesize;
if($rt!=0)
{
$totalpage=floor($num_rows/$pagesize)+1;
}
else
{
$totalpage=floor($num_rows/$pagesize);
$toppic_id=1;
}
if(empty($page))
{
$page=1;
}
mysql_free_result($q_ry);
$goto=($page-1)*$pagesize;
$sql_select_mem="Select * From nsiamdat where $healthtype LIKE '%$txtsearch%' limit $goto,$pagesize";
$fect=mysql_query($sql_select_mem);
if(!$fect)
{
//("ติดต่อฐานข้อมูลไม่ได้".mysql_error());
die("ติดต่อฐานข้อมูลไม่ได้".mysql_error());
exit;
}
$bgcount=0;
while($rows=mysql_fetch_array($fect))
{
$perno =$rows['perno'];
$pname = $rows['pname'];
$mname =$rows['mname'];
$plan =$rows['plan'];
$money =$rows['money'];
$exp_mon =$rows['exp_mon'];
$bgcount=$bgcount+1;
$bgmod=$bgcount%2;
if($bgmod==0){
$bgcolor="#E9E9E8";
}else{
$bgcolor="#FFFFFF";
}
if ($exp_mon == "" )
{
$bull_status = "<img src=images/enabled.jpg>";
}else{
$bull_status = "<img src=images/disabled.jpg>";
}
?>
แต่ตรงที่ บรรทัดเลขที่ฟ้องจะตรงนี้ค่ะ
Code (PHP)
<?php
if (!empty($_GET['healthtype'])){
echo 'จำนวนที่ค้นพบ ',$num_rows,'<br />';
echo 'คำที่ได้ทำการค้นหา : ',$_GET['txtsearch'],'<br />';
echo 'ขณะนี้อยู่ที่หน้า : ',empty($_GET['page'])?1:(int)$_GET['page'],'<br />';
$data = $_GET;
//for($i=1;$i<=10;$i++)
297....... for($i=1;$i<$totalpage;$i++)
{
$data['page'] = $i;
$query = http_build_query($data,'','&');
echo"[<a href='?{$query}'><font size=2 color='#000000'>$i</font></a>]";
}
}
?>
ต้องแก้ตรงไหนคะ ถ้าจะเช็คว่า ถ้าไม่เจอข้อมูลให้แสดงข้อความขึ้นมา
Date :
2009-08-06 12:26:13
By :
น้องเอ๋
ตรงนี้ครับ :)
if ( !empty($_GET['healthtype']) && !empty($totalpage) ){
Date :
2009-08-06 12:55:13
By :
num
พี่ num ยอดมาก
Date :
2009-08-06 13:39:38
By :
lozomac
ขอบคุณครับ :)
Date :
2009-08-06 14:44:36
By :
num
Load balance : Server 04