“input type = text”中的默认文本

时间:2014-11-12 19:36:42

标签: php html mysql

我在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());
}
?>

2 个答案:

答案 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)

你可以:

  • 在MySQL中的“num”上设置“AUTO_INCREMENT”。
  • 选择最后一个“num”并插入。

例子(如果你不发布'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']."')";