Toon posts:

Invoegen in meerdere tabellen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb o.a. de volgende tabellen:

Orders:
- Orderid
- Datum
- Klantid

Orderspecificatie:
- Orderid
- Productid
- Aantal

Nu is mijn vraag hoe maak ik een formulier en de bijbehorende mysql code, ik heb vanalles geprobeerd maar ik krijg het niet voor elkaar.

Bij voorbaat dank

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:18

gorgi_19

Kruimeltjes zijn weer op :9

Erhm.. Wat lukt er precies niet? Wat is "van alles"; dit leverde vast wel foutmeldingen op.
Nu is mijn vraag hoe maak ik een formulier en de bijbehorende mysql code
formulier? :? Wat voor formulier? Wat moet het kunnen? Overzichtsformulier? Bewerken? toevoegen?

En net als in je vorige topic kan ik nog steeds geen taal raden.

En verder klopt je tabellenstructuur niet; er moet nog een orderspecificatieID bij, aangezien er een 1:n relatie normaliter is tussen Orders en orderspecificatie. Is deze 1:1, dan kan je beide tabellen zelfs samenvoegen.

[ Voor 145% gewijzigd door gorgi_19 op 18-01-2004 16:33 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Sorry dat ik zo vaag ben.

- Ik programmeer in php en mysql
- In de tabel orderspecificatie heb ik wel een orderspecificatieid (was vergeten te vermelden)

Het INVOEGformulier moet het volgende kunnen:
- Uit een keuze lijst een klant selecteren, het id dan toevoegen aan de tabel orders
- Een variabel aantal producten toevoegen aan de tabel orderspecificatie, met dezlefde orderid die door de auto-increment wordt aangemaakt in de tabel orders.

Ik hoop dat ik het zo verduidelijkt heb.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:18

gorgi_19

Kruimeltjes zijn weer op :9

En nu: Waar zit het probleem?

Je hebt nu duidelijk omschreven wat je wilt en op welk platform het werkt. Alleen niet waar nu je specifieke probleem zit met foutmelding, code, etc.

[ Voor 73% gewijzigd door gorgi_19 op 18-01-2004 16:47 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:12
Bedoel je misschien de functie mysql insert id? Je voegt dus een rij in orders in, de id krijg je dan dus door de functie mysql_insert_id te runnen. Die kun je dan weer in orderspecificatie plaatsen.

Verwijderd

Topicstarter
Dus als ik het goed begrijp voeg je eerst de gegevens in tabel orders in. Dan vraag je die orderid weerop, en met daarmee voeg je dan de gegevens in de tabel orderspecificatie in.

Alleen snap ik niet goed wat je met de functie mysql_insert_id bedoelt.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:18

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 18 januari 2004 @ 16:54:
Dus als ik het goed begrijp voeg je eerst de gegevens in tabel orders in. Dan vraag je die orderid weerop, en met daarmee voeg je dan de gegevens in de tabel orderspecificatie in.

Alleen snap ik niet goed wat je met de functie mysql_insert_id bedoelt.
Hoe weet je anders het OrderID?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:12
Alleen snap ik niet goed wat je met de functie mysql_insert_id bedoelt.
Na het invoeren van de rij in orders geeft de functie mysql insert id de orderid terug. Als je nu een rij invoert in orderspecificatie zal de functie niet meer de orderid teruggeven maar de id van de rij die je in orderspecificatie in hebt gevuld.

  • damanseb
  • Registratie: Maart 2002
  • Laatst online: 24-07-2025
Waarom 2 tabellen gebruiken als je net zo goed alles in 1 tabel kan stoppen?

dat extra veld moet in de table orders komen.. niet in orderspec. .. althans dat is een meer logische benadering

Mischien verstandig eerst een over je database ontwerp te denken voor je gaat coden?

Hieronder alsnog jouw feestje:

Orders tabel:
- orderID
- orderDatum
- orderKlantID

Orderspec tabel:
- orderSpecID
- orderSpecOrderID
- orderSpecProductID
- orderSpecAantal

uit je form haal je de klantID, productID en Aantal
Dit stop je eerst in Orders tabel
<?php
// eerst klant invoegen
$sql = "INSERT INTO Orders (orderKlantID) VALUES (". $_REQUEST["formKlantID"] .")";
$connection = mysql_connect("localhost","root","") or die("Could not connect: " . mysql_error());
mysql_query($sql) or die("Could not insert into database: " . mysql_error());
// toegevoegde auto-increment id opslaan in $toegevoegdeID
$toegevoegdeID = mysql_insert_id();

$sql = "INSERT INTO OrderSpec (orderSpecOrderID, orderSpecProductID, orderSpecAantal) VALUES (". $toegevoegdeID .",". $_REQUEST["formProductID"] .",". $_REQUEST["formAantal"] .")";
// $toegevoegdeID gebruiken om op te slaan in orderspec
$connection = mysql_connect("localhost","root","") or die("Could not connect: " . mysql_error());
mysql_query($sql) or die("Could not insert into database: " . mysql_error());
mysql_close($connection);
?>

Wellicht dat dit alles ook mogelijk is door verschillende commandos te combineren in 1 SQL query doormiddel van het joinen van tabellen maar daar heb ik ff geen zin in..
alsnog een link naar sql join syntax: http://www.w3schools.com/sql/sql_join.asp

[ Voor 17% gewijzigd door damanseb op 18-01-2004 17:33 ]


Verwijderd

Topicstarter
Heel erg bedankt voor jullie reacties allemaal.
Pagina: 1