INSERT Query 2 tabellen 1 waarde

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wouter Krooshof

Wouter Krooshof

31/03/2011 11:33:40
Quote Anchor link
Hallo,

Ik heb 2 tabellen, Route en Status; deze hebben beide een Statuscode.
Nu moet ik d.m.v een insert variabelen toevoegen aan BEIDE tabellen, maar de Statuscode moet uniek zijn; maar toch gelijk aan elkaar.

Dus Route en Status moeten dezelfde statuscode hebben (relatie met foreign key)
Maar aangezien mijn tabellen gebruik maken van MyISAM, hoe moet ik dit dan oplossen?

Dus dan heb ik uiteindelijk:
Route Status
Statuscode 3 Statuscode 3
Deze moeten altijd gelijk zijn. En i kkan deze niet van te voren defineren als variabele aangezien het een primary key is.
 
PHP hulp

PHP hulp

09/01/2025 11:28:31
 
John D

John D

31/03/2011 12:44:18
Quote Anchor link
Heeft niets met MyISAM maar eerder met je datamodel. Het kan best primary key zijn maar niet in beide tabellen. Je kan de eerste inserten, opvragen (SELECT) en dan als foreign key in de tweede tabel inserten. Je kan je key ook op een andere manier genereren (dus zonder autoincrement werken).
 
Wouter Krooshof

Wouter Krooshof

31/03/2011 12:48:22
Quote Anchor link
Maar hoe insert ik dan dezelfde waarde in zowel tabel 1 als tabel 2?
Is het niet mogelijk om d.m.v subqueries alles toe te voegen?

Toevoeging op 31/03/2011 13:29:06:

Okay, ik heb de Code opgelost door eerst de status toe te voegen en dan de Max op te vragen, aangezien Statuscode steeds 1 op hoogt. Maar.. ik krijg een foutmelding doordat ik:
Quote:
if (!$statusqry OR !$routeqry) {
die('Het toevoegen aan de database is mislukt ' . mysql_error()); }
else { echo 'Route toegevoegd met de status: "'.$status.'"'; }


Maar er wordt geen Mysql Error gegeven, dus ik heb geen idee wat er nou mis gaat.



Dit is de code:
Quote:
$statusqry = mysql_query("INSERT INTO status(Status, Inboekdatum, Actief, Inboeker) VALUES ('".$status."', NOW(), ".$actief.", '".$inboeker."')");
$test = mysql_query("SELECT MAX(Statuscode) FROM status");
$routeqry = mysql_query("INSERT INTO route(Statuscode, Datum, Inboeker, Inboekdatum) VALUES ('".$test."', '".$datum."', '".$inboeker."', NOW())");
Gewijzigd op 31/03/2011 13:30:19 door Wouter Krooshof
 
Wouter Krooshof

Wouter Krooshof

04/04/2011 17:21:20
Quote Anchor link
Bump?:D
 
Dennis meijer

dennis meijer

04/04/2011 17:49:48
Quote Anchor link
Die check die je doet...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$test = mysql_query("SELECT MAX(Statuscode) FROM status");


Die moet je natuurlijk wel eerst omzetten maar waarom zoveel moeite...

Je wilt beide statuscode's hetzelfde hebben dus waarom niet meteen $status nog een keer gebruiken...

Probeer dit eens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$statusqry = mysql_query("INSERT INTO status(Status, Inboekdatum, Actief, Inboeker) VALUES ('".$status."', NOW(), ".$actief.", '".$inboeker."')");

$routeqry = mysql_query("INSERT INTO route(Statuscode, Datum, Inboeker, Inboekdatum) VALUES ('".$status."', '".$datum."', '".$inboeker."', NOW())");
 



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.