Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-下拉框值可以';不能插入MySQL_Php_Html_Mysqli - Fatal编程技术网

php-下拉框值可以';不能插入MySQL

php-下拉框值可以';不能插入MySQL,php,html,mysqli,Php,Html,Mysqli,我制作了一个下拉列表来选择一个联系人的优先级,优先级是表person的一个属性,它的类型为ENUM。下拉列表是HTML格式的,我想将其提交到MySQL数据库。但不知何故,该值无法插入。有人能帮我吗 代码 //PHP if(isset($_POST["priority"]) && $_POST["priority"] == 'not_selected'){ $err_priority = "Please assign the priority level!"; }

我制作了一个下拉列表来选择一个联系人的优先级,优先级是表
person
的一个属性,它的类型为
ENUM
。下拉列表是HTML格式的,我想将其提交到MySQL数据库。但不知何故,该值无法插入。有人能帮我吗

代码

//PHP
  if(isset($_POST["priority"]) && $_POST["priority"] == 'not_selected'){
    $err_priority = "Please assign the priority level!";
  }
  else {
    $priority = $_POST["priority"];
  }

  $sql1 = "INSERT INTO person (priority) VALUES (?)";
if ($stmt1 = mysqli_prepare($conn, $sql1) or die(mysqli_error($conn))) {
          mysqli_stmt_bind_param($stmt1, 's', $priority);
}
mysqli_stmt_execute($stmt1);
mysqli_stmt_close($stmt1);



//HTML-Form
  <div class="form-group <?php echo(!empty($err_priority)) ? 'has-error' : ''; ?>">
    <label>Priority</label>
    <?php
      echo '<select name="priority">';
      $sql = "SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = 'person' AND COLUMN_NAME = 'priority'";
      $result = mysqli_query($conn, $sql);
      $row = mysqli_fetch_array($result);
      $enumlist = explode(  ",", str_replace("'", "", substr($row['COLUMN_TYPE'], 5, (strlen($row['COLUMN_TYPE'])-6))));

      foreach ($enumlist as $value_p) {
        echo '<option value="$value_p">'.$value_p.'</option>';
        }
        echo '</select>';
    ?>
    <span class="help-block"><?php echo "$err_priority"; ?></span>
  </div>
<div class="form-group">
    <input type="submit" class="btnsml" value="Add Contact">
</div>
//PHP
如果(isset($\u POST[“priority”])&&&$\u POST[“priority”]=“未选定”){
$err_priority=“请指定优先级!”;
}
否则{
$priority=$_POST[“priority”];
}
$sql1=“插入个人(优先级)值(?”;
如果($stmt1=mysqli\u prepare($conn,$sql1)或die(mysqli\u error($conn))){
mysqli_stmt_bind_param($stmt1,$s',$priority);
}
mysqli_stmt_execute($stmt1);
mysqli_stmt_close($stmt1);
//HTML表单
问题在于:

echo '<option value="$value_p">'.$value_p.'</option >';
问题在于:

echo '<option value="$value_p">'.$value_p.'</option >';

问题是您没有在select标记中设置值

 echo '<select>';
 foreach ($enumlist as $value_p) {
        echo '<option value="'.$value_p.'">'.$value_p.'</value>';
 }
 echo '</select>';
echo';
foreach($enumlistas$value\u p){
回显“.$value\u p.”;
}
回声';

问题在于您没有设置select标记中的值

 echo '<select>';
 foreach ($enumlist as $value_p) {
        echo '<option value="'.$value_p.'">'.$value_p.'</value>';
 }
 echo '</select>';
echo';
foreach($enumlistas$value\u p){
回显“.$value\u p.”;
}
回声';

糟糕的代码设计…免费提示:不要将布局、逻辑和数据混为一谈。。阅读/思考关注点分离这段代码很难阅读,因为您太频繁地进出PHP。您应该用纯HTML完成所有布局,然后用PHP填充数据。@B001ᛦ 谢谢你的建议。我对PHP非常陌生,所以我还有很多东西要学:P我一直在玩弄一些想法,基本上只是在代码中写下了我的想法…我会改掉这个坏习惯^^糟糕的代码设计…免费提示:不要混合布局、逻辑和数据。。阅读/思考关注点分离这段代码很难阅读,因为您太频繁地进出PHP。您应该用纯HTML完成所有布局,然后用PHP填充数据。@B001ᛦ 谢谢你的建议。我对PHP非常陌生,所以我还有很多东西要学:P我在玩一些想法,基本上只是把我脑子里想的东西写进代码中……我会改掉这个坏习惯^^