 |
รบกวนพี่ๆ ช่วยดูโค้ดนี้ให้หน่อยครับ ว่ามีข้อผิดพลาดตรงส่วนไหนครับ |
|
 |
|
|
 |
 |
|
หาเท่าไหร่ ก็หาไม่เจอครับ
คือมันจะ error ตรงบรรทัด mysql_num_rows น่ะครับ
Code (PHP)
$new=explode("PO-",$order_id);
$new1=$new[0];
$new2=$new[1];
$des="SELECT * FROM order WHERE o_id='$new2' ";
$qdes=mysql_db_query($dbname,$des);
if(mysql_num_rows($qdes)<=0){
echo"action";
}
สิ่งที่ error นะครับ
Code
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\shop\delivery_status.php on line 46
ข้อมูลของตารางมีดังนี้ครับ
Code
-- โครงสร้างตาราง `order`
--
CREATE TABLE `order` (
`o_id` int(11) NOT NULL auto_increment,
`o_date` date NOT NULL,
`o_time` time NOT NULL,
`o_m_id` int(11) NOT NULL,
`o_name` varchar(100) collate utf8_unicode_ci NOT NULL,
`o_address` longtext collate utf8_unicode_ci NOT NULL,
`o_tel` varchar(15) collate utf8_unicode_ci NOT NULL,
`o_email` varchar(100) collate utf8_unicode_ci NOT NULL,
`o_total_price` float NOT NULL,
`o_discount` float NOT NULL,
`o_delivery_fee` float NOT NULL,
`o_net_price` float NOT NULL,
`o_pay_by` int(11) NOT NULL,
`o_sent_status` int(11) NOT NULL,
`o_post_id` varchar(25) collate utf8_unicode_ci NOT NULL,
`o_post_status` int(11) NOT NULL,
`o_sent_date` date NOT NULL,
PRIMARY KEY (`o_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;
รบกวนด้วยนะครับ ขอบคุณครับ
Tag : - - - -
|
|
 |
 |
 |
 |
Date :
2009-11-22 11:05:07 |
By :
yomaster |
View :
1041 |
Reply :
14 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
$new=explode("PO-",$order_id);
$new1=$new[0];
$new2=$new[1];
$des="SELECT * FROM order WHERE o_id='$new2' ";
$qdes=mysql_db_query($dbname,$des);
if(@mysql_num_rows($qdes)<=0) {
echo"action";
}
แก้โดย ใส่ @ แต่ผมคิดว่า เช็คจาก ตัว $qdes ดีกว่าครับ
if($qdes) {
echo "action";
}
เพราะว่า ถ้า $qdes เป็นค่าว่าง ยังไง num_rows ก็ต้องเท่ากับ 0
ซึ่งไม่จำเป็นที่ต้องไป เปรียบเทียบกับ num_rows
ลองเอาโค้ดนี้ไปเล่นดูครับ
$des="SELECT * FROM order WHERE o_id='$new2' ";
$result = mysql_query($des);
if(@mysql_num_rows($result) <=0) {
echo @mysql_num_rows($result);
}
else {
echo @mysql_num_rows($result);
}
อธิบายไม่ค่อยถูกแล้ว ไม่รู้ว่าจะเข้าใจหรือเปล่า หุ หุ
|
 |
 |
 |
 |
Date :
2009-11-22 11:39:00 |
By :
DownsTream |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณพี่ DownsTream มากครับ
ลองเปลี่ยนโดยใส่ @ เพิ่มเข้าไป
มันไม่ error แล้วครับ แต่มัน กลับบอกว่า ไม่พบ PO ซะงั้นครับ
ตามรูปด้านล่างอ่ะครับ

ปล. โค้ดที่ 2 ต้องเพิ่ม
mysql_select_db เข้าไปด้วยใช่ไหมครับ ?
|
 |
 |
 |
 |
Date :
2009-11-22 11:50:00 |
By :
yomaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช่ครับ ปกติผมจะเขียน เป็น ไฟล์ config แล้ว require เอาเวลาต้องการ connect
แล้วใช้ mysql_query ในการร้องขอข้อมูล
|
 |
 |
 |
 |
Date :
2009-11-22 12:04:26 |
By :
DownsTream |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้ทดลองนำโค้ดที่ 2 ไปทำดูครับ
ก็ไม่ได้เหมือนกันครับ แจ้งเหมือนรูป ที่ คห.ที่ 2 ครับ
งงจังครับ
ในฐานข้อมูลมีข้อมูล ID 1 อยู่นะครับ
ลองเอาเฉพาะโค้ด ไป รันใน sql ของ phpMyAdmin ก็ได้ปกติครับ
แต่ทำไมในนี้ไม่ได้ก็ไม่รู้ครับ
|
 |
 |
 |
 |
Date :
2009-11-22 12:10:23 |
By :
yomaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แล้วเงื่อนไข มันเป็นอย่างไร ผมคิดว่าส่วนตรงนี้ น่าจะเป็นที่เงื่อนไขในการแสดงผลนะครับ
|
 |
 |
 |
 |
Date :
2009-11-22 12:33:05 |
By :
DownsTream |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอนนี้ ยังไม่ได้เลยครับ T_T
รบกวนพี่ๆ อีกครั้งนะครับ
ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2009-11-23 10:56:39 |
By :
yomaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จาก warning คาดได้ว่า sql ผิดพลาด เป็นผมจะใช้วิธีนี้ครับ
Code (PHP)
$new=explode("PO-",$order_id);
$new1=$new[0];
$new2=$new[1];
$des="SELECT * FROM order WHERE o_id='$new2' ";
$qdes=mysql_db_query($dbname,$des);
if(mysql_num_rows($qdes)<=0){
echo"action";
}
จากโค้ดแรกของคุณ
บรรทัดนึ้เพิ่มอีกนิด เป็น
$qdes=mysql_db_query($dbname,$des) or exit($des);
แล้วเอา query ทางเอาท์พุตไปยิงที่ php myadmin
แล้วเอา error ที่แสดงทางด้านล่าง มาโพสคับ
จริงๆแล้วคิดว่า ฟีล order ตรงกับ keyword ใน mysql ครับ ผมไม่รู้ว่าแก้อย่างไร แต่ปรกติใช้วิธีหลีกเลี่ยง keyword เอาคับ
|
 |
 |
 |
 |
Date :
2009-11-23 11:07:58 |
By :
pjgunner |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ก็ลองเปลี่ยน ชื่อตาราง order ยังคับ ลองเป็น orderx ดู คิดว่าน่าจะผ่านละ เพราะอาจติดที่เป็น keyword คับ
|
 |
 |
 |
 |
Date :
2009-11-23 21:31:53 |
By :
pjgunner |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ้อ ผมลืมไปครับ
ขอบคุณมากครับ ตอนนี้ ได้แล้วครับ - -"
ขอบคุณมากๆ ครับ
ขอบคุณทุกๆ ท่านครับ
แต่ว่า...... T_T
มันมีปัญหา เพิ่มมาอีกอย่างเฉยเลยครับ
Code (PHP)
<?php
ob_start();
session_start();
require_once("sessionAdmin.php");
require_once("config.php");
require_once("function.php");
require_once("datetime.php");
$admin="SELECT a_name,a_username FROM admins WHERE a_username='$admin' ";
$qadmin=mysql_db_query($dbname,$admin);
$fadmin=mysql_fetch_array($qadmin);
$a_name=$fadmin[a_name];
$a_username=$fadmin[a_username];
?>
โค้ด ด้านบน ดูเหมือนจะไม่มีอะไรที่น่าจะผิดได้ (ปกติใช้แบบนี้นะครับ)
หรือผม WHERE ถึง session ผิดครับ?
คือผม ลงทะเบียน session ชื่อ admin ไว้น่ะครับผม
แต่ทีนี้ ตอน login เข้าไปตอนแรก ไป ดึงข้อมูลมาได้
แต่พอสั่ง refresh เท่านั้นแหล่ะครับ
แจ้ง error fetch_array ขึ้นมาเลยครับ
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\shop\admin_menu.php on line 10
รบกวนอีกครั้งนะครับ
/ \ / \
|
 |
 |
 |
 |
Date :
2009-11-23 21:54:15 |
By :
yomaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ้อ
ผมพอจะเข้าใจแล้วล่ะครับ
เดี๋ยวลองแก้ดูก่อนครับ
|
 |
 |
 |
 |
Date :
2009-11-23 21:56:32 |
By :
yomaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พอดี เหลือบไปเห็นผมตั้งตัวแปรซ้ำกันนี่เองครับ
สะเพร่า จริงๆ ครับ
ขอบคุณอีกครั้ง นะครับ
ขอบคุณทุกๆ ท่านครับ
|
 |
 |
 |
 |
Date :
2009-11-23 21:59:06 |
By :
yomaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|