user5629752
user5629752

Reputation:

mysql insert statement in PHP form

I want to show a list in PHP with the entries in a mysql-database. it works, now in the same .php file, a form should insert a new entry in the database, and it should be then shown in the list. My attempts have failed, where the last entry is always inserted in the database upon every access to the site. Below is my code:

PHP-Part adminlist.php:

$adminname = mysqli_real_escape_string($con, $_POST['adminname']);
    $server = mysqli_real_escape_string($con, $_POST['server']);

if(!empty($adminname && $server))
{
    $insert =  "INSERT INTO admins (ID, Name, Passwort, Server, Anmeldungen) VALUES (NULL, '" . $adminname . "', '', '" . $server . "', '0')";
    $insertquery = mysqli_query($con, $insert);
}

HTML-Part adminlist.php:

<form name='einfuegen' action='adminlist.php' method='post'>
            <table>
                <tr>
                    <th>Name</th>
                    <th>Server</th>
                </tr>
                <tr>
                    <td><input name='adminname' value='' /></td>
                    <td><input name='server' value='' /></td>
                    <td><input type='submit' value='Einf&uuml;gen' /></td>
                </tr>
            </table>
        </form>

I've tried also to set under the form

$server = 0;
$adminname = 0;

and edited the above:

if(!empty($adminname && $server) && ($server != 0) && ($adminname != 0))

In this case it won't work and nothing is inserted. How could I set only one to be inserted and be shown then in the list?

Upvotes: 2

Views: 102

Answers (1)

Nana Partykar
Nana Partykar

Reputation: 10548

Change this if(!empty($adminname && $server)) with if(!empty($adminname) && !empty($server)) And, don't unnecessary concatenate values for inserting.

Edited Code

if(!empty($adminname) && !empty($server))
{
    $insert =  "INSERT INTO admins (ID, Name, Passwort, Server, Anmeldungen) VALUES (NULL, '$adminname','', '$server', '0')";
    $insertquery = mysqli_query($con, $insert);
}

For OP :

Use header("location:adminlist.php"); for redirecting it after submitting.

<?php
error_reporting(0);

if($_POST['submitValue']) {

    $adminname = mysqli_real_escape_string($con, $_POST['adminname']);
    $server = mysqli_real_escape_string($con, $_POST['server']);

    $insert =  "INSERT INTO admins (ID, Name, Passwort, Server, Anmeldungen) VALUES (NULL, '$adminname','', '$server', '0')";
    $insertquery = mysqli_query($con, $insert);

    header("location:adminlist.php");

}?>



<form name='einfuegen' action='' method='post'>
    <table>
        <tr>
            <th>Name</th>
            <th>Server</th>
        </tr>
        <tr>
            <td><input name='adminname' value='' /></td>
            <td><input name='server' value='' /></td>
            <td><input type='submit' name='submitValue' value='Einf&uuml;gen' /></td>
        </tr>
    </table>
</form>

Upvotes: 3

Related Questions