Jump to content

add script adds nothing to database


Go to solution Solved by arjanvr,

Recommended Posts

I had someone change the time settings of this script/database to work as day-month-year instead of year-month-day. I added $telefoon myself as a value but now when i click submit it does nothing. It simply goes to the view page but adds nothing to the database. I put in a error check but no errors or warnings come up. Is there anything wrong with the script that I am missing?

<?php
        /*
                Staat de gebruiker toe om nieuwe records toe te voegen te bewerken
        */

        // connect to the database
        include("connect-db.php");
        
        # errors weergeven
        ini_set('display_errors',1); // 1 == aan , 0 == uit
        error_reporting(E_ALL | E_STRICT);

        // Maakt nieuw/edit record formulier
        function renderForm($klantnummer = '', $bedrijfsnaam ='', $adres ='', $postcode ='', $plaats ='', $telefoon='', $londerhoud ='', $aantal ='', $vonderhoud='', $error = '', $id = '')
        { ?>
                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
                <html>
                        <head>  
                                <title>
                                        <?php if ($id != '') { echo "Bewerk onderhoud"; } else { echo "Nieuw onderhoud"; } ?>
                                </title>
                                <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
                        </head>
                        <body>
                                <h1><?php if ($id != '') { echo "Bewerk onderhoud"; } else { echo "Nieuw onderhoud"; } ?></h1>
                                <?php if ($error != '') {
                                        echo "<div style='padding:4px; border:1px solid red; color:red'>" . $error
                                                . "</div>";
                                } ?>
                                
                                <form action="" method="post">
                                <div>
                                        <?php if ($id != '') { ?>
                                                <input type="hidden" name="id" value="<?php echo $id; ?>" />
                                                <p>ID: <?php echo $id; ?></p>
                                        <?php } ?>
                                        
                                        <strong>Klantnummer:</strong> <input type="text" name="klantnummer"
                                                value="<?php echo $klantnummer; ?>"/><br/>
                                        <strong>Bedrijfsnaam:</strong> <input type="text" name="bedrijfsnaam"
                                                value="<?php echo $bedrijfsnaam; ?>"/><br/>
                                        <strong>Adres:</strong> <input type="text" name="adres"
                                                value="<?php echo $adres; ?>"/><br/>
                                        <strong>Postcode:</strong> <input type="text" name="postcode"
                                                value="<?php echo $postcode; ?>"/><br/>
                                        <strong>Plaats:</strong> <input type="text" name="plaats"
                                                value="<?php echo $plaats; ?>"/><br/>
                                        <strong>Telefoonnumer:</strong> <input type="text" name="telefoon"
                                                value="<?php echo $telefoon; ?>"/><br/>
                                        <strong>Laatste onderhoud:<br><small>dag-maand-jaar</small></strong> <input type="text" name="londerhoud"
                                                value="<?php echo $londerhoud; ?>"/><br/>
                                        <strong>Aantal apparaten:</strong> <input type="text" name="aantal"
                                                value="<?php echo $aantal; ?>"/><br/>
                                        <strong>Volgende onderhoud:<br><small>dag-maand-jaar</small></strong> <input type="text" name="vonderhoud"
                                                value="<?php echo $vonderhoud; ?>"/><p/>
                                        <input type="submit" name="submit" value="Submit" /><p>
                                        <a href="index.html">Terug naar het overzicht</a>
                                </div>
                                </form>
                        </body>
                </html>
                
        <?php }



        /*

           BEWERK RECORD

        */
        // Wanneer de 'id' variabel is ingesteld in de URL, weten we dat we een record moeten aanpassen
        if (isset($_GET['id']))
        {
                // Wanneer de submitknop word ingedrukt word het formulier verwerkt
                if (isset($_POST['submit']))
                {
                        // Zorgt ervoor dat de 'id' geldig is
                        if (is_numeric($_POST['id']))
                        {
                                // verkrijg variabelen van URL/formulier
                                $id = $_POST['id'];
                                $klantnummer = htmlentities($_POST['klantnummer'], ENT_QUOTES);
                                $bedrijfsnaam = htmlentities($_POST['bedrijfsnaam'], ENT_QUOTES);
                                $adres = htmlentities($_POST['adres'], ENT_QUOTES);
                                $postcode = htmlentities($_POST['postcode'], ENT_QUOTES);
                                $plaats = htmlentities($_POST['plaats'], ENT_QUOTES);
                                $telefoon = htmlentities($_POST['telefoon'], ENT_QUOTES);
                                $londerhoud = htmlentities(strtotime($_POST['londerhoud']), ENT_QUOTES);
                                $aantal = htmlentities($_POST['aantal'], ENT_QUOTES);
                                $vonderhoud = htmlentities(strtotime($_POST['vonderhoud']), ENT_QUOTES);
                                
                                {
                                        // update de database
                                        if ($stmt = $mysqli->prepare("UPDATE klanten SET klantnummer = ?, bedrijfsnaam = ?, adres = ?, postcode = ?, plaats = ?, telefoon = ?, londerhoud = ?, aantal = ?, vonderhoud = ?
                                                WHERE id=?"))
                                        {
                                                $stmt->bind_param("sssssssssi", $klantnummer, $bedrijfsnaam, $adres, $postcode, $plaats, $telefoon, $londerhoud, $aantal, $vonderhoud, $id);
                                                $stmt->execute();
                                                $stmt->close();
                                        }
                                        // toont foutmelding indien nodig
                                        else
                                        {
                                                echo "ERROR: could not prepare SQL statement.";
                                        }
                                        
                                        // redirect na submit van formulier
                                        header("Location: view.php");
                                }
                        }
                        // bij ongeldige 'id' komt een foutmelding
                        else
                        {
                                echo "Error!";
                        }
                }
                // Indien het formulier niet verstuurd is word de database en het formulier weergegeven
                else
                {
                        // zorgt dat de 'id' geldig is
                        if (is_numeric($_GET['id']) && $_GET['id'] > 0)
                        {
                                // verkrijg 'id' van URL
                                $id = $_GET['id'];
                                
                                // verkrijg de records uit de database
                                if($stmt = $mysqli->prepare("SELECT * FROM klanten WHERE id=?"))
                                {
                                        $stmt->bind_param("i", $id);
                                        $stmt->execute();
                                        
                                        $stmt->bind_result($id, $klantnummer, $bedrijfsnaam, $adres, $postcode, $plaats, $telefoon, $londerhoud, $aantal, $vonderhoud);
                                        $stmt->fetch();
                                        
                                        // toon het formulier
                                        renderForm($klantnummer, $bedrijfsnaam, $adres, $postcode, $plaats, $telefoon, $londerhoud, $aantal, $vonderhoud, NULL, $id);
                                        
                                        $stmt->close();
                                }
                                // toon een error wanneer de query een error heeft
                                else
                                {
                                        echo "Error: could not prepare SQL statement";
                                }
                        }
                        // wanneer het 'id' ongeldig is word de gebruiker naar view.php doorgestuurd
                        else
                        {
                                header("Location: view.php");
                        }
                }
        }



        /*

           NIEUW RECORD

        */
        // wanneer geen 'id' is ingesteld volgt een nieuwe invoer
        else
        {
                // proces het formlier na submit
                if (isset($_POST['submit']))
                {
                        // verkrijg formulierdata
                        $klantnummer = htmlentities($_POST['klantnummer'], ENT_QUOTES);
                        $bedrijfsnaam = htmlentities($_POST['bedrijfsnaam'], ENT_QUOTES);
                        $adres = htmlentities($_POST['adres'], ENT_QUOTES);
                        $postcode = htmlentities($_POST['postcode'], ENT_QUOTES);
                        $plaats = htmlentities($_POST['plaats'], ENT_QUOTES);
                        $telefoon = htmlentities($_POST['telefoon'], ENT_QUOTES);
                        $londerhoud = htmlentities(strtotime($_POST['londerhoud']), ENT_QUOTES);
                        $aantal = htmlentities($_POST['aantal'], ENT_QUOTES);
                        $vonderhoud = htmlentities(strtotime($_POST['vonderhoud']), ENT_QUOTES);
                        
                        {
                                // insert the new record into the database
                                if ($stmt = $mysqli->prepare("INSERT klanten (klantnummer, bedrijfsnaam, adres, postcode, plaats, telefoon, londerhoud, aantal, vonderhoud) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"))
                                {
                                        $stmt->bind_param("sssssssss", $klantnummer, $bedrijfsnaam, $adres, $postcode, $plaats, $telefoon, $londerhoud, $aantal, $vonderhoud);
                                        $stmt->execute();
                                        $stmt->close();
                                }
                                // Toon een foutmelding indien nodig
                                else
                                {
                                        echo "ERROR: Could not prepare SQL statement.";
                                }
                                
                                // stuur gebruiker door
                                header("Location: view.php");
                        }
                        
                }
                // wanneer geen formulier is ingediend word de database weergegeven
                else
                {
                        renderForm();
                }
        }
        
        // sluit mysqli verbinding
        $mysqli->close();
?>

He edited another one for the date funtion aswell but that one works fine..

 

I wil paste that one below aswell

<?php
        /*
                Staat de gebruiker toe om nieuwe records toe te voegen te bewerken
        */

        // connect to the database
        include("connect-db.php");
        
        # errors weergeven
        ini_set('display_errors',1); // 1 == aan , 0 == uit
        error_reporting(E_ALL | E_STRICT);

        // Maakt nieuw/edit record formulier
        function renderForm($bedrijfsnaam ='', $factuurbedrag ='', $vervaldatum ='', $voldaan ='', $opmerkingen ='', $id ='', $error = '')
        {

            $title = (empty($id)) ? "Nieuwe factuur" : "Bewerk factuur";

            // all HTML is now held within the $HTML variable.
            $HTML = <<<HTML
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
                <html>
                        <head>  
                                <title>$title</title>
                                <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
                        </head>
                        <body>
                                <h1>$title</h1>
                                $error
                                
                                <form action="facturen-nw.php" method="post">
                                <div>
HTML;
// DO NOT MOVE?CHANGE THE ABOVE LNE

            if (!empty($error))
                $HTML .= "\n<div style='padding:4px; border:1px solid red; color:red'>" . $error . "</div>\n\n";

            if(!empty($id))
                $HTML .= '<input type="hidden" name="id" value="' . $id . '" /><p>ID:' . $id .'</p>';
            $HTML .= <<<HTML
                                                                                
                                        <strong>Bedrijfs(naam):</strong>
                                        <input type="text" name="bedrijfsnaam" value="$bedrijfsnaam"/><br/>
                                        <strong>Factuurbedrag:</strong>
                                        <input type="text" name="factuurbedrag" value="$factuurbedrag"/><br/>
                                        <strong>Vervaldatum:</strong>
                                        <input type="text" name="vervaldatum" value="$vervaldatum"/><br/>
                                        <strong>Voldaan (ja/nee):</strong>
                                        <input type="text" name="voldaan" value="$voldaan"/><br/>
                                        <strong>Opmerkingen:</strong>
                                        <input type="text" name="opmerkingen" value="$opmerkingen"/><p/>
                                        <input type="submit" name="submit" value="Submit" /><p>
                                        <a href="index.html">Terug naar het overzicht</a>
                                </div>
                                </form>
                        </body>
                </html>
HTML;
// DO NOT MOVE/CHANGE THE ABOVE LINE
                
            // function returns the generated HTML
            return $HTML;
        }

        // set action to create a new record
        $action = 'new';

        // override action to either edit or update
        if(isset($_REQUEST['id']) && is_numeric($_REQUEST['id']))
        {
            // get the record id from _GET or _POST
            $id = (int) $_REQUEST['id'];

            // what action we're doing
            // if id is in url eg: facturen.php?id=1 then we're editing the record
            // If its not in the url then we're updating the record
            $action = isset($_GET['id']) ? 'edit' : 'update';
        }

        // if the form has been submitted
        if(isset($_POST['submit']))
        {

            $bedrijfsnaam = htmlentities($_POST['bedrijfsnaam'], ENT_QUOTES);
            $factuurbedrag = htmlentities($_POST['factuurbedrag'], ENT_QUOTES);
            $vervaldatum = htmlentities(strtotime($_POST['vervaldatum']), ENT_QUOTES);
            $voldaan = htmlentities($_POST['voldaan'], ENT_QUOTES);
            $opmerkingen = htmlentities($_POST['opmerkingen'], ENT_QUOTES);


            // run query depending on actions
            if($action == 'new') // inserts new record
            {
                $stmt = $mysqli->prepare("INSERT INTO facturen SET bedrijfsnaam = ?, factuurbedrag = ?, vervaldatum = ?, voldaan = ?, opmerkingen = ?");
                $stmt->bind_param("sssss", $bedrijfsnaam, $factuurbedrag, $vervaldatum, $voldaan, $opmerkingen);
            }
            elseif($action == 'update') // updates record
            {
                $stmt = $mysqli->prepare("UPDATE facturen SET bedrijfsnaam = ?, factuurbedrag = ?, vervaldatum = ?, voldaan = ?, opmerkingen = ? WHERE id=?");
                $stmt->bind_param("sssssi", $bedrijfsnaam, $factuurbedrag, $vervaldatum, $voldaan, $opmerkingen, $id);
            }

            // executes query and redirects on sucess
            if($stmt->execute())
            {
                header('Location: facturen.php');
                exit;
            }
            else
            {
                $error = 'Cannot continue! Error with database';
            }

            // otherwise display form with error
            echo enderForm($bedrijfsnaam, $factuurbedrag, $vervaldatum, $voldaan, $opmerkingen, $id, $error);


        } 
        elseif($action == 'edit')
        {
            $stmt = $mysqli->prepare("SELECT * FROM facturen WHERE id=?");
            $stmt->bind_param("i", $id);
            $stmt->execute();
            $stmt->bind_result($id, $bedrijfsnaam, $factuurbedrag, $vervaldatum, $voldaan, $opmerkingen);
            $stmt->fetch();

            echo renderForm($bedrijfsnaam, $factuurbedrag, $vervaldatum, $voldaan, $opmerkingen, $id);
        }
        else
            echo renderForm();
        
        // sluit mysqli verbinding
        $mysqli->close();
?>

As always, much appriciated!

Link to comment
https://forums.phpfreaks.com/topic/282523-add-script-adds-nothing-to-database/
Share on other sites

Comment out the header("Location: view.php"); lines.

 

And change all instances of 

echo "ERROR: Could not prepare SQL statement.";

to

echo "ERROR: Could not prepare SQL statement.<p>Error: " . $mysqli->error;

Any errors displayed?.

Edited by Ch0cu3r

Not sure what you mean by

 

Comment out the header("Location: view.php"); lines.

 

But I edited the other lines in the file which lets me enter stuff into the database. The actual view page did not have them but it does not return an error

Not sure what you mean by

 

Comment out the header("Location: view.php"); lines.

Adding two forward slashes (//) in front of lines will comment them out. Commented lines are ignored by PHP.

 

So change header("Location: view.php"); to //header("Location: view.php");

Edited by Ch0cu3r
  • Solution

Forgot it meant // ;)

 

It gave me an error now which I fixed and it works ok now..

 

Thanks!

 

Forgot to add a ,? here where I added the new field throughout the document

if ($stmt = $mysqli->prepare("INSERT klanten (klantnummer, bedrijfsnaam, adres, postcode, plaats, telefoon, londerhoud, aantal, vonderhoud) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"))
Edited by arjanvr
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.