我在mysql中有一个表,有2个字段(num和name)
我需要插入很多名字,每个名字都有一个数字,如下例所示。
我需要php"第2页"如果我只插入名称并将数字txt保留为空,换句话说,我需要在内部使用默认文本,但是此文本是最后一个数字,请在最后一个之后插入下一个数字(在本例中为数字5)在表格中(在这种情况下,编号为5)。
1 - 约翰
2 - 玛丽亚
3 - 莫妮卡
4 - 乔治
第1页form_page.html
<form action="add.php" method="post">
<input type="text" name="txt_num">
<input type="text" name="txt_name">
<input type="submit">
</form>
第2页add.php
<?php
include('connect_db.php');
$sql="INSERT INTO(
num,
name,
)
VALUES(
'$_POST[txt_num]',
'$_POST[txt_name]',
)";
?>
第3页connect_db.php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database_name";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("<p2>Database connection failed: </p2>" . mysqli_connect_error());
}
?>
答案 0 :(得分:0)
你的解决方案我是Auto_Increment,它将为你完成工作。
您需要使num auto_increment和make成为该表的主键。
连接到MySQL并尝试以下查询:
ALTER TABLE tbl_name ADD COLUMN `id` int(11) unsigned primary KEY AUTO_INCREMENT;
ALTER TABLE tbl_name DROP COLUMN num;
ALTER TABLE tbl_name CHANGE id num int(11) unsigned;
另外注意,上面的代码无效,因为您缺少表名并且有额外的逗号。
假设您改变了表格,我建议您的查询看起来像这样
$sql="INSERT INTO tbl_name(name)VALUES($_POST[txt_name])";
注意:您需要转义txt_name值,否则您的代码很容易受到攻击。
答案 1 :(得分:0)
你可以:
例子(如果你不发布'num',选择最后一个并插入):
//if 'num' is null
if($_POST['txt_num'] == '' or !isset($_POST['txt_num']){
$LastNum = "SELECT num FROM table_name ORDER BY num DESC LIMIT 1";
$LastNum = mysql_fetch_array($LastNum);
$Num = $LastNum['num'] +1;
//if you set value
}else{
$Num = $_POST[txt_num];
}
$sql = "INSERT INTO table_name(num,name) VALUES('".$Num."','".$_POST['txt_name']."')";