ช่วยดูโค๊ด Insert update บันทึกข้อมูลลง mysql หน่อยครับ
ช่วยดูโค๊ดให้หน่อยครับ รันโปรแกรมแล้วมันได้เป็นหน้าเปล่าๆ แต่ไม่มีข้อมูลใน mysql
จุดประสงค์คือเช็คว่ามีข้อมูลอยู่ในฐานข้อมูลหรือเปล่าถ้าไม่มีก็
เพิ่มข้อมูลเข้าไปใหม่ ถ้ามีก็ให้แก้ไขครับ ไม่รู้ผมเขียนโค๊ดให้มันยุ่งไปหรือเปล่า
Code
<body>
<?
function sqlqr($sqlcmd,$fg)
{
if ($fg=1)
{
$objQuery = mysql_query($sqlcmd);
$objResult = mysql_fetch_array($objQuery);
return $objResult;
exit(0);
}
else
{
$objQuery = mysql_query($sqlcmd);
exit(0);
}
}
$sesid = $_SESSION["login"];
mysql_connect("localhost","root","");
mysql_select_db("sale_program");
$str1 = "SELECT * FROM shop_detail WHERE login = '".mysql_real_escape_string($sesid)."'";
$str2 = "INSERT INTO shop_detail(login,shop_name,shop_detail,shop_type,shop_theme) VALUES ('".mysql_real_escape_string($sesid)."','";
$str3 = "UPDATE shop_detail SET shop_name = '";
if(trim($_POST["shop_name"]) == "")
{
$str2.="-','";
$str3.="-',shop_detail ='";
exit(0);
}
else
{
$str2.=$_POST["shop_name"]."','";
$str3.=$_POST["shop_name"]."',shop_detail ='";
exit(0);
}
if(trim($_POST["shop_detail"]) == "")
{
$str2.="-','";
$str3.="-',shop_type ='";
exit(0);
}
else
{
$str2.=$_POST["shop_detail"]."','";
$str3.=$_POST["shop_detail"]."',shop_type ='";
exit(0);
}
if(trim($_POST["shop_type"]) == "")
{
$str2.="-','";
$str3.="-',shop_theme ='";
exit(0);
}
else
{
$str2.=$_POST["shop_type"]."','";
$str3.=$_POST["shop_type"]."',shop_theme ='";
exit(0);
}
if(trim($_POST["shop_theme"]) == "")
{
$str2.="-','";
$str3.="-'";
exit(0);
}
else
{
$str2.=$_POST["shop_theme"]."','";
$str3.=$_POST["shop_theme"]."'";
exit(0);
}
$str3.=" WHERE login = '".mysql_real_escape_string($sesid)."'";
if (!sqlqr($str1,1))
{
sqlqr($str2,2);
exit(0);
}
else
{
sqlqr($str3,2);
exit(0);
}
echo "Create shop complete !";
echo "<br/>";
mysql_close();
?>
Tag : PHP
Date :
2013-11-19 15:23:44
By :
yutthanarak
View :
898
Reply :
9
ถ้าอยากเห็น error ต้องสั่งให้มันแสดงออกมาครับ
$objQuery = mysql_query($sqlcmd);
เป็น
$objQuery = mysql_query($sqlcmd) or die(mysql_error() . " => " . $sqlcmd);
Date :
2013-11-19 16:26:18
By :
{Cyberman}
ผมว่าดัก if else เยอะไปหน่อยนะครับ กว่าจะได้ insert ต้องเช็คตั้งหลายเงื่อนไข
Date :
2013-11-19 16:27:06
By :
BabyDragon
ขอแบบทื่อ ๆ ก็ลอง insert ทีละเงื่อนไขครับ
ลองใช้ข้อมูลที่เข้า เงื่อนไข 1
หากผ่าน ก็ไปใช้ 1 และ 2 คู่กัน
พอ 1 และ 2 ผ่าน ก็เพิ่ม 3 เข้าไป.....
จะได้รีเช็คด้วยว่า if else ของเราวงเล็บ { } วางถูกอย่างที่เราคิดไหม....
Date :
2013-11-19 17:00:34
By :
apisitp
เอาใหม่ๆ เมื่อกี่ดูไม่หมด ขออภัย
เอาง่าย ถ้าผมเป็นคุณ ผมจะ...
Code (PHP)
echo '$str1 = '.$str1."<br />";
echo '$str2 = '.$str2."<br />";
echo '$str3 = '.$str3."<br />";
แล้วดูว่าโครงสร้างผิดตรงไหน(ดูคร่าวๆแล้ว น่าจะมีปัญหาเรื่องช่องว่างระหว่างคำหรือโครงสร้าง น่าจะติดกันเป็นรถไฟเลย )
ประวัติการแก้ไข 2013-11-19 17:03:14 2013-11-19 17:09:18
Date :
2013-11-19 17:01:48
By :
arm8957
ผมใส่
echo '$str1 = '.$str1."<br />";
echo '$str2 = '.$str2."<br />";
echo '$str3 = '.$str3."<br />";
ผมใส่ไปมันก็ยังเป็นหน้าเปล่าครับ
Code
<body>
<?
function sqlqr($sqlcmd,$fg)
{
if ($fg=1)
{
$objQuery = mysql_query($sqlcmd)or die(mysql_error() . " => " . $sqlcmd);
$objResult = mysql_fetch_array($objQuery);
return $objResult;
exit(0);
}
else
{
$objQuery = mysql_query($sqlcmd)or die(mysql_error() . " => " . $sqlcmd);
exit(0);
}
}
$sesid = $_SESSION["login"];
mysql_connect("localhost","root","");
mysql_select_db("sale_program");
$str1 = "SELECT * FROM shop_detail WHERE login = '".mysql_real_escape_string($sesid)."'";
$str2 = "INSERT INTO shop_detail(login,shop_name,shop_detail,shop_type,shop_theme) VALUES ('".mysql_real_escape_string($sesid)."','";
$str3 = "UPDATE shop_detail SET shop_name = '";
if(trim($_POST["shop_name"]) == "")
{
$str2.="-','";
$str3.="-',shop_detail ='";
exit(0);
}
else
{
$str2.=$_POST["shop_name"]."','";
$str3.=$_POST["shop_name"]."',shop_detail ='";
exit(0);
}
if(trim($_POST["shop_detail"]) == "")
{
$str2.="-','";
$str3.="-',shop_type ='";
exit(0);
}
else
{
$str2.=$_POST["shop_detail"]."','";
$str3.=$_POST["shop_detail"]."',shop_type ='";
exit(0);
}
if(trim($_POST["shop_type"]) == "")
{
$str2.="-','";
$str3.="-',shop_theme ='";
exit(0);
}
else
{
$str2.=$_POST["shop_type"]."','";
$str3.=$_POST["shop_type"]."',shop_theme ='";
exit(0);
}
if(trim($_POST["shop_theme"]) == "")
{
$str2.="-','";
$str3.="-'";
exit(0);
}
else
{
$str2.=$_POST["shop_theme"]."','";
$str3.=$_POST["shop_theme"]."'";
exit(0);
}
$str3.=" WHERE login = '".mysql_real_escape_string($sesid)."'";
echo '$str1 = '.$str1."<br />";
echo '$str2 = '.$str2."<br />";
echo '$str3 = '.$str3."<br />";
if (!sqlqr($str1,1))
{
sqlqr($str2,2);
exit(0);
}
else
{
sqlqr($str3,2);
exit(0);
}
echo "Create shop complete !";
echo "<br/>";
mysql_close();
?>
Date :
2013-11-19 17:26:38
By :
yutthanarak
ออกละครับ เอา exit(0); ใน if ออกหมดเลย
ปรากฏว่า insert ลืมปิดวงเล็บครับ
แล้ว exit(0); นี่มันจำเป็นต้องมีไว้ออกไหมครับ
Code
$str1 = SELECT * FROM shop_detail WHERE login = 'yutmynet'
$str2 = INSERT INTO shop_detail(login,shop_name,shop_detail,shop_type,shop_theme) VALUES ('yutmynet','test','test','test','test','
$str3 = UPDATE shop_detail SET shop_name = 'test',shop_detail ='test',shop_type ='test',shop_theme ='test' WHERE login = 'yutmynet'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1 => INSERT INTO shop_detail(login,shop_name,shop_detail,shop_type,shop_theme) VALUES ('yutmynet','test','test','test','test','
ประวัติการแก้ไข 2013-11-19 17:35:48
Date :
2013-11-19 17:32:17
By :
yutthanarak
สำเร็จแล้วครับทำงานได้ตรง สรุปว่าต้องเอา exit(0); ออกให้หมดโปรแกรมถึงทำงานได้ครับ
แต่ก็ยังมี warning
$str1 = SELECT * FROM shop_detail WHERE login = 'yutmynet'
$str2 = INSERT INTO shop_detail(login,shop_name,shop_detail,shop_type,shop_theme) VALUES ('yutmynet','test1','test1','test1','test1')
$str3 = UPDATE shop_detail SET shop_name = 'test1',shop_detail ='test1',shop_type ='test1',shop_theme ='test1' WHERE login = 'yutmynet'
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\AppServ\www\sale_program\confirm_make_shop.php on line 16
Create shop complete !
Code (PHP)
<body>
<?
function sqlqr($sqlcmd,$fg)
{
if ($fg=1)
{
$objQuery = mysql_query($sqlcmd)or die(mysql_error() . " => " . $sqlcmd);
$objResult = mysql_fetch_array($objQuery);
return $objResult;
}
else
{
$objQuery = mysql_query($sqlcmd)or die(mysql_error() . " => " . $sqlcmd);
}
}
$sesid = $_SESSION["login"];
mysql_connect("localhost","root","");
mysql_select_db("sale_program");
$str1 = "SELECT * FROM shop_detail WHERE login = '".mysql_real_escape_string($sesid)."'";
$str2 = "INSERT INTO shop_detail(login,shop_name,shop_detail,shop_type,shop_theme) VALUES ('".mysql_real_escape_string($sesid)."','";
$str3 = "UPDATE shop_detail SET shop_name = '";
if(trim($_POST["shop_name"]) == "")
{
$str2.="-','";
$str3.="-',shop_detail ='";
}
else
{
$str2.=$_POST["shop_name"]."','";
$str3.=$_POST["shop_name"]."',shop_detail ='";
}
if(trim($_POST["shop_detail"]) == "")
{
$str2.="-','";
$str3.="-',shop_type ='";
}
else
{
$str2.=$_POST["shop_detail"]."','";
$str3.=$_POST["shop_detail"]."',shop_type ='";
}
if(trim($_POST["shop_type"]) == "")
{
$str2.="-','";
$str3.="-',shop_theme ='";
}
else
{
$str2.=$_POST["shop_type"]."','";
$str3.=$_POST["shop_type"]."',shop_theme ='";
}
if(trim($_POST["shop_theme"]) == "")
{
$str2.="-','";
$str3.="-'";
}
else
{
$str2.=$_POST["shop_theme"]."')";
$str3.=$_POST["shop_theme"]."'";
}
$str3.=" WHERE login = '".mysql_real_escape_string($sesid)."'";
echo '$str1 = '.$str1."<br />";
echo '$str2 = '.$str2."<br />";
echo '$str3 = '.$str3."<br />";
if (!sqlqr($str1,1))
{
sqlqr($str2,2);
}
else
{
sqlqr($str3,2);
}
echo "Create shop complete !";
echo "<br/>";
mysql_close();
?>
ประวัติการแก้ไข 2013-11-19 18:02:07
Date :
2013-11-19 17:52:24
By :
yutthanarak
ผมขอแนะนำว่า ให้คุณเขียน query แบบปกติก่อน เอาให้แน่น(หากคุณชำนาญแล้วขออภัยครับ) แล้วค่อยต่อยอมไปใช้ฟังก์ชั่นหรือคลาสต่อไป
การเขียนแบบพื้นๆ อย่ามองว่าไม่โปรไม่โก้ แต่เชื่อเถอะมันง่ายต่อการเข้าใจครับ
อีกอย่างนึงผมไล่โค้ดคุณ ผมงงมากกกก ไม่รุใครเป็นเหมือนผมป่าว อยากช่วยนะ แต่มึนครับ
Date :
2013-11-19 19:32:37
By :
arm8957
Load balance : Server 03