php - 通过html形式在mysql中插入数据(以及更多..)

标签 php html mysql forms row

首先:我是 MYSQL/PHP 的新手:)。我正在编写一个简单的脚本来学习 php/mysql,但我遇到了几个问题。如果这个网站上已经有人问过其中一些问题,我真的很抱歉,但我确实搜索了它们,但它们并没有与我的意图结合起来,所以请不要只是 -1 这篇文章!

我有一个包含一些表的数据库。其中一个表名为“leerlingen”,我想将数据添加到该表中。我来自荷兰,“leerlingen”的意思是“学生”。因此,我想在表中添加一名学生。该表有 4 个内容:leerling_id、leerling_naam、leerling_nummer 和 klas_id。最后一张很奇怪吧?不,因为我有另一个表,只有一列:klas_id。不过那是以后的事了。

“Klas”的意思是“团体”(是的,我正在学你们荷兰语哈哈:D),我有几个团体。但是,您可以通过其他形式添加新组。

让我们开始吧:我创建了一个 HTML 表单:

<!-- start form -->

    <form action="insert_leerling.php" method="post">
<input type="text" name="leerling_naam" class="inp-form">
<input type="text" name="leerling_nummer" class="inp-form">

<?php

$con = mysql_connect("localhost","root","root");
if (!$con)
  {
   die('Could not connect: ' . mysql_error());
  }

mysql_select_db("sms", $con);

 $query = "SELECT * FROM klas ORDER BY klas_id";
 $result = mysql_query($query);

echo "<select class='inp-form' id='klas_id'>\n";

while ($row = mysql_fetch_assoc($result)) {
  if (1 == 1) {
    echo '<option name="'.htmlspecialchars($row['klas_id']).'">'.htmlspecialchars($row['klas_id']).'</option>';
  }
}

echo "</select>";

?>
            <input type="submit" value="Voeg toe" class="form-submit" />

    </form>

<!-- end form  -->

因此,插入了3个内容:leerling_naam(表示学生姓名)、leerling_nummer(表示学号=手机号码)和klas_id。我从小 php 脚本中获取 klas_id,因此用户会看到包含所有 klas(组)的 html 下拉菜单。当我运行表单时,它会将您发送到这段代码(另一页):

 <?php
    $con = mysql_connect("localhost","root","root");
    if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("sms", $con);

$leerling_naam = $_POST['leerling_naam'];
$leerling_nummer = $_POST['leerling_nummer'];
$klas_id = $_POST['klas_id'];

$sql_insert = mysql_query("
                           INSERT INTO leerlingen 
                           (leerling_naam, leerling_nummer, klas_id) 
                           VALUES 
                           ('$leerling_naam', '$leerling_nummer', '$klas_id')
                         ");

?>

现在,问题来了..

  1. “klas_id”未插入表中,它只是 blanco。
  2. 我希望第一列(leerling_id,这是 mysql 表中的正常 id)始终为 +1,我没有使用那段代码。当我添加新数据时,leerling_id 会+1,但是当我删除第一行时(假设我踢了一个学生),数据并没有自动更新(哈哈,“更新”这个词)<

如果您已经读完这里:干得好。我的英语不是很好(如果你发现一些戏剧性的语法错误,你可以告诉我:))。我也明白这很难理解,对此感到抱歉..

谢谢!

最佳答案

echo "<select class='inp-form' id='klas_id'>\n";

应该阅读

echo "<select name='klas_id' class='inp-form' id='klas_id'>\n";

您没有为选择的表单元素指定名称。在这种情况下,ID 和名称不可互换。

回答你的第二个问题,为什么你希望数据完全连续?没有简单的方法可以使数据库记录始终连续,特别是如果这是行的主键。

我建议不要从数据库中删除记录,而是“软记录删除”的一个好例子,即向表中添加一个名为“active”的新列,数据类型为 ENUM('Y','N') 。如果您想删除它们,只需将此字段标记为 'N' ,并且在查询学生时,仅查找带有 'Y' 的记录在事件列中。

如果您想在查询中返回带有连续编号的学生,请查看行号:@rownum:=@rownum+1尽管这个号码绝对没有直接链接到 id在数据库中。

关于php - 通过html形式在mysql中插入数据(以及更多..),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14015265/

相关文章:

php - 从一个表导入数据并将其插入到另一个表中

javascript - 确认框定制?

php - 使用 android volley 和 php 将波斯语值发布到 mysql

html - 两列布局 HTML/CSS

javascript - Angular cdkDropList 拖动元素限制

php - 从 mysql 表中选择 3 行,然后获取每一行的特定列

MySQL字符串选择命令

php - 如何在 PHP 中动态定义一个变量

php - 将文件中的本地数据infile加载到多个表

php - #1044 - 用户 'root' @'localhost' 访问数据库 'information_schema' 被拒绝