bedoeling van het script is:

dat als je op de submit button klikt, dat hij dan altijd KL_voornaam in de tabel klant zet,
en als de betreffende tafel overeenkomt met bijvoorbeeld tafel1tijd1 OF tafel1tijd2 OF tafel1tijd3 dat ie dan KL_voornaam in de tabel tijd neerzet.

het gaat fout bij de if else statements van tafel1tijd1, tafel1tijd2, tafel1tijd3, alleen weet ik dan niet hoe het anders moet

hij zet wel KL_voornaam in de tabel klant, maar doet verder niets met tafel1tijd1 of tafel1tijd2 of tafel1tijd3

ben er al een tijdje mee bezig ik heb allerlei dingen geprobeerd.
als iemand een betere constructie heeft dan hoor ik dat graag.

zie code:

<?
error_reporting(E_ALL);

include "connect_db.php";

if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
echo "database connectie mislukt!";
exit();
}

if ($_POST['submit'] &&
$_POST['KL_voornaam'])
{
$sql = "INSERT INTO klant SET ";
$sql .= "KL_id = ''";
$sql .= ",KL_voornaam = '" . $_POST['KL_voornaam'] . "'";

$error = "er ging iets fout";
if (($_GET["tafel"]) == "tafel1tijd1") {
$sql = "UPDATE tijd SET TD_eerste = '" . $_POST['KL_voornaam'] . "' WHERE TD_id = 1";
}
else
{
echo $error;
}

if (($_GET["tafel"]) == "tafel1tijd2") {
$sql = "UPDATE tijd SET TD_tweede = '" . $_POST['KL_voornaam'] . "' WHERE TD_id = 1";
}
else
{
echo $error;
}

if (($_GET["tafel"]) == "tafel1tijd3") {
$sql = "UPDATE tijd SET TD_derde = '" . $_POST['KL_voornaam'] . "' WHERE TD_id = 1";
}
else
{
echo $error;
}


$res = mysql_query($sql) or die(mysql_error());

if ($res)
{
echo "invoer toegevoegd. <br><br> pagina wordt na 1 seconde herladen...";
echo "<meta http-equiv=\"refresh\" content=\"10;URL=overzicht_res_aanmaak.php\">";
}
else
echo "invoeren in database mislukt.";
}
else
{
if ($_POST['submit'])
echo "Enkele velden vergeten!";
}
echo "<h2>reserveringsformulier + koppeling naar res overzicht tabel</h2>";
echo "<form method=\"POST\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "Naam:<br>";
echo "<input type=\"text\" name=\"KL_voornaam\" value=\"" . htmlentities($_POST['KL_voornaam']) . "\"><br>";
echo "<input type=\"submit\" name=\"submit\" value=\"invoeren in database!\">";
echo "</form>";
?>

kan iemand mij een tip geven in de goede richting? ik zou je er erg dankbaar voor zijn!
Leg ook eens uit wat nu de bedoeling is. Je maakt 2 queries aan, maar je voert er slechts eentje uit. Wanneer moet de update-query worden uitgevoerd?

En waarom controleer je niet of $_POST['KL_voornaam'] juiste gegevens bevat? Nu kan deze leeg zijn. Verder bestaat er een levensgrote kans op SQL-injection, de functie mysql_real_escape_string() is in geen velden of wegen te bekennen. En die heb je nodig bij alle user-input (COOKIE, GET, POST, etc.).
okay, ben nog steeds een beginner...

@frank
Wanneer moet de update-query worden uitgevoerd?


als $_GET["tafel"] overeenkomt met tafel1tijd1 of tafel1tijd2 of tafel1tijd3 dan pas moet ie die bepaalde sql UPDATE doen.

En waarom controleer je niet of $_POST['KL_voornaam'] juiste gegevens bevat?


ehm hoe doe je dat?

Verder bestaat er een levensgrote kans op SQL-injection


het is niet voor de www maar voor een standalone pc

de functie mysql_real_escape_string() is in geen velden of wegen te bekennen. En die heb je nodig bij alle user-input (COOKIE, GET, POST, etc.).


zo vergevorderd ben ik (nog) niet

het is niet voor de www maar voor een standalone pc
Ja, en? Veiligheid is dan ineens niet meer belangrijk? Zie http://www.php.net/manual/en/function.mysql-real-escape-string.php Je hoeft echt geen expert te zijn om deze functie te gebruiken. Deze functie MOET je ALTIJD gebruiken wanneer je user-input in de database (MySQL) gaat wegschrijven. Doe je dat niet, dan ben je ongelovelijk dom bezig en smeek je gewoon om problemen. Nooit meer vergeten dus! ;)

Dan de update-query: Hoe denk jij dat je een query moet uitvoeren? De insert-query weet je al uit te voeren, dan lijkt het mij een koud kunstje om ook de andere query uit te voeren. Probeer eens wat!
Dan de update-query: Hoe denk jij dat je een query moet uitvoeren? De insert-query weet je al uit te voeren, dan lijkt het mij een koud kunstje om ook de andere query uit te voeren. Probeer eens wat!


hmmm als ik dat wist had ik het niet gepost op dit forum... ;)
hmmm als ik dat wist had ik het niet gepost op dit forum... ;)
Waarom lukt het jou dan wel om de INSERT-query uit te voeren? Wat is het verschil met een UPDATE-query? Tuurlijk, de SQL is verschillend, maar de manier waarop je de query uitvoert is bij mijn weten niet zo verschillend.

Tevens bestaat er nog een handleiding: http://www.php.net/manual/en/function.mysql-query.php
De insert-query weet je al uit te voeren, dan lijkt het mij een koud kunstje om ook de andere query uit te voeren.


(diepe zucht) voor mij is het geen koud kunstje, ben nu twee volle dagen hiermee bezig ben nog gisternacht beziggeweest, heb al verschillende keren het hele script doorelkaar gehaald zonder resultaat... blijkbaar heb jij het precies in je hoofd zitten hoe het zou moeten werken... ik niet, dus zou je aub even hiermee willen helpen? ik zou je er erg dankbaar voor zijn!
Met
<? $res = mysql_query($sql) or die(mysql_error()); ?>
ben jij in staat om de query $sql uit te voeren. Hoe denk je dan dat je de query $sql_update moet uitvoeren?
<?
$res = mysql_query($sql,$sql_update) or die(mysql_error());
//werkt niet
$res = mysql_query($sql and $sql_update) or die(mysql_error());
//werkt niet
$res = mysql_query($sql) or die(mysql_error());
$res = mysql_query($sql_update) or die(mysql_error());
//werkt niet
$res = mysql_query($sql) and mysql_query($sql_update) or die(mysql_error());
//werkt niet
?>

heb geen idee Frank
werkt niet
En nu mag ik raden wat er fout gaat? Dacht het niet! Wanneer jij niet meer moeite doet om een oplossing te vinden, dan zal dit nooit wat worden.

De juiste oplossing staat overigens in het rijtje.

Veel succes met zoeken.

Reageren