2

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?

3
  • just reload your page after inserting data Commented Dec 8, 2015 at 6:55
  • 3
    Please use if(!empty($adminname) && !empty($server)) instead of if(!empty($adminname && $server)) Commented Dec 8, 2015 at 6:56
  • @mapek better yet, just use if($adminname && $server), as both of those variables are already defined. Commented Dec 8, 2015 at 12:47

1 Answer 1

3

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>
Sign up to request clarification or add additional context in comments.

18 Comments

BTW your profile is the funniest one I ever seen on SOF. No serious business at all. LOL!
Thanku @AnandG Jee. Be Funny. Go Sunny
So I do not need the " $server = 0; $adminname = 0;" at he bottom?
No. No. It's Not Like That. Why Unnecessary concatenating '" . $adminname . "'. It's not an error. Just for better way to write code. I feel easy this way only @JohnHSmith
But how can I delete the last given words in form after refreshing the page?
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.