รบกวนช่วยเรื่องการส่งค่า POST php ในการสร้างแบบสอบถามหน่อยค่ะ ทำไม่ได้เลย T T
สองไฟล์นี้เป็นไฟล์การสร้างแบบสอบถาม ไฟล์ create_topic.php จะเป็นการ สร้างชื่อแบบสอบถามโดยกำหนดเป็นเทเบิ้ลด้วย ส่งค่าไปยังไฟล์ที่สอง ซึ่งจะเป็นการสร้างข้อย่อยเก็บลงในเทเบิ้ลตามชื่อที่ส่งมาจากไฟล์ create_topic.php แต่มันใส่ข้อมูลลงเทเบิ้ลไม่ได้เพราะค่าที่รับมาจากไฟล์แรก ไม่ขึ้น เลยอัพเดทไม่ได้ มันแจ้งเตือนอย่างนี้ค่ะ
Code
"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 'VALUES (0,เธ”เธซเธ,'',1)' at line 1"
รบกวนช่วยที T T
create_topic.php
Code (PHP)
<?php
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>create topic</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<script language="javascript" CHARSET="UTF-8">
function fncSubmit()
{
if(document.form1.topic_name.value == "")
{
alert('กรุณา กรอกหัวข้อแบบสอบถาม');
document.form1.topic_name.focus();
return false;
}
document.form1.submit();
if(document.form1.topic_addressDB.value == "")
{
alert('กรุณา กรอกชื่อฐานข้อมูลแบบสอบถาม');
document.form1.topic_addressDB.focus();
return false;
}
document.form1.submit();
}
</script>
<div id="center">
<form id="form1" name="form1" method="post" action="create_survey.php" onSubmit="JavaScript:return fncSubmit();">
<p id="topic_name">ชื่อแบบสอบถาม :</p>
<input name="topic_name" type="text" id="head" size="40" />
<br>
<br>
<input type="submit" name="submit" value="เริ่มสร้างแบบสอบถาม" />
</form>
</div>
</body>
</html>
create_survey.php
Code (PHP)
<?php
@mysql_connect("localhost", "root", "91205") or die(mysql_error());
mysql_select_db("survey_question");
$topic = $_POST["topic_name"];
$sql = "CREATE TABLE $topic(
q_id INT(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
question TEXT,
choice TEXT,
type INT(2));";
mysql_query($sql);
if($_POST["textbox"]){
$quest= $_POST['quest'];
$sql = "INSERT INTO $topic VALUES
(0,$quest,'',1);";
@mysql_query($sql) or die(mysql_error());
}
if($_POST["radio"]){
$quest= $_POST['quest'];
//แยกแต่ละบรรทัดให้เป็นบรรทัดละ 1 ตัวเลือก
$choices = explode("\n", $_POST['choice']);
//เพิ่มข้อมูลในตาราง choice โดยให้ตัวเลือกละ 1 แถว
//ดังนั้นต้องวนลูปเพื่อเพิ่มข้อมูลทีละแถวตามจำนวนตัวเลือกที่นับได้
for($i = 0; $i < count($choices); $i++) {
if(empty($choices[$i])) {
continue;
}
$cc_data.=$choices[$i].",";
}
$sql = "INSERT INTO $topic VALUES
(0,$quest,'$cc_data',2);";
@mysql_query($sql) or die(mysql_error());
}
if($_POST["checkbox"]){
$quest= $_POST['quest'];
//แยกแต่ละบรรทัดให้เป็นบรรทัดละ 1 ตัวเลือก
$choices = explode("\n", $_POST['choice']);
//เพิ่มข้อมูลในตาราง choice โดยให้ตัวเลือกละ 1 แถว
//ดังนั้นต้องวนลูปเพื่อเพิ่มข้อมูลทีละแถวตามจำนวนตัวเลือกที่นับได้
for($i = 0; $i < count($choices); $i++) {
if(empty($choices[$i])) {
continue;
}
$cc_data.=$choices[$i].",";
}
$sql = "INSERT INTO $topic VALUES
(0,$quest,'$cc_data',3);";
@mysql_query($sql) or die(mysql_error());
}
if($_POST["sequence"]){
$quest= $_POST['quest'];
$sql = "INSERT INTO $topic VALUES
(0,$quest,'',4);";
@mysql_query($sql) or die(mysql_error());
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>List Test</title>
<link href="list.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<?=$_POST["topic_name"]."<br>";?>
<a href="#onebox" ><input type="button" name="create" value="คำถามปลายเปิด"></a>
<a href="#twobox" ><input type="button" name="create" value="คำถามแบบเลือกได้ตัวเลือกเดียว"></a>
<a href="#threebox" ><input type="button" name="create" value="คำถามแบบเลือกได้หลายตัวเลือก"></a>
<a href="#fourbox" ><input type="button" name="create" value="คำถามแบบจัดอันดับ"></a>
<div id="box">
<div id="bigbox">
<div id="onebox">
<form id="form1" name="form1" method="post" action="create_survey.php">
<table border="0" cellspacing="3" cellpadding="0" align="center">
<tr>
<td>ข้อที่:</td>
<td>คำถามปลายเปิด</td>
</tr>
<tr>
<td>Ask:</td>
<td><input name="quest" type="text" id="quest" size="40" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<input name="topic_name"type="hidden" value="<?=$_POST["topic_name"];?>" />
<td><input type="submit" name="textbox" value="ส่งข้อมูล" /></td>
</tr>
</table>
</form>
</div>
<div id="twobox">
<form id="form2" name="form2" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table border="0" cellspacing="3" cellpadding="0" align="center">
<tr>
<td>ข้อที่:</td>
<td>คำถามแบบเลือกได้ตัวเลือกเดียว</td>
</tr>
<tr>
<td>Ask:</td>
<td><input name="quest" type="text" id="quest" size="40" /></td>
</tr>
<tr>
<td valign="top">ตัวเลือก:
<br />
(บรรทัดละ <br />
1 ตัวเลือก) </td>
<td><textarea name="choice" cols="37" rows="5" id="choice"></textarea></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<input name="topic_name"type="hidden" value="<?=$_POST["topic_name"];?>" />
<td><input name="radio" type="submit" value="ส่งข้อมูล" /></td>
</tr>
</table>
</form>
</div>
<div id="threebox">
<form id="form3" name="form3" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table border="0" cellspacing="3" cellpadding="0" align="center">
<tr>
<td>ข้อที่:</td>
<td>คำถามแบบเลือกได้หลายตัวเลือก</td>
</tr>
<tr>
<td>Ask:</td>
<td><input name="quest" type="text" id="quest" size="40" /></td>
</tr>
<tr>
<td valign="top">ตัวเลือก:
<br />
(บรรทัดละ <br />
1 ตัวเลือก) </td>
<td><textarea name="choice" cols="37" rows="5" id="choice"></textarea></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="checkbox" value="ส่งข้อมูล" /></td>
</tr>
</table>
</form>
</div>
<div id="fourbox">
<form id="form4" name="form4" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table border="0" cellspacing="3" cellpadding="0" align="center">
<tr>
<td>ข้อที่:</td>
<td>คำถามแบบจัดอันดับ</td>
</tr>
<tr>
<td>Ask:</td>
<td><input name="quest" type="text" id="quest" size="40" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="sequence" value="ส่งข้อมูล" /></td>
</tr>
</table>
</form>
</div>
</div>
</div>
</body>
</html>
Tag : PHP, MySQL, HTML/CSS
Date :
2012-10-25 00:45:32
By :
jummu
View :
1361
Reply :
3
เพิ่มเติมการ Insert ที่ดีควรระบุ Column ด้วยครับ และควรใส่ mysql_real_escape_string ด้วยครับ เช่น
Code (PHP)
$sql = "INSERT INTO $topic (col1,col2,col3,col4) VALUES
(0,'".mysql_real_escape_string($quest)."','".mysql_real_escape_string($cc_data)."',2);";
Date :
2012-10-25 06:01:16
By :
mr.win
ขอบคุณมากคะ คุณ mr.win
Date :
2012-10-26 12:52:18
By :
jummu
Load balance : Server 04