ช่วยดูหน่อยคับ เด่วบันทึกได้ เด่วไม่ได้ เป็นเพราะอะไร ต้องแก้ตรงไน๋ โดยเฉพาะเวลากรองไม่ครบ แต่ในฐานข้อมูลก้ออนุญาตให้เป็น null ได้
<? $link= mysql_pconnect ("localhost","root", "root");
mysql_select_db("myhotel");
$sql= "insert into pbru_quests set
firstname='$firstname',
lastname ='$lastname ',
chk_in_date ='$chk_in_date ',
chk_out_date ='$chk_out_date ',
no_adults ='$no_adults ',
no_child ='$no_child ',
no_room ='$no_room ',
title ='$title ',
guest_details ='$guest_details ',
company ='$company ',
address ='$address ',
country ='$country ',
nationlity ='$nationlity ',
telephone ='$telephone ',
mobile ='$mobile ',
email ='$email ',
verify_email ='$verify_email ',
arr_airport_name ='$arr_airport_name ',
arr_flight_no ='$arr_flight_no ',
arr_flight_date ='$arr_flight_date ',
arr_time_h ='$arr_time_h ',
arr_time_s ='$arr_time_s ',
dep_airport_name ='$dep_airport_name ',
dep_flight_no ='$dep_flight_no ',
dep_flight_date ='$dep_flight_date ',
dep_time_h ='$dep_time_h ',
dep_time_s ='$dep_time_s ',
option_sp ='$option_sp ',
remarks ='$remarks ',
chkagreement ='$chkagreement ',
sequence ='$sequence ',
typeroom ='$typeroom ',
typebed ='$typebed '
dateinsert='$dateinsert' ";
mysql_query($sql)or die("error");
?>
มันขึ้น errorTag : PHP, MySQL
Date :
2010-11-25 14:25:00
By :
cmdping
View :
797
Reply :
19
typebed ='$typebed ' <------- ตัวครับ มีอะไรหายไป
Date :
2010-11-25 14:33:33
By :
kanchen
ขอบคุณมาก คุณ KanJi บันทึกได้แล้ว แต่มันฟ้อง
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Myroom\Successandprint.php on line 60
เป็นเพราะผมเช็คเงื่อนไขนี้หรือป่าวคับ
$sqlchk=" select * from pbru_quests where chk_in_date between '$chk_in_date' and '$chk_out_date' OR chk_out_date between '$chk_in_date' and '$chk_out_date'";
$res1= mysql_query($sqlchk,$myhotel);
$row1= mysql_num_rows($res1);
//echo "$row1";
if ($row1==1) {
echo "<script> alert('วันนี้มีการจองแล้ว กรุณาเลือกวันจองใหม่')
window.location='booking.php' </script>";
}
รบกวนหน่อยคับ
Date :
2010-11-25 14:56:25
By :
cmdping
ลบ $myhotel ใน mysql_query ออกครับ ลองดุ
Date :
2010-11-25 15:01:23
By :
kanchen
ยังไม่หายคับ บันทึกได้ แต่ก้อฟ้องเหมือนเดิม ช่วยตอบหน่อยคับ
Date :
2010-11-25 15:32:20
By :
cmdping
เปลียน mysql_num_rows ให้เป็น mysql_fetch_array และ if($row1>0)
Date :
2010-11-25 15:48:10
By :
kanchen
+1 ให้เลยคับ ได้แล้ว แต่จะเป็นการดีมากเลยคับ ถ้าอธิบายสักหน่อย เผื่อมีคนอยากรู้หรือว่าเป็นเหมือนผม ขอบคุณนะคับ คุณ KenJi
Date :
2010-11-25 15:58:53
By :
cmdping
ก็แค่เอาข้อมุลที่ได้ทำการ select มาจับใส่ mysql_fetch_array ครับ โดยข้อมูลที่อยู่ใน mysql_fetch_array จะถูกเก็บเป็น array ครับ
และถ้ามีการตรวจสอบ ว่าข้อมูลที่อยู่ใน mysql_fetch_array > 0 ก็คือมีข้อมูลอยู่แล้วก็ให้แจ้งเตือน จริงๆแล้วก็เหมือนกับการเช็ค login นะครับ
Date :
2010-11-25 16:26:54
By :
kanchen
หลังจากเมื่อวานที่คุณ KinJi ช่วยแก้ให้มันก้อใช้งานได้ แต่อยู่ๆมันก้อเป็นเหมือนเดิมเลยคับ เด่วบันทึกได้ เด่วไม่ได้ เป็นเพราะอะไรคับ ขึ้น error ตลอดเลย ผู้รู้ช่วยตอบหน่อยนะคับ
Date :
2010-11-26 10:02:20
By :
cmdping
sql statement ค่ะ ลองศึกษาดูว่ารูปแบบมันเป็นยังไง ที่เราเขียนถูกหรือยัง เช็คข้อมูลที่บันทึกด้วยว่า มาถูกต้องครบถ้วนไหม
ลอง echo sql ของเราออกมาแล้วเอาไปรันในฐานข้อมูลโดยตรงดูก็ได้
Date :
2010-11-26 10:07:44
By :
ultrasiam
insert into intable set ... ปกติใช้ update set ส่งสัยเป็น mysql เวอร์ชั่นใหม่ หรือเปล่าครับ ผมไม่รู้จริง ๆ หรือว่าทำได้อยู่แล้ว ไม่เคยลอง
Date :
2010-11-26 10:09:35
By :
joy
ไม่รู้เหมือนกันค่ะ ปกติใช้แต่
INSERT INTO table
(column-1, column-2, ... column-n)
VALUES
(value-1, value-2, ... value-n);
ถ้าท่านเจ้าของกระทู้ใช้ได้ ก็คงได้แหละค่ะ ^ ^
Date :
2010-11-26 10:24:16
By :
ultrasiam
เอา code มาให้ดูหน่อยครับ
Date :
2010-11-26 10:29:33
By :
kanchen
ผมใช้ Appserv v.2.5.10
phpMyAdmin - 2.10.3
code หน้าบันทึกคับ
<?php require_once('Connections/myhotel.php');
$sqlchk=" select * from pbru_quests where chk_in_date between '$chk_in_date' and '$chk_out_date' OR chk_out_date between '$chk_in_date' and '$chk_out_date'";
// $sqlchk=" select * from pbru_quests where chk_in_date between '2010-10-19' and '2010-10-19' OR chk_out_date between '2010-10-10' and '2010-12-10'";
$res1= mysql_query($sqlchk);
$dateinsert=date("Y-m-d H:i:s");
//$row1= mysql_num_rows($res1);// เปลี่ยนเป็น mysql_fetch_array
$row1=mysql_fetch_array($res1);
//echo "$row1";
if ($row1>1) {
echo "<script> alert('วันนี้มีการจองแล้ว กรุณาเลือกวันจองใหม่')
window.location='booking.php' </script>";
}
$link= mysql_pconnect ("localhost","root", "root");
mysql_select_db("myhotel");
$sql= "insert into pbru_quests set
firstname='$firstname',
lastname ='$lastname ',
chk_in_date ='$chk_in_date ',
chk_out_date ='$chk_out_date ',
no_adults ='$no_adults ',
no_child ='$no_child ',
no_room ='$no_room ',
title ='$title ',
guest_details ='$guest_details ',
company ='$company ',
address ='$address ',
country ='$country ',
nationlity ='$nationlity ',
telephone ='$telephone ',
mobile ='$mobile ',
email ='$email ',
verify_email ='$verify_email ',
arr_airport_name ='$arr_airport_name ',
arr_flight_no ='$arr_flight_no ',
arr_flight_date ='$arr_flight_date ',
arr_time_h ='$arr_time_h ',
arr_time_s ='$arr_time_s ',
dep_airport_name ='$dep_airport_name ',
dep_flight_no ='$dep_flight_no ',
dep_flight_date ='$dep_flight_date ',
dep_time_h ='$dep_time_h ',
dep_time_s ='$dep_time_s ',
option_sp ='$option_sp ',
remarks ='$remarks ',
chkagreement ='$chkagreement ',
sequence ='$sequence ',
typeroom ='$typeroom ',
typebed ='$typebed ',
dateinsert ='$dateinsert ' ";
mysql_query($sql)or die("error");
ช่วยดูหน่อยคับ ขอบคุณมาก
Date :
2010-11-26 11:05:44
By :
cmdping
ลองใช้ mysql_query($sql)or die(mysql_error()); ตรวจสอบ error ของ sql ดูค่ะ
Date :
2010-11-26 11:10:35
By :
ultrasiam
if ($row1>0)
Date :
2010-11-26 11:50:00
By :
kanchen
ขอบคุณทุกคนมากนะคับที่ช่วยตอบ แต่ถ้าไม่ได้ยังไงผมคงต้องเขียนแบบที่คุณ ultrasiam บอก
Date :
2010-11-26 13:06:03
By :
cmdping
ก็ลองดูครับ แต่ที่ผมเขียนมันก็ไม่เคยมีปัญหาน่ะครับ พอดีเขียนผมชอบเขียนแบบใช้ set มากกว่าเพราะมันดูง่ายดี แต่ว่าใช้ได้เฉพาะ mysql นะครับ แต่ถ้ายังไงก็ลองดูครับ ส่งใสอะไรก็ลองทำเลย เดียวก็เข้าใจเองครับ
Date :
2010-11-26 13:21:07
By :
kanchen
ขอบคุณมากคับ
Date :
2010-11-26 17:20:38
By :
cmdping
ผมแนะนำอีกวิธีนะครับถ้าหากตัวประที่ท่านส่งไปอัพเดทที่ server ไม่สามารถเป็น null หรือค่าว่างได้ให้ท่านใช้ javascript ตรวจสอบค่าฝั่ง client ก่อนทำการ submit ส่งค่าไปยัง server ครับ ตัวอย่างครับนำไปประยุกต์ดูนะครับ
<script language="javascript" type="text/javascript">
<!--
function check_controls(){
if (document.getElementById('customer_id').value == ''){
alert('Please input customer id\nกรุณาตรวจสอบรหัสลูกค้าที่กรอก!');
document.getElementById('customer_id').focus();
return false;
}
if (document.getElementById('customer_name').value == ''){
alert('Please input customer name\nกรุณาตรวจสอบข้อมูลที่ใส่อีกครั้ง!');
document.getElementById('customer_name').focus();
return false;
}
// ตรงนี้ถามไปเรื่อยๆจนครบทุก control
//....
//....
if(confirm('Are you sure to update?')){
//ถาม
document.myform.submit();
}
}
-->
</script>
<form action="myfile.php" method="post" name="myform" id="myform">
<input type="text" name="customer_id" id="customer_id" value="">
<input type="text" name="customer_name" id="customer_name" value="">
<input type="button" name="btnUpdate" value="Update" onClick="javascript:check_controls();">
<input type="reset" name="btnReset" value="Reset">
</form>
Date :
2010-11-27 17:14:26
By :
wad
Load balance : Server 01