มันขึ้น Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Unicity\read_cart.php on line 15
โค้ด
ShowProduct
<!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>Unicity</title>
<link rel="stylesheet" href="style.css" />
<style>
.add_cart { font-size: 8pt; background-color: #CCBBFF; color: brown; }
.line_dot { border-top: dotted 1px gray; }
</style>
<script src="framework.js"> </script>
<script>
function addCart(id) {
var data = "id=" + id;
var URL = "add_cart.php";
ajaxLoad('post', URL, data, "cart");
}
function readCart() {
ajaxLoad('post', "read_cart.php", null, "cart");
}
</script>
</head>
<body>
<!-- ตารางที่ใช้วางโครงร่างของส่วนแสดงรายกรสินค้าและรายการในรถเข็น -->
<table width="731" align="center" style="border: solid 1px #cccccc;">
<tr valign="top">
<!-- ช่องเซลล์ด้านซ้าย แสดงรายการสินค้า -->
<td width="486">
<p />
<!-- ตารางย่อยที่ซ้อนอยู่ภายในช่องเซลล์ด้ายซ้าย เพื่อให้จัดวางข้อมูลได้ตามที่ต้องการ -->
<table width="100%" bordercolor="gray" style="border-colllapse: collapse;">
<tr><td width="62"> </td><td width="146"> </td><td width="248"> </td></tr>
<?php
include("paging.inc.php");
include("dbconn.inc.php");
mysql_query("SET NAMES tis620");
//นำการแบ่งเพจมาใช้ด้วย เผื่อกรณีมีสินค้าจำนวนมาก
$current_page = 1;
if(isset($_GET['page'])) {
$current_page = $_GET['page'];
}
$rows_per_page = 5;
$start_row = paging_start_row($current_page, $rows_per_page);
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM product
LIMIT $start_row, $rows_per_page;";
$result = mysql_query($sql);
$found_rows = mysql_query("SELECT FOUND_ROWS();");
$total_rows = mysql_result($found_rows, 0, 0);
if($total_rows == 0) {
echo "<caption><b>ไม่พบรายการสินค้า</b></caption>";
}
else {
$stop_row = paging_stop_row($start_row, $rows_per_page, $total_rows);
echo "<caption><b>รายการสินค้าลำดับที่: " . ($start_row + 1) .
" - " . "$stop_row จากทั้งหมด $total_rows </b></caption>";
}
while($p = mysql_fetch_array($result)) {
$id = $p['id'];
echo "
<tr valign=top>
<td rowspan=2 align=center>
<b>{$p['id']}</b></a> <br />
</td>
<td colspan=2>
<b>{$p['productName']}</b></a> <br />
</td>
</tr>
<tr valign=bottom>
<td>
คงเหลือ: {$p['inventory']} ชิ้น
</td>
<td>
PVต่อชิ้น: {$p['productPV']}
</td>
<td>
ราคา: {$p['productPrice']} บาท
</td>
<td align=right>
<input type=button value=ซื้อสินค้า class=add_cart
onClick=\"addCart($id)\" />
</td>
</tr>
<tr><td colspan=3 class=line_dot> </td></tr>";
}
?>
</table>
<p align="center">
<?php
//แสดงหมายเลขเพจ
$page_range = 10;
$qry_str = "";
$total_pages = paging_total_pages($total_rows, $rows_per_page);
$pagenum = paging_pagenum($current_page, $total_pages,
$page_range, $qry_str);
echo "หน้า: " . $pagenum;
?>
</td>
<!-- ช่องเซลล์ด้านขวา แสดงรายการสินค้าที่อยู่ในรถเข็น -->
<td width="233" bgcolor="#eeeeff" id="cart">
<script> readCart(); </script>
</td>
</tr>
</table>
<p> </p>
</body>
</html>
read_cart
<?php
session_start();
$sid = session_id();
include("dbconn.inc.php");
$sql = "SELECT * FROM product WHERE sess_id = '$sid';";
$result = mysql_query($sql);
header("content-type: text/html; charset=tis-620");
$r = "<p align=center>
<br />";
if(mysql_num_rows($result) == 0) {
echo "$r<b>ไม่มีสินค้าในรถเข็น</b></p>";
exit;
}
$r .= "<b>รายการสินค้าในรถเข็น</b></p>";
$r .= "<ul>";
while($cart = mysql_fetch_array($result)) {
$r .= "<li> {$cart['productName']} </li>";
}
$r .= "</ul>";
$r .= "<p align=center><a href=check_cart.php>สำรวจรถเข็นและสั่งซื้อ</a></p>";
echo $r;
?>
add_cart
<?php
session_start();
$sid = session_id();
$proID = "";
if(isset($_POST['id'])) {
$proID = $_POST['id'];
}
else {
exit;
}
include("dbconn.inc.php");
//ข้อมูลที่ส่งเข้ามีเพียงค่า id ของสินค้า
//แต่ที่ตาราง cart เราต้องเก็บชื่อและราคาสินค้านั้นด้วย
//ดังนั้นจึงต้องไปอ่านข้อมูลนี้จากตาราง product มาไว้ก่อน
$sql = "SELECT productName, productPrice, inventory, productPV FROM product
WHERE productID= $iproductID";
$result = mysql_query($sql);
$productName = mysql_result($result, 0, 1);
$productPrice = mysql_result($result, 0, 1);
$inventory = mysql_result($result, 0, 1);
$productPV = mysql_result($result, 0, 1);
//เพิ่มข้อมูลลงในตาราง cart โดยใช้คำสั่ง REPLACE
//เพื่อว่าถ้ามีการหยิบซ้ำจะได้ไม่ถูกเพิ่มลงไปอีก
$sql = "REPLACE INTO cart VALUES
('$sid', $productID, '$productName', $productPrice,inventory,productPV, 1, NOW());";
mysql_query($sql);
//ส่งผลลัพธ์กลับไปแบบจาวาสคริปต์ โดยหลังแจ้งด้วย alert()
//จะเรียกฟังก์ชัน readCart() เพื่อให้อ่านรายการในรถเข็นมาแสดงใหม่
//ซึ่งฟังก์ชันนี้ ได้เขียนรอไว้แล้วที่เพจ index.php และ product_detail.php
header("content-type: text/javascript; charset=tis-620");
echo "alert('เพิ่มสินค้าลงในรถเข็นแล้ว');
readCart();";
?>
Tag : PHP
Date :
2011-10-10 21:26:44
By :
outlaww
View :
1157
Reply :
6
read_cart.php
ผิดที่
$sql = "SELECT * FROM product WHERE sess_id = '$sid';";
มันควรจะเป็น
$sql = "SELECT * FROM product WHERE sess_id = '{$sid}' ";
Date :
2011-10-10 21:38:01
By :
oxygenyoyo
งั้นคุณลอง echo $sql ออกมาดูว่ามันเป็นคำสั่ง query ที่ถูกต้องจริงๆหรือเปล่าครับ
Date :
2011-10-10 22:03:54
By :
oxygenyoyo
คุณกำลังทำอะไรล่ะครับ ?
มี error คุณกำลังจะแก้ไขปัญหานั้นถูกต้องไหมครับ ?
แล้ว ระบบได้แจ้งเรื่อง error ให้คุณทราบแล้ว บรรทัดที่เท่าไร
สิ่งที่คุณต้องทำตอนนี้คืออะไรครับ ... ? หาว่าบรรทัดที่ผิด ผิดเพราะอะไร
ซึ่งบรรทัดนั้นคือ if(mysql_num_rows($result) == 0 ) {
ซึ่งมันต้องผิดมาจากตัวแปร $result อีกที แล้ว $result มันรับค่ามาจาก $sql ถูกต้องไหมครับ ?
เพราะฉะนั้นคุณควรจะไปแก้ไขที่ไหนครับ ?
Date :
2011-10-10 22:29:42
By :
oxygenyoyo
Load balance : Server 03