ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingเกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ  (อ่าน 1217 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
manesz
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 47



ดูรายละเอียด เว็บไซต์
« เมื่อ: 07 สิงหาคม 2011, 14:41:32 »

ตอนนี้ผมกำลังการ Function การ Search โดยใช้ Source นี้ครับ

<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
  <table width="599" border="1">
    <tr>
      <th>Keyword
      <input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>">
      <input type="submit" value="Search"></th>
    </tr>
  </table>
</form>
<?
if($_GET["txtKeyword"] != "")
   {
   include "connect.php";
   mysql_select_db($dbname);
   // Search By Name or Email
   $strSQL = "SELECT * FROM tb_interview WHERE (int_quiz LIKE '%".$_GET["txtKeyword"]."%' or int_ans 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 int_id ASC LIMIT $Page_Start , $Per_Page";
   $objQuery  = mysql_query($strSQL);

   ?>
   <table width="600" border="1">
     <tr>
      <th width="91"> <div align="center">CustomerID </div></th>
      <th width="98"> <div align="center">Name </div></th>
      <th width="198"> <div align="center">Email </div></th>
      <th width="97"> <div align="center">CountryCode </div></th>
     </tr>
   <?
   while($objResult = mysql_fetch_array($objQuery))
   {
   ?>
     <tr>
      <td><div align="center"><?=$objResult["int_id"];?></div></td>
      <td><?=$objResult["int_quiz"];?></td>
      <td><?=$objResult["int_ans"];?></td>
      <td><div align="center"><?=$objResult["int_refer"];?></div></td>
     </tr>
   <?
   }
   ?>
   </table>
   <br>
   Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
   <?
   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();

   }   
   ?>

แต่ปรากฏว่าการแสดงผลจากหน้า test นั้นสามารถแสดงผลได้เป็นปกติ
 

แต่หากนำมาเข้าสู่ Template นั้นจะแสดงภาพแบบนี้ ซึ่งมีการเรียกแบบนี้ $strSQL = "SELECT * FROM TABLE WHERE (DATA1 LIKE '%".$_GET["txtKeyword"]."%' or DATA2 LIKE '%".$_GET["txtKeyword"]."%') ";


แต่หากผมตัดเรียกเพียงแค่ $strSQL = "SELECT * FROM TABLE ; จะแสดงผลแบบนี้


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

บันทึกการเข้า

Ideacorners Studio Company Limited. http://www.ideacorners.com
ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #1 เมื่อ: 07 สิงหาคม 2011, 14:49:12 »

ไม่รู้เป็นไร เน็ต TRUE ผม ไม่เคยมีบุญได้เห็นภาพจาก upic.me เป็นมาหลายปีแล้ว
บันทึกการเข้า

manesz
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 47



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 07 สิงหาคม 2011, 14:54:44 »

ไม่รู้เป็นไร เน็ต TRUE ผม ไม่เคยมีบุญได้เห็นภาพจาก upic.me เป็นมาหลายปีแล้ว

ผมก็ TRUE นะครับ ก็สามารถใช้งานได้ ปกติ ลองเรียกเป็น IP ดูครับว่าได้หรือป่าว .....
บันทึกการเข้า

Ideacorners Studio Company Limited. http://www.ideacorners.com
mSkyline
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 131
ออฟไลน์ ออฟไลน์

กระทู้: 1,472



ดูรายละเอียด
« ตอบ #3 เมื่อ: 07 สิงหาคม 2011, 14:56:47 »

ลองตัด () ดูมั้ยครับ ผมไม่แน่ใจว่า mysql ต้องใช้หรือเปล่า

แล้ว if($_GET["txtKeyword"] != "") ตรงนี้ มี else มั้ยครับ ถ้ามันไม่มีค่า txtKeyword มา

พอดีมองผ่านๆแล้วมันไม่เจอ
« แก้ไขครั้งสุดท้าย: 07 สิงหาคม 2011, 14:59:24 โดย mSkyline » บันทึกการเข้า

AnyWhereToThai รับขนสินค้าจาก US UK JP KR CN กลับไทย
https://www.facebook.com/AnyWhereToThai
countdown2012
Newbie
*

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 50



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 07 สิงหาคม 2011, 15:05:44 »

echo $strSQL; //แล้วเอาไปเทสที่ phpmyadmin
 Tongue
บันทึกการเข้า
manesz
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 47



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 07 สิงหาคม 2011, 15:27:08 »

ลองตัด () ดูมั้ยครับ ผมไม่แน่ใจว่า mysql ต้องใช้หรือเปล่า

แล้ว if($_GET["txtKeyword"] != "") ตรงนี้ มี else มั้ยครับ ถ้ามันไม่มีค่า txtKeyword มา

พอดีมองผ่านๆแล้วมันไม่เจอ

ผมลอง test echo $_GET["txtKeyword"] แล้วครับยังเห็นค่าที่กรอกลงไป อยุ่ครับ ..... แต่ไม่ค่อยเข้าใจตอนนี้ว่าทำไมมันไม่แสดงผลเมื่อกำหนดเงื่อนไขในการ SELECT
บันทึกการเข้า

Ideacorners Studio Company Limited. http://www.ideacorners.com
mSkyline
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 131
ออฟไลน์ ออฟไลน์

กระทู้: 1,472



ดูรายละเอียด
« ตอบ #6 เมื่อ: 07 สิงหาคม 2011, 15:31:35 »

อยากรุ้มัน error อะไรก็แก้ตามนี้ครับ

$objQuery = mysql_query($strSQL) or die (mysql_error());

กับ

print_r($objQuery)

กับ

echo $strSQ ดูครับ[
บันทึกการเข้า

AnyWhereToThai รับขนสินค้าจาก US UK JP KR CN กลับไทย
https://www.facebook.com/AnyWhereToThai
manesz
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 47



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 07 สิงหาคม 2011, 15:59:28 »

อยากรุ้มัน error อะไรก็แก้ตามนี้ครับ

$objQuery = mysql_query($strSQL) or die (mysql_error());

กับ

print_r($objQuery)

กับ

echo $strSQ ดูครั�


ต้องขอบคุณ คุณmSkylineและคุณcountdown2012  ด้วยนะครับจากสิ่งที่ทั้ง 2 ท่านได้แนะนำนั้นผมได้เจอสิ่งทีเป็นปัญหาแล้วครับ

หลังจากที่ผมสอบสอบโดยการพิมพ์ภาษาไทยธรรมดาเข้าไปปรากฏว่า ยังคงไม่สามารถทำการค้นหาได้


แต่ทว่าผมลองเปลี่ยนเป็นคำ "?" ในการค้นหาปรากฏว่า


ซึ่งคาดว่าน่าจะเกิดจากการ Encode ระหว่างหน้า Page และ DB ครับ ซึ่งในหน้า Page นั้นผม Encode ด้วย ไทย-Window แต่ใน PHP ผมกำหนด utf8_general_ci ซึ่งผลจากการนำเข้าข้อมูลปรากฏว่าเป็นภาษาที่อ่านไม่ออกแต่ทว่า เมื่อใส่ค่าจากหน้า Page ในการเพิ่มข้อมูลเข้าไปและหน้า Page ที่ทำการใส่ค่าเพื่อค้นหานั้นเป็นการ Encode ลักษณะเดียวกันแต่ให้ผลไม่เหมือนกันไม่ทราบว่า ผมจะตรวจสอบลักษณะการ Encode ได้ด้วยวิธีใดบ้างครับ
« แก้ไขครั้งสุดท้าย: 07 สิงหาคม 2011, 16:01:24 โดย manesz » บันทึกการเข้า

Ideacorners Studio Company Limited. http://www.ideacorners.com
manesz
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 47



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 07 สิงหาคม 2011, 16:07:07 »

หลังจากที่ผมทำการเปลี่ยน Encoding ที่ Template แล้วทดลองค้นหาข้อมูลใหม่อีกครั้ง ปรากฏว่าสามารถค้นหาได้ปกติแล้วครับ สาเหตุมาจากความผิดพลาดในการกรอกข้อมูลก่อนการ จัดรูปแบบ Encoding ให้ถูกต้องเสียก่อนต้อง ขอขอบพระคุณทุกท่านที่กรุณามาก ๆ ครับ



 wanwan008 wanwan008 wanwan008 wanwan008 wanwan008
บันทึกการเข้า

Ideacorners Studio Company Limited. http://www.ideacorners.com
ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #9 เมื่อ: 07 สิงหาคม 2011, 16:20:19 »

เป็น utf8 ให้หมดซะคับ มาตราฐาน
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์