ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: manesz ที่ 07 สิงหาคม 2011, 14:41:32



หัวข้อ: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
เริ่มหัวข้อโดย: manesz ที่ 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 นั้นสามารถแสดงผลได้เป็นปกติ
 (http://upic.me/i/65/dr081.png) (http://upic.me/show/26943897)

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

แต่หากผมตัดเรียกเพียงแค่ $strSQL = "SELECT * FROM TABLE ; จะแสดงผลแบบนี้
(http://upic.me/i/yt/wwul2.png) (http://upic.me/show/26943908)

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



หัวข้อ: Re: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
เริ่มหัวข้อโดย: ball6847 ที่ 07 สิงหาคม 2011, 14:49:12
ไม่รู้เป็นไร เน็ต TRUE ผม ไม่เคยมีบุญได้เห็นภาพจาก upic.me เป็นมาหลายปีแล้ว


หัวข้อ: Re: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
เริ่มหัวข้อโดย: manesz ที่ 07 สิงหาคม 2011, 14:54:44
ไม่รู้เป็นไร เน็ต TRUE ผม ไม่เคยมีบุญได้เห็นภาพจาก upic.me เป็นมาหลายปีแล้ว

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


หัวข้อ: Re: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
เริ่มหัวข้อโดย: mSkyline ที่ 07 สิงหาคม 2011, 14:56:47
ลองตัด () ดูมั้ยครับ ผมไม่แน่ใจว่า mysql ต้องใช้หรือเปล่า

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

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


หัวข้อ: Re: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
เริ่มหัวข้อโดย: countdown2012 ที่ 07 สิงหาคม 2011, 15:05:44
echo $strSQL; //แล้วเอาไปเทสที่ phpmyadmin
 :P


หัวข้อ: Re: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
เริ่มหัวข้อโดย: manesz ที่ 07 สิงหาคม 2011, 15:27:08
ลองตัด () ดูมั้ยครับ ผมไม่แน่ใจว่า mysql ต้องใช้หรือเปล่า

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

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

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


หัวข้อ: Re: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
เริ่มหัวข้อโดย: mSkyline ที่ 07 สิงหาคม 2011, 15:31:35
อยากรุ้มัน error อะไรก็แก้ตามนี้ครับ

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

กับ

print_r($objQuery)

กับ

echo $strSQ ดูครับ[


หัวข้อ: Re: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
เริ่มหัวข้อโดย: manesz ที่ 07 สิงหาคม 2011, 15:59:28
อยากรุ้มัน error อะไรก็แก้ตามนี้ครับ

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

กับ

print_r($objQuery)

กับ

echo $strSQ ดูครับ[


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

หลังจากที่ผมสอบสอบโดยการพิมพ์ภาษาไทยธรรมดาเข้าไปปรากฏว่า ยังคงไม่สามารถทำการค้นหาได้
(http://upic.me/i/4g/70tn5.png) (http://upic.me/show/26947249)

แต่ทว่าผมลองเปลี่ยนเป็นคำ "?" ในการค้นหาปรากฏว่า
(http://upic.me/i/q3/doth6.png) (http://upic.me/show/26947305)

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


หัวข้อ: Re: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
เริ่มหัวข้อโดย: manesz ที่ 07 สิงหาคม 2011, 16:07:07
หลังจากที่ผมทำการเปลี่ยน Encoding ที่ Template แล้วทดลองค้นหาข้อมูลใหม่อีกครั้ง ปรากฏว่าสามารถค้นหาได้ปกติแล้วครับ สาเหตุมาจากความผิดพลาดในการกรอกข้อมูลก่อนการ จัดรูปแบบ Encoding ให้ถูกต้องเสียก่อนต้อง ขอขอบพระคุณทุกท่านที่กรุณามาก ๆ ครับ

(http://upic.me/i/83/986m1.png) (http://upic.me/show/26947889)

 :wanwan008: :wanwan008: :wanwan008: :wanwan008: :wanwan008:


หัวข้อ: Re: เกิดปัญหาจากการแสดงผล ของ Function การ Search ครับ
เริ่มหัวข้อโดย: ball6847 ที่ 07 สิงหาคม 2011, 16:20:19
เป็น utf8 ให้หมดซะคับ มาตราฐาน