สอบถามเรื่องการ Update จากการ Browse file ครับผม อยากรบกวนท่านผู้รู้ทั้งหลายหน่อยนะครับ
สอบถามครับ คือ update แล้วข้อมูลไม่เข้า 1 field field อื่นเข้าปกติ
ในที่นี้ผมได้ทำการ browse file เพื่อเอาข้อมูลบางส่วนไป อัพเดท ในบางฟิลดิ์ครับ
Code
$objCSV = fopen("$fileCSV", "r");
//while (($objArr = fgetcsv($objCSV, 1000 , ",")) !== FALSE) {
$line = file("$fileCSV");
$index = $_GET['index'];
$index = (strlen($index) ? $index+1 : 0);
$xxx = explode(",",$line[$index]);
$a = $xxx[1];
echo $a."<br>";
$line2 = file("$fileCSV");
$index2 = $_GET['index2'];
$index2 = (strlen($index2) ? $index2+1 : 2);
$xxx2 = explode(",",$line2[$index2]);
$b = $xxx2[3];
echo $b."<br>";
$line3 = file("$fileCSV");
$index3 = $_GET['index3'];
$index3 = (strlen($index3) ? $index3+1 : 3);
$xxx3 = explode(",",$line3[$index3]);
$c = $xxx3[3];
echo $c."<br>";
$line4 = file("$fileCSV");
$index4 = $_GET['index4'];
$index4 = (strlen($index4) ? $index4+1 : 10);
$xxx4 = explode(",",$line4[$index4]);
$d = $xxx4[2];
echo $d."<br>";
$line5 = file("$fileCSV");
$index5 = $_GET['index5'];
$index5 = (strlen($index5) ? $index5+1 : 10);
$xxx5 = explode(",",$line5[$index5]);
$e = $xxx5[4];
echo $e."<br>";
$line6 = file("$fileCSV");
$index6 = $_GET['index6'];
$index6 = (strlen($index6) ? $index6+1 : 10);
$xxx6 = explode(",",$line6[$index6]);
$f = $xxx6[5];
echo $f."<br>";
$sql2 = "UPDATE works SET size=$c,ts=$d,yp=$e,el=$f WHERE no = '$xxx[1]'";
$rs2=mysql_query($sql2);
ตัวอย่างค่าที่ผมกด browse ไปนะครับ ผมลอง echo มันออกมา
$xxx[1] = 38625
$b = 11018608
$c = 1/2'' x 21'
$d = 34.16
$e = 32.09
$f = 46.69
แล้วผม update ตามโค้ดที่ใส่ไป มันอัพเดทได้แค่ ตัวแปร $d,$e,$f แต่ $c มันไม่ยอมส่งค่าไปอัพเดทในดาตาเบสครับ (ถ้าใส่ตัวแปร$c ไปในโค้ดอัพเดท จะไม่อัพเดทเลย ถ้าใส่แค่ $d,$e,$fอัพเดทได้ ลองใส่ update แค่ $c ก็ไม่ออก ผมคิดว่าเป็นที่ตัวแปร $c แล้วละ ลองกำหนดให้ update work set size=1/2'' x 21' มันได้นะครับ แต่พออัพเดทผ่านตัวแปร $c กลับไม่ได้ซะงั้น - -) ผมควรทำยังไงดี แนะนำด้วยนะคร้าบ
ขอบคุณครับTag : PHP, MySQL
Date :
2012-07-19 16:14:21
By :
มือยังไม่เก่า
View :
1134
Reply :
6
ใส่ 'xxx' ด้วยครับ
Code (PHP)
$sql2 = "UPDATE works SET size='$c',ts='$d',yp='$e',el='$f' WHERE no = '$xxx[1]'";
$rs2=mysql_query($sql2);
Date :
2012-07-20 06:12:28
By :
mr.win
Code (PHP)
mysql_query($sql2) or die(mysql_error());
ลองดู Error หน่อยครับ
Date :
2012-07-21 20:45:46
By :
mr.win
error ครับ
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 '34.16',yp='32.09',el='46.69' WHERE no = '38625'' at line 1
แต่ถ้าใส่ แค่ '$c มันจะอัพเดทได้ แต่ค่าที่บันทึกเป็น 1/2' x 21 ซึ่งไม่เหมือนข้อมูลต้นฉบับ คือ 1/2'' x 21' อ่อ ตรง 1/2'' เป็น single quote 2ตัวน่ะครับ ' ' ' แบบนี้ ไม่ใช่ duble quote "
แต่เหมือนมันจะแบ่งเป็น array เลยครับ ผมลองใส่ '$c[0]' ผลออกมามันได้ 1 '$c[1]' ค่าที่ได้คือ / ไปเรื่อยๆ แต่ค่า ' ' ไม่ยอมออกครับ
ขอรบกวนหน่อยนะครับ จนปัญญาแล้ววว ขอบคุณครับ
Date :
2012-08-09 14:47:56
By :
มือยังไม่เก่า
Syntax ของ MySQL น่าจะผิดครับ ลอง echo $sql2 มาดูหน่อยครับ
Date :
2012-08-10 06:39:00
By :
mr.win
Load balance : Server 02