สอบถามเรื่องโค้ดโชว์รูปหน่อยคับมันมีerrorแต่รูปขึ้นคับ ขอบคุณล่วงหน้าคับ
Code (PHP)
echo $strSQL;
เอาค่า SQL ออกมาดูหน่อยครับ
Date :
2016-10-20 11:48:37
By :
mr.win
if($_GET["txtKeyword"] != ""){
...
}
เอาโค๊ดที่แก้ไขแล้วมาแสดงด้วยครับ เอามาแค่ภาพ ไม่รู้ว่าแก้อะไรไปบ้าง
Date :
2016-10-20 14:03:04
By :
Chaidhanan
อาจจะเป็นไปได้ว่า syntax อาจผิดพลาด
Code (PHP)
$strSQL = "SELECT * FROM picture WHERE (projectid LIKE '%".$_GET["txtKeyword"]."%' )"; // เดิม
$strSQL = "SELECT * FROM picture WHERE projectid LIKE '%".$_GET["txtKeyword"]."%' "; // เปลี่ยน
ไม่รู้นะ ลองดู แต่ผมว่าใช่
Date :
2016-10-20 14:10:53
By :
dudesaranyu
Code (PHP)
แก้ไปแค่นี้คับ อีกโค้ดผมไม่รุว่าใส่ตรงไหน
<html>
<head>
<title>show picture</title>
</head>
<body>
<center>
<form name="frmSearch" method="get" action="<?php echo $_SERVER['SCRIPT_NAME'];?>">
<table width="599" border="1">
<tr>
<th>projectid
<input name="txtKeyword" type="text" id="txtKeyword" value="<?php echo $_GET["txtKeyword"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<?php
if($_GET["txtKeyword"] != "")
$objConnect = mysql_connect("localhost","root","1234") or die(mysql_error());
$objDB = mysql_select_db("project");
$strSQL = "SELECT * FROM picture WHERE (projectid LIKE '%".$_GET["txtKeyword"]."%' )";
$objQuery = mysql_query($strSQL) or die (mysql_error());
echo"<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\"><tr>";
$intRows = 0;
while($objResult = mysql_fetch_array($objQuery))
{
echo "<td>";
$intRows++;
?>
<table width="91" border="0" cellspacing="0" cellpadding="0">
<center>
<tr>
<td><div align="center"><a href="myfile/<?php echo $objResult["filename"];?>" target="_blank"><img src="myfile/<?php echo $objResult["filename"];?>" width="200" height="200" border="0"></a></div></td>
</tr>
</center>
</table>
<?php
echo"</td>";
if(($intRows)%7==0)
{
echo"</tr>";
}
}
echo"</tr></table>";
?>
<center>
</body>
</html>
<?php
mysql_close($objConnect);
?>
Date :
2016-10-20 14:13:35
By :
autthaporn
ยังเหมือนเดิมคับ
Code (PHP)
<html>
<head>
<title>show picture</title>
</head>
<body>
<center>
<form name="frmSearch" method="get" action="<?php echo $_SERVER['SCRIPT_NAME'];?>">
<table width="599" border="1">
<tr>
<th>projectid
<input name="txtKeyword" type="text" id="txtKeyword" value="<?php echo $_GET["txtKeyword"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<?php
if($_GET["txtKeyword"] != "")
$objConnect = mysql_connect("localhost","root","1234") or die(mysql_error());
$objDB = mysql_select_db("project");
$strSQL = "SELECT * FROM picture WHERE projectid LIKE '%".$_GET["txtKeyword"]."%' ";
$objQuery = mysql_query($strSQL) or die (mysql_error());
echo"<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\"><tr>";
$intRows = 0;
while($objResult = mysql_fetch_array($objQuery))
{
echo "<td>";
$intRows++;
?>
<table width="91" border="0" cellspacing="0" cellpadding="0">
<center>
<tr>
<td><div align="center"><a href="myfile/<?php echo $objResult["filename"];?>" target="_blank"><img src="myfile/<?php echo $objResult["filename"];?>" width="200" height="200" border="0"></a></div></td>
</tr>
</center>
</table>
<?php
echo"</td>";
if(($intRows)%7==0)
{
echo"</tr>";
}
}
echo"</tr></table>";
?>
<center>
</body>
</html>
<?php
mysql_close($objConnect);
?>
Date :
2016-10-20 14:18:24
By :
autthaporn
ผมหมายถึง error supplies ครับ error select db มันคนละอย่างกัน -.-
Date :
2016-10-20 14:22:56
By :
dudesaranyu
ลองเอาไปศึกษาดูครับ เปลี่ยนเป็น mysqli ให้ แต่ยังไม่ได้ทดสอบ อาจมี เออเร่อร์
Code (PHP)
<?php
mysqli_report(MYSQLI_REPORT_STRICT);
try {
$cnx = new mysqli("localhost","root","1234", 'project');
} catch (Exception $e ) {
echo "Service unavailable";
echo "message: " . $e->message; // not in live code obviously...
exit;
}
$cnx->set_charset('utf8');
$search = !isset($_GET['txtKeyword'])|| strlen($_GET['txtKeyword'])==0) ? ''
: $cnx->real_escape_string($_GET['txtKeyword']); //ป้องกัน sql injection
?>
<html>
<head>
<title>show picture</title>
<style>
ul{list-style:none;}
li{display: block;}
</style>
</head>
<body>
<center>
<form name="frmSearch" method="get"
<?php /*action="<?php echo $_SERVER['SCRIPT_NAME']; ถ้าเรียกตัวมันเองไม่ต้องใส่ action ? >" */?> >
<table width="599" border="1">
<tr>
<th>projectid
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$search?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<table border="1" cellspacing="1" cellpadding="1">
<tr>
<td style="text-align: center;">
<ul>
<?php
if(strlen($search)){
$strSQL = "SELECT filename FROM picture WHERE (projectid LIKE '%$search%')";
// ถ้ามี condition เดียวไม่จำเป็นต้องใส่วงเล็บ ถึงมีหลาย conditiion การใส่วงเล็บก็เป็นการแยกแยกให้คนเข้าใจได้ง่าย
// และไม่ใช้ select * ใช้แค่ field เดียว แต่คิวรี่มาทั้งโขยง ขีช้างจับตั๊กแตน
$result = $cnx->query($strSQL) or die ($cnx->error . "<br>$strSQL"); // ตรวจสอบ statement ว่า error หรือไม่
if($result->num_rows==0){ // ตรวจสอบจำนวน row ที่ได้
?>
<li>No Data found</li>
<?php
}else{
while($row = $result->fetch_assoc()){
?>
<li><a href="myfile/<?=$row["filename"]?>" target="_blank">
<img src="myfile/<?=$row["filename"]?>" width="200" height="200" border="0"></a></li>
<?php
}
}
?>
</ul>
</td>
</tr>
</table>
<center>
</body>
</html>
<!-- จบโปรแกรมแล้วไม่ต้อง close มัน close เองอัตตโนมัติ
< ?php
// mysql_close($objConnect);
? >-->
ประวัติการแก้ไข 2016-10-20 15:06:41
Date :
2016-10-20 15:04:19
By :
Chaidhanan
จุดสังเกตุที่สำคัญของ Error นี้คือ ไม่มีค่า $_GET['txtKeyword'] ส่งมาครับ
ประวัติการแก้ไข 2016-10-20 15:29:02
Date :
2016-10-20 15:28:31
By :
arm8957
Date :
2016-10-20 17:38:47
By :
mr.win
Load balance : Server 02