ปรึกษา เรื่องการส่งค่า ไปเก็บใน Databases หน่อยครับ
พอดีผม ไปเจอการใช้คำสั่ง $_REQUEST(https://www.thaicreate.com/php/php-request.html) ผมเห็นน่าจะประยุคไปใช้ในตอนการส่งค่า ไป insert data ลง Databases ผมก็ลองพยายาม ลองทำ Demo แต่ไม่สำเร็จ อยากปรึกษา พี่ๆ หน่อยครับ Code ตามตัวอย่างด้านล่างเลยครับ
File แรก index.php
Code (PHP)
<?php
//start------------------กำหนดตัวแปลจาก Databases-----------------------
$value1 = 'id';
$value2 = 'name';
$value3 = 'surname';
$value4 = 'grade';
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<form name="form2" method="post" action="save.php">
<table width="500" border="0" cellspacing="5" cellpadding="5">
<tr>
<td colspan="2"><div align="center"><a name="link1">กรอกข้อมูลนักเรียน</a></div></td>
</tr>
<tr>
<td width="120"><div align="right">ชื่อ</div></td>
<td width="374"><input name="<?php echo $value2;?>" type="text" id="<?php echo $value2;?>" size="50" value=11></td>
</tr>
<tr>
<td width="120"><div align="right">สกุล</div></td>
<td width="374"><input name="<?php echo $value3;?>" type="text" id="<?php echo $value3;?>" size="50" value=22></td>
</tr>
<tr>
<td width="120"><div align="right">ห้อง</div></td>
<td width="374"><input name="<?php echo $value4;?>" type="text" id="<?php echo $value5;?>" size="50" value=33></td>
</tr>
<tr>
<td><div align="right"></div></td>
<td><input type="submit" name="Submit" value="เพิ่มสมาชิก"></td>
</tr>
</table>
</form>
<body>
</body>
</html>
File ที่ สองครับ save.php
.
Code (PHP)
?php
include("db_connect.php");
connect();
foreach ($_REQUEST as $key => $val) // All Key & Value
{
if ($key == 'Submit') {
break;
} else {
//$strstring2 .= $key." => ".trim($val).", ";
$strstring2 .= '"'.$key.'"'.' => '.'"'.trim($val).'", ';
}
}
echo $strstring2;
$data = array($strstring2);
/*
"name" => $_POST['name'],
"surname" => $_POST['surname'],
"grade" => $_POST['grade'],
);
*/
// insert ข้อมูลลงในตาราง province_tmp โดยฃื่อฟิลด์ และค่าตามตัวแปร array ชื่อ $data
insert("student", $data) // province_tmp คือชื่อตาราง
?>
ส่วน File db_connect โหลดจาก http://www.ninenik.com/content.php?arti_id=337 นะครับ
คำถามคือ
ค่าใน $strsting2 ที่แสดงออกมา "name" => "11", "surname" => "22", "grade" => "33",
แต่พอเอาไป เข้าใน Array แล้วลอง Run กับ Error แบบนี้
INSERT INTO student (0) VALUES ('"name" => "11", "surname" => "22", "grade" => "33", ')
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 '0)
VALUES ('"name" => "11", "surname" => "22", "grade" => "33", ')' at line
ช่วยผมดู Code ให้ผมหน่อยว่ามันผิดตรงไหน ลองมาตั้งแต่เมื่อวานแล้ว ก็ไม่เป็นผลสำเร็จเสียที
ขอบคุณพี่ๆ ทุกคนครับTag : PHP, MySQL
Date :
2012-07-29 17:57:15
By :
mandmod
View :
1124
Reply :
8
ถ้าเป็น array ต้องวน loop เอาค่าออกมา
Date :
2012-07-29 18:29:23
By :
Krungsri
ถ้าเป็น array ในหลายๆ มิติ ตอนวน loop จะมีปัญหามากไหมครับ
Date :
2012-07-29 18:35:05
By :
jumloon2005
ถ้าใช้ Loop เก่งก็ไม่มีปัญหาครับ
Date :
2012-07-29 18:38:14
By :
Krungsri
ลองดูครับ ไม่ได้ค่อยมาถามอีกครับ
Date :
2012-07-29 18:45:36
By :
mr.win
ครับ เดียวคืนนี้ ทดลอง ก่อนครับ ขอบคุณครับ
Date :
2012-07-29 20:13:36
By :
mandmod
Code (PHP)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<?
function Insert($fieldsAndValues,$tableName){
$sql = "INSERT INTO ".$tableName;
$f = "(";
$val = " VALUES(";
for($i < 0 ; $i < count($fieldsAndValues);$i++){
$f .= key($fieldsAndValues);
if($i != (count($fieldsAndValues)-1))
$f .= ",";
$val .= "'".$fieldsAndValues[key($fieldsAndValues)]."'";
if($i != (count($fieldsAndValues) - 1))
$val .= ",";
next($fieldsAndValues);
}
$f .= ")";
$val .= ")";
$sql .= $f.$val;
//@mysql_query($sql) ;
echo $sql;
}
$field[ID]=5;
$field[NAME]='Admin';
$field[LAST]='Admin';
$table="Admin";
Insert($field,$table);
?>
</body>
</html>
Date :
2012-07-30 09:35:48
By :
Krungsri
ทำได้แล้วครับ สะใจ หลังจาก งมมานาน เส้นผมบังภูเขาแท้ๆ ผมต้องกลับไปศึกษาเรื่อง Array ใหม่อีกรอบ Code ตามนี้เลยครับ แก้แค่บรรทัดเดียว ที่เหลือ ผมก็เอา demo ไปปรับใช้กับงานจริง
Code (PHP)
<?php
include("db_connect.php");
connect();
$strstring2=array();
foreach ($_REQUEST as $key => $val) // All Key & Value
{
if ($key == 'Submit') {
break;
} else {
$strstring2[$key]= trim($val);
}
}
insert("student", $strstring2); // student คือชื่อตาราง
?>
Date :
2012-07-30 13:23:26
By :
mandmod
Load balance : Server 03