在php

时间:2018-10-02 07:09:49

标签: php

我正在动态添加下拉列表中的值。在下拉列表中选择值并在文本框中输入文本后,单击按钮时必须在数据库中输入文本框值和下拉值。但是我的代码无法正常工作,即仅文本框值插入了数据库,但没有下拉所选的vlaue。请更正我的代码

  <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
    <label style="margin-left:260px;width:170px"><h3 >Topic:</h3><br></label><br>

    <select name="topic" style="margin-left: 282px;margin-top: -17px;">
     <option value=""> -----Select----- </option>
 <?php 
 $records = mysql_query("SELECT topic FROM topic ");
 while ($row = mysql_fetch_array($records)){
 echo "<option value=\"\">" . $row['topic'] . "</option>";
}
?>
</select>

        <label style="margin-left:260px;width:170px"><h3 >Enter Crime Key Point:</h3><br></label><br>
        <textarea name="details" id="details" rows="14" cols="60" style="margin-left:112px"><?php if(isset($_POST['details'])){echo htmlspecialchars($_POST['details']);}?>
        </textarea><br><br>
    <br><br><input type='submit' name='submit' value='Post' style='margin-left:305px;'>


</form>

  if(isset($_POST["submit"]) ){

//if ( isset( $_POST['topic'] )){
    //if(!empty($_POST['CarList'])){
    $story = $_POST['details']; 
                     $topic = $_POST['topic'];

            echo $topic;
        $sql = "SELECT `registered` FROM `user` WHERE `name`='{$_SESSION['name']}'";
    $result = mysql_query($sql);
    if (! $result)
     {
       throw new My_Db_Exception('Database error: ' . mysql_error());
     }
      else
      {
        $row = mysql_fetch_assoc($result); 
        $register=$row['registered'];
         if ($register==1)
          {

            $sql = "INSERT INTO `stories`(`stories`,`name`,`topic`,`date/time`) VALUES ('$story','{$_SESSION['name']}','$topic',now())";
            $result = mysql_query($sql);
            echo $result;
            if (! $result)
             {
               //echo "Story is not inserted. Please avoid special characters.";
               echo 'Retrieval of data from Database Failed - #'.mysql_errno().': '.mysql_error();
             }
              else
              {
               die("<script>location.href = 'usershome.php'</script>");
               echo "Story inserted successfully"; 
              }

          }
           else
           {
             $sql = "select count(*) from stories where `date/time`=DATE(NOW()) AND `name` = '{$_SESSION['name']}'";
             $result = mysql_query($sql);
             if (! $result)
              {
                throw new My_Db_Exception('Database error: ' . mysql_error());
              }
               else
               {
                 $row = mysql_fetch_assoc($result); 
                 $count=$row['count(*)'];
                 if ($count<3)
                 {
                  $sql = " INSERT INTO `stories`(`stories`,`name`,`date/time`) VALUES ('$story','{$_SESSION['name']}',now())";
                  $result = mysql_query($sql);
                  if (! $result)
                   {
                     echo "Story is not inserted";
                   }
                   else
                   {
                     die("<script>location.href = 'usershome.php'</script>");
                     echo "Story inserted successfully"; 
                   }
                 }
                  else
                  {
                    echo '<img src="images/animated-star-image-0009.gif" width="25px"/><a href="account.php" style="font-size:13px;color: white">Please Register to enter more than 3 stories per day</a>';

                  }
               }
           }
      }
}

    ?>

1 个答案:

答案 0 :(得分:1)

该行:

echo "<option value=\"\">" . $row['topic'] . "</option>";

将其更改为:

echo "<option value='".$row['topic']."'>" . $row['topic'] . "</option>";

您正在传递主题参数的空值。设置正确的值将确保您在数据库中插入正确的用户输入。 为了将来,您可以通过在执行SQLinsert之前输出POST内容来调试此简单操作。

这将解决您的问题,但是您可能还要考虑更改其他几项,其中之一是不建议使用的mysql_扩展名,请切换到mysqli或PDO。