gegevens naar database sturen maar eerst controleren
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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>
</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();
?>
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>
</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
Hier een aangepaste (en niet geteste) versie:
Code (php)
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
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> </td>
<td><input type="submit" value="toevoegen" name="submit" /></td>
</tr>
</table>
</form>
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> </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 -