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>";
?>

Je maakt een $sql aan waarin een INSERT-query staat. Vervolgens ga je deze overschrijven met een $sql waarin een UPDATE-query staat. De eerste query heb je echter nog niet uitgevoerd!

Verder zijn er nog meer onderdelen van het script waar ik niets van snap, wat is bv. de bedoeling van
<?
if ($_POST['submit'])
echo "Enkele velden vergeten!";
}
?>
? En wat dacht je van de if($res) ? Deze zal altijd TRUE zijn, FALSE is dankzij de die() , een paar regels eerder, onmogelijk.

Kortom, de logica zit niet goed in elkaar.
Frank bedankt voor je snelle reactie!

Je maakt een $sql aan waarin een INSERT-query staat. Vervolgens ga je deze overschrijven met een $sql waarin een UPDATE-query staat. De eerste query heb je echter nog niet uitgevoerd!


okay, daar heb je gelijk in, maar... sql INSERT doet ie wel maar de updates niet.
hoe kan ik dat oplossen? dat ie wel altijd KL_voornaam in tabel klant zet en als $_GET["tafel"] overeenkomt met bijvoorbeeld tafel1tijd2 dat ie die bepaalde update doet? de if else statements anders zetten ?
je hebt een hoop if-else-jes staan die allemaal dezelfde $error kunnen opleveren. Dat is niet handig met debuggen, nu weet je nooit waar het misgaat. Tenslotte doe je niets met $error, je weet dus nooit of er iets is foutgegaan. Echo deze eens, dan kom je vast wel wat verder.
als ik iets invoer en ik druk op de button dan doet ie wel wat er staat bij de sql INSERT, maar krijg dan wel 3x dezelfde error: er ging iets fout en de mededeling: invoer toegevoegd.

ik denk dat er dus iets fout zit in de of else statements...?
Welke data bevat $_GET['tafeltijd'] ? Echo deze eens, dan weet je meer.

En 3 x dezelfde foutmelding, dat is je eigen fout, daar vraag je zelf om.
Geef de update sqlletjes eens een andere naam bijv
$sql_update
@Frank $_GET["tafel"] bevat tafel1tijd1 of tafel1tijd2 of tafel1tijd3 en ik heb elke error een andere naam gegeven.

@Klaasjan alles verandert naar $sql_update, maar hoe laat ik dat dan uitvoeren?
iemand een idee? of een andere constructie?
ben nog steeds lerend...
je zou me er heel erg mee helpen, ben er al zolang mee bezig...
Geef even je script zoals het nu is, dan kunnen we kijken.
dit is hoe de code nu is:

<?
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'] . "'";


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

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

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

$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>";
?>

Reageren