1

我只需要将表单数据插入 mysql 数据库并在浏览器中显示。但是,当我填写表格并单击提交时,该行被添加但没有数据,除了自动递增的 ID 字段。即使 phpmyadmin 中的表格与添加的行和空文件看起来相同。任何建议将不胜感激...

我的 html 表单看起来像这样,

<table border="1">
  <tr>
    <td align="center">Form Input Students Data</td>
  </tr>
  <tr>
    <td>
      <table>
        <form method="POST" action="data_insert_htmlform.php/">
        <tr>
          <td><label for="Name">Name</label></td>
          <td><input type="text" name="name" size="20">
          </td>
        </tr>
        <tr>
          <td><label for="Age">Age</label></td>
          <td><input type="text" name="age" size="20">
          </td>
        </tr>
        <tr>
          <td><label for="Birth_Date">Birth_Date</label></td>
          <td><input type="text" name="Birth_Date" size="20">
          </td>
        </tr>
        <tr>
          <td><label for="Address"Address</label></td>
          <td><input type="text" name="address" size="40">
          </td>
        </tr>
        <tr>
          <td></td>
          <td align="center">
              <input type="submit" name="submit" value="Sent">
          </td>
        </tr>
        </form>
        </table>
      </td>
    </tr>
</table>

和我的php代码,

<?php

error_reporting(E_ERROR | E_PARSE);

$database = 'students';
$continued=mysql_connect("localhost" , "root", "");

if(mysql_select_db($database))
echo ("<br><br>connection to the database succeeds");
else
echo ("connection failed");

/*$name = $_POST['name'];
$age = $_POST['age'];
$birth_date = $_POST['Birth_date'];
$address = $_POST['address'];*/

$insert = "INSERT INTO students_basicinfo(Name, Age, Birth_Date, Address) VALUES ('{$_POST['name']}','{$_POST['age']}' , '{$_POST['Birth_date']}' , '{$_POST['address']}')";

$abc = mysql_query($insert);
if($abc){
    echo("<br>Input data is succeed");
}else{
    echo("<br>Input data is fail");
}

$order = "SELECT * FROM students_basicinfo";
$result = mysql_query($order);

if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}

echo "<table border='1'>";

    while($data = mysql_fetch_array($result))
    {
        echo "<tr>";
               echo "<td>".$data[ID]."</td>";
               echo "<td>".$data[Name]."</td>";
               echo "<td>".$data[Age]."</td>";
               echo "<td>".$data[Birth_Date]."</td>";
               echo "<td>".$data[Address]."</td>";
        echo "</tr>";
    }

echo "</table>";

?>
4

4 回答 4

1

这个问题关于input name case sensitive

改为大写$_POST['Birth_date']_$_POST['Birth_Date']D

尝试以下查询,这将起作用。

$insert = "INSERT INTO students_basicinfo(Name, Age, Birth_Date, Address) VALUES ('{$_POST['name']}','{$_POST['age']}' , '{$_POST['Birth_Date']}' , '{$_POST['address']}')";
于 2013-08-31T11:56:40.410 回答
0

代替

'{$_POST['name']}','{$_POST['age']}' , '{$_POST['Birth_date']}' , '{$_POST['address']}'

'".$_POST['name']."','".$_POST['age']."' , '".$_POST['Birth_date']."' , '".$_POST['address']."'
于 2013-08-31T11:53:26.700 回答
0

尝试 :

 echo "<tr>";
               echo "<td>".$data['ID']."</td>";
               echo "<td>".$data['Name']."</td>";
               echo "<td>".$data['Age']."</td>";
               echo "<td>".$data['Birth_Date']."</td>";
               echo "<td>".$data['Address']."</td>";
        echo "</tr>";
于 2013-08-31T11:53:45.793 回答
0

(使用准备好的语句。)

  • 将语句转储到 HTML 注释中<!-- ... --->,以便您自己尝试。
  • 用于echo mysql_error()检查错误。
  • 我不信任日期字段,DATE?使用“2013-08-31 or '2013-08-31 14_:07/2013-08-31T14_:07”。
于 2013-08-31T12:08:40.923 回答