php:无法使用提交按钮从用户获取值

时间:2018-06-14 11:04:03

标签: php html sql

这是我的数据库:link link

<?php
$con=mysqli_connect("localhost","root","","organisation");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM org_insert");

echo "<!doctype html>
<html lang=\"en\">
  <head>
    <!-- Bootstrap CSS -->
    <link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css\">

    <title>Hello, world!</title>
  </head>
  <body>
      <table border='1'>
<tr>
<th>below_whom</th>
<th>name</th>
</tr>";
$row = mysqli_fetch_array($result);
#echo '<pre>'; print_r($row); echo '</pre>';

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['below_whom'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
<div class="form-group">
  <label for="usr">below_whom:</label>
  <input type="text" name ="below_whom" id="below_whom" class="form-control">
</div>
<div class="form-group">
  <label for="usr">name:</label>
  <input type="text" name ="name" id="name" class="form-control">
</div>
<form method="post">
    <input  type="button" name="submit" id="submit" class="btn btn-primary" value="submit"/>
</form>
<?php
$con=mysqli_connect("localhost","root","","organisation");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

if(isset($_POST['submit']))
{
    if($below_whom !=''||$name !=''){
        $below_whom=$_POST['below_whom'];
        $name=$_POST['name'];
        $query=mysqli_query("INSERT INTO org_insert VALUES ('$below_whom','$name');");
        $query_run = mysqli_query($con,$query);
        echo "<p>query inserted.</p>";
    }else{
            echo "<p>Insertion Failed.</p>";
            }
}
mysqli_close($con);

echo"</body>
    </html>";
?>

p标签下的文本没有被执行,即程序没有进入if语句本身。我已经重新检查了语法,问题是什么?语法不正确吗?我很确定与sql的连接是正确的。我也参考了一些文章,但我仍然被困在这里。

3 个答案:

答案 0 :(得分:1)

在if循环之前使用post变量,如下所示

  if(isset($_POST['submit']))
{
$below_whom=$_POST['below_whom'];
$name=$_POST['name'];
    if($below_whom !=''||$name !=''){

        $query=mysqli_query("INSERT INTO org_insert VALUES ('$below_whom','$name');");
        $query_run = mysqli_query($con,$query);
        echo "<p>query inserted.</p>";
    }else{
            echo "<p>Insertion Failed.</p>";
            }
}

并在HTML代码中将类型添加为提交,并在div之前添加开始表单标记 <form method="post" action="">并在输入标记

后关闭
<input  type="submit" name="submit" id="submit" class="btn btn-primary" value="submit"/>

答案 1 :(得分:0)

我能够看到的一个问题是您的查询应该是:

$query=mysqli_query("INSERT INTO `org_insert`(`below_whom`,`name`) VALUES ('$below_whom','$name')");

希望这有帮助。

答案 2 :(得分:0)

将mysqli_fetch_array更改为mysqli_fetch_assoc或添加参数

$row = mysqli_fetch_array($result,MYSQLI_ASSOC);