需要帮助在PHP脚本和Mysql中

时间:2011-07-08 12:58:41

标签: php mysql

请帮助我:

我正在为管理员创建一个调查工具。系统会询问管理员调查中的问题数量。在此基础上,在包含调查信息的表中创建一行。根据问题数量,在问题表中创建相同数量的行。这有4列用于答案,每个问题id在问题表中为相同的行创建相应的行数。

现在我正在尝试在由循环控制的UI上提供一个表单,以便管理员可以逐个输入问题和答案,每次都会更新问题表。

 survey table (sur_id [auto increment column],sur_subject,Sur_frm_dt,sur_to_dt,sur_is_active)
    question table ( sur_id, q_id [auto increment column] , q_txt,ans1,ans2,ans3,ans4)

该页面要求提供调查详情:调查主题,日期和问题 在调查表中生成一行。创建调查ID并将问题数传递到创建问题页面。 $sid是调查ID,$ noq是问题数量。

代码如下。请不要介意新手逻辑和脚本:

$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;
  }

}
?>

2 个答案:

答案 0 :(得分:1)

我能在代码中看到的一个直接问题是你在for循环中使用了一个比较运算符,它应该是赋值运算符$noq != 0应该是$noq = 0或其他一些值 - Trevor 0秒前

答案 1 :(得分:0)

我认为你正在混淆服务器端和客户端。您发布的代码会在有人打开页面时处理。

如果您希望在访问者按下提交按钮的那一刻更新单个问题,您将需要使用ajax将该特定表单的信息发送到要处理的服务器,同时表单保持不变/不重装。

就像现在一样,每次打开页面时,都会根据GET变量添加新行,但由于您从未发布任何行,因此我们看不到$PHP_SELF定义在任何地方,但我想你的意思是/想要$_SERVER['PHP_SELF']