|
|
|
ฃ่วยด้วยค่ะ แก้มานานแล้ว $num= mysql_num_rows($results) or die (mysql_error) |
|
|
|
|
|
|
|
ไม่ว่าจะแก้ยังไง ทำยังไงก็เป็นแบบนี้ ตอนนี้งานเร่งมาก แก้อันเดียวมา 2 อาาทิตย์แล้วเหลืออันนี้แค่อันเดียวค่ะ
อันนี้เป็นโค้ดค่ะ
Code (PHP)
<?php
$host="127.0.0.1";
$user="root";
$password="fern=23";
$dbname="db_register";
mysql_connect ($host,$user,$password) or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die ("ติดต่อฐานข้อมูลไม่ได้");
$sql ="insert into 'register'('code','name','class','user','password','email')
values ('$code','$name','$class','$user','$password','$email') ";
mysql_query("set NAMES tis620");
$sqlquery=mysql_db_query($dbname,$sql);
$checkadd="select * from 'register' where code='$code'";
$result = mysql_db_query($dbname, $checkadd);
$num= mysql_num_rows($results) or die (mysql_error);
if ($num==1)
{
print "<br>บันทึกข้อมูลผู้ใช้แล้ว";
} elseif ($num>=1)
{
print"<br> username ซ้ำกรุณาใช้ชื่ออื่น";
} else
{
print "มีข้อผิดพลาด!!!";
};
mysql_close ();
?>
รบกวนช่วยด้วยนะคะ เป็นมือใหม่ไม่เก่งเลยค่ะ
Tag : PHP, MySQL, CakePHP
|
|
|
|
|
|
Date :
2014-07-15 11:21:49 |
By :
misslethal |
View :
1054 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เขียนซะ code โบราณเลยครับ แบบนี้ก็ได้แล้ว
Code (PHP)
<?php
$host="127.0.0.1";
$user="root";
$password="fern=23";
$dbname="db_register";
mysql_connect ($host,$user,$password) or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_query("set NAMES tis620");
$sql ="insert into `register`(`code`,`name`,`class`,`user`,`password`,`email`)
values ('$code','$name','$class','$user','$password','$email') ";
$sqlquery=mysql_query($sql);
$checkadd="select * from `register` where `code`='$code'";
$result = mysql_query($checkadd) or die (mysql_error());
$num= mysql_num_rows($results);
if ($num==1){
echo "<br>บันทึกข้อมูลผู้ใช้แล้ว";
}elseif ($num>=1){
echo "<br> username ซ้ำกรุณาใช้ชื่ออื่น";
}else{
echo "มีข้อผิดพลาด!!!";
}
mysql_close();
?>
|
ประวัติการแก้ไข 2014-07-15 11:57:18 2014-07-15 11:58:42
|
|
|
|
Date :
2014-07-15 11:56:24 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาซิงเกิลโค้ด(') ออกครับ
Code (PHP)
$checkadd = " SELECT * FROM register WHERE code='$code' ";
แต่ถ้าจะเช็คแค่ว่าบันทึกลงฐานข้อมูลแล้วหรือยัง? เขียนแบบนี้ก็ได้ การทำงานของโปรแกรมน่าจะน้อยกว่าเยอะ
Code (PHP)
<?php
$host="127.0.0.1";
$user="root";
$password="fern=23";
$dbname="db_register";
mysql_connect ($host,$user,$password) or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die ("ติดต่อฐานข้อมูลไม่ได้");
$sql =" insert into register(code,name,class,user,password,email) values ('$code','$name','$class','$user','$password','$email') ";
mysql_query("SET NAMES TIS620");
$sqlquery = mysql_db_query($dbname,$sql);
$lastID = mysql_insert_id();
if ($sqlquery && !empty($lastID))
{
print "<br>บันทึกข้อมูลผู้ใช้แล้ว";
} else
{
print "มีข้อผิดพลาด!!!";
}
mysql_close ();
?>
ข้อแนะนำ
- ผมคิดว่าขั้นตอนการทำงานของโปรแกรมมันขัดกับความเป็นจริงนะครับ จากโค้ดของ จขกท
Code
<?php
$host="127.0.0.1";
$user="root";
$password="fern=23";
$dbname="db_register";
mysql_connect ($host,$user,$password) or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die ("ติดต่อฐานข้อมูลไม่ได้");
$sql ="insert into 'register'('code','name','class','user','password','email')
values ('$code','$name','$class','$user','$password','$email') ";
mysql_query("set NAMES tis620");
$sqlquery=mysql_db_query($dbname,$sql);
$checkadd="select * from 'register' where code='$code'";
$result = mysql_db_query($dbname, $checkadd);
$num= mysql_num_rows($results) or die (mysql_error);
if ($num==1) #ตรงนี้เช็คว่าบันทึกข้อมูลหรือยัง เมื่อมีการบันทึกข้อมูลมากกว่า 1 ครั้ง ในการเช็คแบบนี้ก็ผิดแล้ว มันจะไปเข้าเงื่อนไข user ซ้ำทันที
{
print "<br>บันทึกข้อมูลผู้ใช้แล้ว";
} elseif ($num>=1) #ตรงนี้เช็ค User ซ้ำ มันน่าจะทำการเช็คก่อนบันทึกข้อมูลลง DB อันนี้จึงผิดอีก
{
print"<br> username ซ้ำกรุณาใช้ชื่ออื่น";
} else
{
print "มีข้อผิดพลาด!!!";
};
mysql_close ();
?>
และขั้นตอนการทำงานมันน่าจะเป็นอย่างนี้มากกว่า(ความคิดส่วนตัว)
Code (PHP)
<?php
$host="127.0.0.1";
$user="root";
$password="fern=23";
$dbname="db_register";
mysql_connect ($host,$user,$password) or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die ("ติดต่อฐานข้อมูลไม่ได้");
$chk_user =" SELECT name FROM register WHERE name='$name' ";
$objQuery = mysql_db_query($dbname,$chk_user);
if(mysql_num_rows($objQuery)>0){
print "<br> username ซ้ำกรุณาใช้ชื่ออื่น";
} else {
$sql =" insert into register(code,name,class,user,password,email) values ('$code','$name','$class','$user','$password','$email') ";
mysql_query("SET NAMES TIS620");
$sqlquery = mysql_db_query($dbname,$sql);
$lastID = mysql_insert_id();
if ($sqlquery && !empty($lastID))
{
print "<br>บันทึกข้อมูลผู้ใช้แล้ว";
} else
{
print "มีข้อผิดพลาด!!!";
}
mysql_close ();
}
?>
|
ประวัติการแก้ไข 2014-07-15 12:02:21
|
|
|
|
Date :
2014-07-15 12:01:14 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันขึ้นเหมือนเดิมเลยค่ะ T^T
|
|
|
|
|
Date :
2014-07-15 13:54:02 |
By :
misslethal |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$checkadd="select * from `register` where `code`='$code'";
$code มาจากไหน
นี่ด้วย
'$code','$name','$class','$user','$password','$email'
|
ประวัติการแก้ไข 2014-07-15 14:14:02
|
|
|
|
Date :
2014-07-15 14:10:15 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จขกท ควรอ่านเออเร่อให้เป็นก่อนนะครับแล้วงานจะง่ายขึ้น ในเอเร่อด้านบนบอกว่า mysql_num_rows(): supply argument ....
ตรงนี้บอกว่า ค่าที่ได้รับมาใช้งานในฟังชั่นมีปะญหาครับ
C:\.........................***.php on line XX ตรงนี้บอกว่าเออเร่อที่ไฟล์ใหน และบรรทัดที่เท่าไรครับ ลองอ่านทำความเข้สใจดูนะครับ
ส่วนที่มีปัญหาผมจะเจอบ่อย ๆ ที่เกี่ยวกับ mysql_num_rows() คือคิวรี่ผิดครับ ให้ลองทำแลบคิวรี่จากโปรแกรม phpMyAdmin หรือ โปรแกรมจัดการฐานของมูล MySQL อื่น ๆ ให้คิวรี่ออกมาได้ตามต้องการก่อน
|
|
|
|
|
Date :
2014-07-15 15:20:32 |
By :
soghband |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูที่บรรทัดนี้หน่อยครับ
$result = mysql_query($checkadd) or die (mysql_error());
$num= mysql_num_rows($results);
ที่ตัวแปร $result (ไม่มี s)
ที่อีกบรรทัดเป็น $results (มี s)
มันหาตัวคิวรี่ไม่เจออะ่ครับ
|
|
|
|
|
Date :
2014-07-15 16:22:30 |
By :
peakna |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องแก้อยู่ 2 จุดครับ
จุดที่ 1 $checkadd="select * from 'register' where code='$code'";
ไม่ต้องมี ' ' ใส่เป็น $checkadd="select * from register where code='$code'";
จุดที่ 2 อย่างที่ข้างบนบอกครับ ตัดตัว s ออกจาก $results ในตัวหนังสือสีแดง
$result = mysql_db_query($dbname, $checkadd);
$num= mysql_num_rows($results) or die (mysql_error);
ประมาณนี้ครับ
|
|
|
|
|
Date :
2014-07-15 16:57:24 |
By :
jackkichan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2014-07-15 17:59:58 |
By :
jackkichan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|