Toon posts:

[PHP&MYSQL] insert meerdere tabellen

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo,


heb drie tabellen (bedrijven,adressen,users)
nou wil ik dmv gegevens uit een formulier een insert doen in deze tabellen (in een keer). ik heb gezocht en gevonden dat dit in mysql&php niet mogelijk zou zijn, maar dat er wel aan gewerkt wordt om dit in de toekomst te ondersteunen. weet iemand van u meschien een manier om dit op te lossen of een link naar een pagina waar dit wordt uitgelegd.

mvr

jos

  • smaij
  • Registratie: November 2000
  • Laatst online: 20:39
Ik zie het nut er niet van, alleen dat het wat prestatiewinst is... zowiezo, gebruik je dan ook auto increment, en hoe wou je die ID's dan aan elkaar koppelen. het is nu wel al mogelijk volwaardige foreign keys te gebruiken, en daar ga ik zo snel als er een windows binary voor komt naar kijken :P

Verwijderd

Nah heeft helemaal geen nut om het zo te doen...
Ik zou gewoon 3 statements naar de DB knallen! :)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Dit kan niet en wil je ook niet. Gewoon drie inserts.
PS: lees de FAQ en je ziet dat aanhef en afsluiting weg kunnen bij je post. Bovendien staan daar ook andere leuke links om SQL en PHP te leren. Wat voor jou?

  • smaij
  • Registratie: November 2000
  • Laatst online: 20:39
lol... en ik ging er nog wel serieus op in ;(

Verwijderd

Topicstarter
leren, daar ben ik inderdaad mee bezig heb boeken zat, maar daar staat niet in vermeld hoe je een insert in meerdere tabellen doet of hoe dit kunt oplossen met een andere functie / heb op php.net gezocht in databases. uit de reacties hier heb ik dus begrepen dat je dit wel kunt oplossen met een andere functie?

  • steenz
  • Registratie: Oktober 2000
  • Laatst online: 21-09-2024
Ligt het nou aan mij of kun je gewoon in plaats van 1 insert in meerdere tabellen gewoon meerdere inserts doen in ieder 1 tabel???

  • smaij
  • Registratie: November 2000
  • Laatst online: 20:39
Uhmm.. wees aub duidelijk. Geef je tabelstructuur anders. Je kan toch gewoon voor elke tabel een apparte insert doen?
Als je dan een ID koppelt aan elke tabel, met de hoofdtabel auto increment, kan je die in elke andere tabel ook zetten, door middel van LAST_INTERTED_ID ofzo..
maar ik snap nu ff niet meer wat je bedoelt.. als er geen functie voor is, dan maak je die zelf toch :S

Verwijderd

Topicstarter
heb dus een formulier waarin bedrijf, user en adresgegevens moet worden ingevuld. nou wil ik als ik bv op de knop send druk dat al mijn tabellen gelijktijdig worden bijgewerkt (tabellen: bedrijfgegevens, users, adressen).

tabel adressen:

adres_id int(5) PRI auto_increment
user_id int(10) NOT NULL
bedrijfs_id int(6) NOT NULL
adres varchar(50) nummer varchar(4)
toevoeging varchar(6) postcode varchar(4)
plaats varchar(50)
land varchar(50)


tabel users:

user_id int(10) PRI auto_increment
bedrijfs_id int(6) NOT NULL
afdeling varchar(50)
voornaam varchar(50) tussenvoegsel varchar(10) YES
achternaam varchar(50)
emailadres varchar(50)
website varchar(50) YES

bedrijven

bedrijfs_id int(6) PRI auto_increment
bedrijfsnaam varchar(50)
kvk_nummer varchar(8)
btw_nummer char(15)

ik denk dat de structuur van deze tabellen toch best in orde is? - tips altijd welkom

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23:24

BierPul

2 koffie graag

[opmerking mode]
postcode bestaat uit 6 of 7 karakters een varchar(4) lijkt me wat krap
[/opmerking mode]

Nu ff nar je echte probleem kijken :P

Ja man


  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 22:11

TheDane

1.618

$user_id = "userIdFromSequence";
$bedrijf_id = "bedrijfIdFromSequence";
$adres_id = "adresIdFromSequence";

insert into adressen ( $adres_id, $user_id, bla bla bla);

insert into users ($user_id, $bedrijf_id, bla bla bla);

insert into bedrijven ($bedrijf_id, bla bla bla);

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23:24

BierPul

2 koffie graag

Zowiezo vindt ik je tabel structuur een beetje appart
waarom adres tabel los van bedrijven :?

Ik neem aan dat dit de adressen zijn bij de bedrijven.

Ik zou het zo doen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
tabel adressen:
bedrijfs_id int
bedrijfsnaam 
kvk_nummer  
btw_nummer  
adres  
toevoeging 
postcode  
plaats 
land  


tabel users:

user_id 
bedrijfs_id
afdeling  
voornaam 
tussenvoegsel  
achternaam  
emailadres  
website

Geen telefoon nummers trouwens :?

Je zou eventueel afdelingen ook nog kunnen uit normaliseren.

Maar ik zou gewoon een form maken om berijven toe te voegen en die aan de users koppelen

Via een selectbox in een form ofzow :)

Je kan ook een slectbox hebben voor bestaande staat het bedrijf er niet tussen dat ze de velden voor een nieuw bedrijf invullen zeg maar :)

Dan draai je eerst de insert vor nieuw bedrijf
PHP:
1
<?   if($nw_bedrijf != '') {       $query = mysql_query("INSERT nieuwbedrijf blabdiebla");       $bedrijf_id = mysql_insert_id($query); } ?>

en dan duw je het berijf id in de users tabel.

Moet je wel checken of neit beide waardes worden ingevoerd want dan krijg je rotzooi :P

Ja man

Pagina: 1