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

Wanneer jij niet meer moeite doet om een oplossing te vinden


WTF, hoe bedoel je dat? je zegt hier dus eigenlijk dat ik totaal geen moeite heb gedaan om erachter te komen wat er nu precies gebeurt en hoe ik het op kan lossen? ik kan je vertellen dat ik continue bezig ben geweest met proberen. dingen veranderen , weer proberen, dingen zoeken, weer ff proberen, dus zeg niet dat ik er geen moeite voor gedaan heb, want dat is pure onzin!
Ik probeer je te vertellen dat een opmerking als 'werkt niet' een kansloze opmerking is. Het zegt helemaal niets over wat er nu gebeurd. Heb je bv. wel een verbinding met de database? Heb je overal wel gecontroleerd of de query is uitgevoerd? etc. etc. Jij zet lukraak wat dingen achter elkaar zonder dat je ook maar enig idee hebt over wat je nu aan het doen bent.

En nogmaals, je hebt de update al keurig uitgevoerd, alleen controleer jij nergens of dat ook zo is. Vandaar dat jij dat nooit te zien zult krijgen.

Ga eens gestructureerd werken, en dan vooral je werk controleren, en je komt een heel stuk verder. Bij programeren draait alles om controles, dit omdat alles vroeg of laat zal mislukken.
De juiste oplossing staat overigens in het rijtje.


is dit een quiz?, waarom zeg je niet welke het is??? ik dacht dat de functie van een forum, het oplossen van problemen was? maar jij maakt er maar een raad spelletje van...
David schreef op 27.10.2006 18:35
De juiste oplossing staat overigens in het rijtje.


is dit een quiz?, waarom zeg je niet welke het is??? ik dacht dat de functie van een forum, het oplossen van problemen was? maar jij maakt er maar een raad spelletje van...
Jij controleert niet of de query is uitgevoerd en wat daar het resultaat van is! Ik zie alleen een rijtje met functies en dat je daarmee de diverse queries aanroept. Ik kan dus alleen iets roepen over dit stukje syntax, en er staat een juiste tussen, maar helemaal niets over het resultaat. En dat komt omdat JIJ nergens controleert wát nu het resultaat is.

Ik ga je geen oplossing geven, ik geef je een zetje in de juiste richting, maar jij mag de oplossing gaan vinden. En je bent er bijna!
je wilt weten wat de errors zijn?

<?
$res = mysql_query($sql,$sql_update) or die(mysql_error());
//werkt niet, Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 45
$res = mysql_query($sql and $sql_update) or die(mysql_error());
//werkt niet, Notice: Undefined variable: sql_update in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 45 Query was empty
$res = mysql_query($sql) or die(mysql_error());
$res = mysql_query($sql_update) or die(mysql_error()); //line 46
//werkt niet, Notice: Undefined variable: sql_update in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 46 Query was empty
$res = mysql_query($sql) and mysql_query($sql_update) or die(mysql_error());
//werkt niet, Notice: Undefined variable: sql_update in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 45 Query was empty
?>
En dat komt omdat JIJ nergens controleert wát nu het resultaat is.


hoe kan ik dat controleren?
Wanneer jij hulp wilt hebben, dan zul je wel de foutmeldingen moeten geven, lijkt mij wel zo logisch.
//werkt niet, Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 45
Hier gebruik je de functie mysql_query() op de verkeerde manier. Gewoon fout dus.
//werkt niet, Notice: Undefined variable: sql_update in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 46 Query was empty
Dit geeft dus aan dat de variabele $sql_update niet bestaat. Waar maak je deze aan?
David schreef op 27.10.2006 18:53
En dat komt omdat JIJ nergens controleert wát nu het resultaat is.


hoe kan ik dat controleren?
Met de functie mysql_affected_rows() kun je opvragen hoeveel records er zijn aangemaakt en/of bijgewerkt.
Dit geeft dus aan dat de variabele $sql_update niet bestaat. Waar maak je deze aan?


op dezelfde manier als $sql?
Uiteraard! Maar op het moment dat jij met de functie mysql_query() deze variabele aanroept, bestaat hij in elk geval niet. Daar doe je dus iets fout.

Reageren