gegevens naar database sturen maar eerst controleren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Philippe Mes

Philippe Mes

14/08/2007 13:27:00
Quote Anchor link
Hey,
Hier ben ik weer.
Ik zit nu al een dikke 2 uur te zoeken naar een probleem maar ik geraak er maar niet uit.
Het probleem is namelijk het volgende.
Ik zou graag gegevens naar een database sturen (dit lukt (voor een stuk),
Als ik gegevens naar een database stuur zonder het if statement lukt dit perfect.
Maar van het moment dat ik er een if statement aan koppel geeft hij een foutmelding.

Ik heb hieronder het stukje code dat ik geschreven heb om de gegevens te verzenden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
    if (isset($_POST[submit])&&$_POST[wereld]!=""){
        $sql = "INSERT INTO werelddelen (werelddeel) VALUES ('wereld')";
    }

?>

        <form action="<?php echo $_SERVER['PHP_SELF']; ?>">
            <table>
                <tr><td>
                Werelddeel toevoegen</td><td><input type="text" name="wereld" />
                </td></tr><tr><td>&nbsp;
                </td><td><input type="submit" value="toevoegen" name="submit" />
                </td></tr>
            </table>
        </form>
<?php
    if (!mysql_query($sql)) {
        echo "Uitvoeren van mysql query is mislukt".mysql_error();
    }

    else {
        echo "<div style='color: red; float: right;'>De gegevens zijn naar de database gestuurd</div>";
    }

    mysql_close();
?>


srry vergeten dit is de foutmelding die ik krijg :
Uitvoeren van mysql query is mislukt Query was empty
Gewijzigd op 01/01/1970 01:00:00 door Philippe Mes
 
PHP hulp

PHP hulp

22/11/2024 07:48:41
 
Frank -

Frank -

14/08/2007 13:39:00
Quote Anchor link
De volgorde van jouw script is niet goed, hierdoor gaat het fout met de if-jes. Tevens zitten er wat foutjes in m.b.t. quotes.

Hier een aangepaste (en niet geteste) versie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
if ($_SERVER['REQUEST_METHOD'] == POST && !empty($_POST['werelddeel'])){
    $sWerelddeel = mysql_real_escape_string($_POST['werelddeel']);
    
    $sql = "INSERT INTO werelddelen (werelddeel) VALUES ('".$sWerelddeel."')";

    if (!mysql_query($sql)) {
        echo 'Uitvoeren van mysql query is mislukt'.mysql_error();
    }

    else {
        echo '<div style="color: red; float: right;">De gegevens zijn naar de database gestuurd</div>';
    }

    mysql_close();
}

?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table>
    <tr>
        <td>Werelddeel toevoegen</td><td><input type="text" name="werelddeel" /></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" value="toevoegen" name="submit" /></td>
    </tr>
    </table>
</form>

Het aanmaken van html-output doe je pas als allerlaatste, eigenlijk zou je ook het echoen van de (fout-) meldingen niet in de if-else willen hebben. Dit voorkomt een hoop problemen met cookies en sessies, maar ook onderhoud in zijn algemeen.

Een template-engine (bv. Smarty) is een echte aanrader!

Edit: Ik heb even aangenomen dat je elders in de code de verbinding met de database maakt, dat ontbreekt in bovenstaand voorbeeld.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.