请帮助我:
我正在为管理员创建一个调查工具。询问管理员问卷中的问题数量。并在此基础上,在调查详细信息表中创建行。在问题表中,在问题表中为相同的行创建了相应的行数。
现在管理员可以输入问题和答案。为此,我需要在问题表中插入行,并使用循环从FORM收集的信息中更新它。但插入的行不会同时更新。帮帮我这个或者还有其他办法吗?
这是我的代码:请忽略编程风格,因为这是新手的脚本:
$sid = intval ($_GET['ids']);
$noq = intval ($_GET['qn']);
for($noq !=0;$noq >=1;$noq--){
$q = "insert into sur_ques (sur_id) values ('$sid')";
$ex = mysql_query($q);
$rs = mysql_affected_rows();
if($rs ==1){ echo" Questions Rows Created Corresponding to Survey Subject";}
?>
<form name="form1" method="post" action="<?php echo($PHP_SELF); ?>">
<table width="500" border="0" cellspacing="1" cellpadding="0">
<tr><br><b>Ques No-<?php echo"$noq";?></b></tr><br>
<tr><textarea name = "q" rows ="10" cols = "70" wrap = "hard" ></textarea></tr><br>
<tr><td><b>Ans 1:</b></td><td><input type="text" name="a1" size="37" /></td></tr>
<tr><td><b>Ans 2:</b></td><td><input type="text" name="a2" size="37" /></td></tr>
<tr><td><b>Ans 3:</b></td><td><input type="text" name="a3" size="37" /></td></tr>
<tr><td><b>Ans 4:</b></td><td><input type="text" name="a4" size="37" /></td></tr>
</table>
<input type = "submit" name="qa" Value = "Add Q&A" />
<input type ="reset" Value="Reset" />
</form>
<?
if ($_POST['qa']){
$id = mysql_insert_id();
$result = mysql_query("update ques set q_txt = '$q', ans1 = '$a1' ans2 = '$a2' ans4 = '$a4' ans4 = '$a4' where q_id = '$id'");
if($r = mysql_num_rows($result)){
echo" Question and answers updated";
}
} else {
break;
}
}
?>
答案 0 :(得分:0)
我没有得到你......可能你可以提供更多信息,比如表结构,这样我就能理解它。
但有一点可以肯定你不能同时更新和插入行...你必须在数据库中插入行才能更新行。
答案 1 :(得分:0)
我认为你要找的是mysql_insert_id。
session_start();
$q = "INSERT INTO table (id,key1,key2) VALUES (null,'value1','value2')";
$r = mysql_query($q);
$_SESSION['rowid'] = mysql_insert_id();
然后后续查询会:
$sq = "UPDATE table SET key='value',secondkey='secondvalue', WHERE id=$_SESSION['rowid'] ";
$sr = mysql_query($sq);
如上所述,当您可以一次性插入/更新所需数量的列时,我认为不需要循环。像这样做你永远不需要同时插入和更新(这是不可能的),因为你只需用任何可用的信息开始记录,或者即使没有可用的信息,你创建一个空行,存储id,然后在新的信息可用时更新行。
答案 2 :(得分:0)
“在问题表中,在问题表中为相同的行创建了相应的行数。” - 你的意思是问题和答案吗?
你有一个表单,你有两种类型的输入(问题[]和答案[]),然后在循环中你只需插入一个问题和一个相应的答案文本(基于输入的键)并连接它们(答案应该有问题ID或反之亦然,取决于你先插入什么以及它们之间的多重连接类型..我猜问题可以有多个答案)