php将数据插入mysql但从(不同的)表中加载选项

问题描述 投票:2回答:3

我有一个简单的表单,我将数据输入数据库,工作正常。现在我想从另一个表中加载一个选项,这也可以正常工作。什么不好用,当我把这两件事放在一起时。不知怎的,我只能做其中一件事,加载选项不起作用。你能帮帮我吗?

这是代码,我试着保持简单。

<?php
    if(!empty($_POST) && $_SERVER['REQUEST_METHOD'] == 'POST'){

/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost","root","password","db");
// Check connection
if($link === false){
    die("ERROR: Chyba připojování k databázi. " . mysqli_connect_error());
}

 
// Escape user inputs for security
$name = mysqli_real_escape_string($link, $_REQUEST['name']);
$nickname = mysqli_real_escape_string($link, $_REQUEST['nickname']);
$phone = mysqli_real_escape_string($link, $_REQUEST['phone']);


 

// attempt insert query execution
$sql = "INSERT INTO test (name, nickname, phone) VALUES ('$name', '$nickname', '$username')";
if(mysqli_query($link, $sql)){
header('Location: index.php');
exit;
} else{


    echo "ERROR " . mysqli_error($link);
}
 
}
?>

<form method="POST" action="">
 <label for="name">Name</label>
    <input type="text" name="name" id="name"><br>

<label for="nickname">Nickname</label>
 <select name="nickname" id="nickname">
<?php
$res=mysqli_query($link, "select * from wp_is_users");
while($row=mysqli_fetch_array($res))
{
?>
<option><?php echo $row["user_login"]; ?></option>
<?php
}
?>
</select>

 <label for="phone">Phone</label>
    <input type="text" name="phone" id="phone"><br>
<input type="submit" value="Přidat záznam"><br>

`

php html mysql
3个回答
2
投票

删除此行:

mysqli_close($link);

首先,你不需要它。其次,当您触发POST方法时,它会关闭连接,然后您正在尝试第二个查询。

另外,在检查请求方法之前打开连接,因此文件的开头应如下所示:

 $link = mysqli_connect("localhost","root","password","db");
if(!empty($_POST) && $_SERVER['REQUEST_METHOD'] == 'POST'){

这样,即使方法是get,它也会起作用,这是默认的。


0
投票

只是不要关闭数据库上的连接注释这一行// mysqli_close($ link);


0
投票

试试这个代码。你没有正确提交表格。我已经为正确的表单提交添加了一些代码

<?php
if(!empty($_POST) && $_SERVER['REQUEST_METHOD'] == 'POST'){

    /* Attempt MySQL server connection. Assuming you are running MySQL
    server with default setting (user 'root' with no password) */
    $link = mysqli_connect("localhost","root","password","db");
// Check connection
    if($link === false){
        die("ERROR: Chyba připojování k databázi. " . mysqli_connect_error());
    }


// Escape user inputs for security

    if(isset($_POST['submit'])) {//if form submit button is set
        $name = mysqli_real_escape_string($link, $_REQUEST['name']);
        $nickname = mysqli_real_escape_string($link, $_REQUEST['nickname']);
        $phone = mysqli_real_escape_string($link, $_REQUEST['phone']);


// attempt insert query execution
        $sql = "INSERT INTO test (name, nickname, phone) VALUES ('$name', '$nickname', '$username')";
        if (mysqli_query($link, $sql)) {
            header('Location: index.php');
            exit;
        } else {


            echo "ERROR " . mysqli_error($link);
        }

// close connection
       // mysqli_close($link);  skip this code
    }
}
?>

<form method="POST" action="">
    <label for="name">Name</label>
    <input type="text" name="name" id="name"><br>

    <label for="nickname">Nickname</label>
    <select name="nickname" id="nickname">
        <?php
        $res=mysqli_query($link, "select * from wp_is_users");
        while($row=mysqli_fetch_array($res))
        {
            ?>
            <option><?php echo $row["user_login"]; ?></option>
            <?php
        }
        ?>
    </select>

    <label for="phone">Phone</label>
    <input type="text" name="phone" id="phone"><br>
    <input type="submit" name="submit" value="Přidat záznam"><br>
© www.soinside.com 2019 - 2024. All rights reserved.