|
|
|
รบกวนถามปัญหา โค๊ด PHP หลังอับงานขึ้นโฮสแล้วหน่อยครับ |
|
|
|
|
|
|
|
ปัญหาคือ หน้าค้นหาไฟล์ของผม บางทีก็ค้นหาได้ บางทีก็ขึ้นว่า
Error Query [SELECT * FROM input WHERE i_codeorder LIKE '%ศธ0627.6/ว50%']
ผมลงรีเพจแล้วหลายๆครั้ง ทดลองค้นหาด้วยคีย์เวิร์ดที่เกียวข้องหลายๆครั้ง มันก็เป็นอาการว่า ค้นได้บ้าง error บ้าง
ผมงงจริงๆครับว่าเกิดจากอะไร ผมลองใช้โฮสฟรี2โฮส คือ 1freehosting กับ hostinger ก็เป็นปัญหาเดียวกันครับ รบกวนช่วยชี้แนะหน่อยครับ
ในส่วนหน้าแสดงเนื้อหาทั่วไป และหน้าอื่นๆ โชว์ข้อมูลปกติ มีปัญหาแค่ส่วนค้นหาข้อมูล จึงคิดว่าไม่น่าจะมีปัญหาการเชื่อมฐานข้อมูลของไฟล์ DBcon.php
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Admin Page</title>
<link href="../CSS/box.css" rel="stylesheet" type="text/css" />
<style type="text/css">
body {
background-image: url(../images/bar/BG.png);
background-repeat: repeat-x;
background-attachment:fixed;
}
</style>
</head>
<body>
<form name="frmSearch" method="GET" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="900" border="0" align="center">
<tr>
<td align="right">
<input name="txtKeyword" type="text" id="txtKeyword" value="" />
<input type="submit" value="Search" />
<br />
<font color="#FF0000" size="-1">การค้นหาจากวันที่ กรุณาใส่ ปี-เดือน-วัน เช่น 2014-12-25</font></td>
</tr>
</table></form>
<table width="905" border="0" align="center" cellpadding="3" cellspacing="0">
<tr class="Box_Search">
<td height="43" colspan="5" align="center">ราการหนังสือนำเข้า</td>
</tr>
<tr class="Bar_top">
<td width="110" align="center">ที่</td>
<td width="115" align="center">ลงวันที่</td>
<td width="510" align="center">เรื่อง</td>
<td align="center">ลายละเอียด</td>
</tr>
<?
if($_GET["txtKeyword"] != "" )
{
require('../Connections/DBcon.php');
$strSQL = "SELECT * FROM input WHERE i_codeorder LIKE '%."$_GET["txtKeyword."%' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<!--------------------ปิกส่วนเรียกใช้ฐานข้อมูล------------------------------------->
<?
if(mysql_num_rows($objQuery) <1){
?>
<table width="800" border="0" align="center">
<tr>
<td colspan="1" align="center" bgcolor="#FFFFFF"><font size="+2"><font color="#FF0000">ไม่พบข้อมูลที่ค้นหา</font></font></td>
</tr>
</table>
<?
}else{ ?>
<!-----------------------ตารางแสดงข้อมูล------------------>
<?
while($objResult = mysql_fetch_array($objQuery))
{
//เริ่มการแปลงวันเดือนปี
$strDate= $objResult['i_date']; //กำหนดค่าตัวแปร โดยเรียกใช้วันเดือนปีในฐานข้อมูล
$years=date("Y",strtotime($strDate))+543; //แปลงปี ค.ศ. เป็น ปี พ.ศ. โดยทำการแยกปี ค.ศ. จากฐานข้อมูลแล้วบวกด้วย543 จากนั้นเก็บค่าในตัวแปร years
$strDay= date("j",strtotime($strDate)); //แยกวันที่จากตัวแปร strDate เก็บไว้ในตัวแปร strDay
if($strDay<=9) { $strDay="0".$strDay; } //หากวันที่ มีค่าน้อยกว่าหรือเท่ากับ 9 ให้เพิ่มเลข 0 ไว้ด้านหน้า จาก วันที่ 1 เป็น 01 และเก็บไว้ในตัวแปร strDay
$strMonth= date("n",strtotime($strDate)); //แยกวันที่จากตัวแปร strDate เก็บไว้ในตัวแปร strMonth
$strMonthCut = Array("","ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."); //สร้างตัวแปร strMonthCut กำหนดค่า Arrayของตัวแปรเป็นชื่อย่อของเดือน
$strMonthThai=$strMonthCut[$strMonth]; //สร้างตัวแปร strMonthThai กำหนดค่าตัวแปร โดยกำหนดให้ strMonthThai=ชื่อของArray[ลำดับArrayคือลำดับเดือน]
$date=$strDay." ".$strMonthThai." ".$years; //กำหนดตัวแปร date เป็นค่า วันเดือนปีที่แยกตัวแปรไว้มารวมกันทั้งหมด ตามลำดับเป็น วัน เดือน ปี
//สิ้นสุดการแปลง
if($objResult['i_codeorder']=="")
{$objResult['i_codeorder']="--";}
$i=($row++); //กำหนดสีของRow
?>
<tr <? if($i%=2){ ?>bgcolor="#E3EFFF" <? }
else { ?>bgcolor="#FFFFFF" <? }
?>>
<td width="110" ><?=$objResult["i_codeorder"];?></td>
<td width="115" align="right" ><? echo $date;?> </td>
<td width="510" ><?=$objResult["i_Subject"];?></td>
<td width="78" align="center" > <a onclick="window.open('../user/input/viwe_in.php?i_number=<?=$objResult["i_number"];?>','','left=0,top=0,scrollbars=yes,width=630,height=600')" style="cursor:pointer;"><img src="../images/Faculty_of_education_in_thai-icon.png" width="20" height="20" /></a> </td>
</tr>
<?
}
}
}
?>
</table>
</td>
</tr>
</table>
</body>
</html>
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2014-09-09 20:04:36 |
By :
puttisak |
View :
786 |
Reply :
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค๊ดเละเทะมาก ใครสอนให้เขียนแบบนี้
|
|
|
|
|
Date :
2014-09-09 20:23:43 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เริ่มต้นดูบรรทัดที่ 4 ครับ
charset เป็น windows-874 ซึ่งไม่แนะนำอย่างแรง
ควรเปลี่ยนเป็น UTF-8 ทั้งระบบ รวมถึง Database ก็ต้องเป็น UTF-8
แถมให้ หลังจากเปลี่ยนเป็น UTF-8 ให้ Query "SET NAMES UTF8" หลังConnect Database ด้วยจะเป็นการดีครับ
|
|
|
|
|
Date :
2014-09-09 23:21:01 |
By :
KingdomOfGolf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บรรทัดที่ 35 คำว่า ลายละเอียด น่าจะเป็นรอเรือนะ เอ๊ะหรือว่า ลายไม่เอียดกับลายละเอียด (อาจจะเกี่ยวกับโค๊ดนะครับ เพราะผมไม่รู้เรื่องโค๊ดเลย เข้ามาเอาความรู้แต่เผอิญว่าคำนี้มันทะแม่งๆ คงไม่ว่ากันเนาะ)
|
|
|
|
|
Date :
2014-09-10 01:30:45 |
By :
มาศึกษาหาความรู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$strSQL = "SELECT * FROM input WHERE i_codeorder LIKE '%."$_GET["txtKeyword."%' ";
เปลี่ยนเป็น
Code (PHP)
$strSQL = "SELECT * FROM input WHERE i_codeorder LIKE '%" . mysql_real_escape_string($_GET["txtKeyword"]) . "%' ";
1. โค้ดคุณเละจริงๆ ไม่เข้าใจทำไมไม่ติดปัญหาบน localhost ทั้งๆที่เขียนตัวรับ $_GET ก็ผิด ปิด quote มั่วไปหมด
2. คุณควรเลิกใช้ mysql_ function ได้แล้ว ให้เปลี่ยนไปใช้ mysqli_ function แทน หรือไม่ก็ PDO
3. หลายๆคอมเม้นท์ข้างบนมีประโยชน์ ปรับปรุงตามที่เขาบอกกันนะครับ
|
|
|
|
|
Date :
2014-09-10 06:41:32 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่อ ไม่มีใครสอนผมเขียนโค๊ดหรอกครับ ผมศึกษาเองจากหนังสือ แล้วพอเข้าใน ก็เลยหยิบมาทำเป็นโปรเจค ทั้งๆที่เพื่อนคนอื่นเค้าทำโปรเจคเป็นพวกสื่อการเรียนกัน ฮ่าๆ ขนาดอ.เองก็ยังบอกว่าโค๊ดเละเหมือนกัน ขอบคุณทุกท่านมากครับ เดียวผมจะลองแก้ไขดู
|
|
|
|
|
Date :
2014-09-10 15:14:54 |
By :
puttisak |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ไขเบื้องต้น SELECT * FROM input WHERE i_codeorder LIKE '%ศธ0627.6/ว50%'
ลองเอาไปรันใน host ดูก่อน
โค๊ดเละมากผมเห็นผมบอกแค่คำแนะนำแล้วกัน อ่านแล้วงง
|
|
|
|
|
Date :
2014-09-10 15:31:15 |
By :
summawat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
if($_GET["txtKeyword"] != "" )
{ $keyword = $_GET["txtKeyword"] ;
require('../Connections/DBcon.php');
$strSQL = "SELECT * FROM input WHERE i_codeorder LIKE %'".$keyword."'% ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
ลองแบบนี้ได้ไหมครับ
ปัญหานี้คือ คิวรี่ไม่ได้เฉยๆครับ
|
ประวัติการแก้ไข 2014-09-11 07:55:01
|
|
|
|
Date :
2014-09-11 07:54:20 |
By :
nest12345 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|