Avatar billede dr_demento Nybegynder
07. juli 2005 - 15:26 Der er 7 kommentarer

flere værdier i een row?

Er der mulighed for at smide flere værdier ind i een row?

Forklaring:

Jeg er ved at lave en webshop, hvor kundens data om brugerid, navn adresse, email osv bliver gemt i en table "kundedb" . Dette fungerer fint.

Dernæst har jeg lavet en ny table der skal tage sig af ordrene, som hedder ordrer. tabellen indeholder rowsene id kundeid og vareid, og skal indsætte en "ordreid" "kundensid" og så varer id numrene.

Jeg bruger følgene query:

$item_id = $row["itemId"];

mysql_query("insert into ordrer (id, kundeid, vareid) values ('0', '$insert_id', '$item_id')");


men i databasen kommer det til at se sådan her ud:

  id kundeid vareid
      1 17 29
      2 17 33
      3 17 34
      4 17 28


Hvordan gør man så alle vareid'er kommer i samme row, så de har en fælles id, istedet for det der?
Avatar billede arne_v Ekspert
07. juli 2005 - 15:40 #1
du kan ikke bruge auto_increment til alle id så

2 muligheder:

1)  generer selv dine id og brug den samme id til de rækker som skal være ens

2)  bruge auto increment men indsæt kun den første med auto increment, hent
    den fundne værd og brug den i de andre insert
Avatar billede beef12 Nybegynder
10. juli 2005 - 01:53 #2
Jeg tror der er noget galt med din datamodel, siden du får brug for det her...
Du burde ikke have brug for at tilknytte varer til kunder på denne måde. Er det ikke nærmere:
1) En kunde kan oprette en (eller flere) ordre.
2) En ordre kan kan indeholde en til flere varer.
3) En vare kan indgå en til flere gange i en ordre.

Derved bør du have tabellerne: kunde, ordre, ordrevare, vare
Hvor ordrevare er en intersection-table imellem tabellerne ordre og varer .

Så ser din ordrevare f.eks. således ud:

ordreid vareid antal
1        216    4
1        100    1
1        101    2
Avatar billede beef12 Nybegynder
20. juli 2005 - 11:01 #3
fik du løst dit problem?
Avatar billede arne_v Ekspert
24. juli 2005 - 15:21 #4
??
Avatar billede dr_demento Nybegynder
29. juli 2005 - 22:55 #5
ja fandte ud af det rimeligt hurtigt ud af det , undskyld ventetiden, glemte helt tråden.
Avatar billede arne_v Ekspert
31. juli 2005 - 16:59 #6
og løsningen var ?

og er der nogen som skal have point ?

og uanset hvad skal spørgsmålet jo lukkes
Avatar billede arne_v Ekspert
03. september 2005 - 19:29 #7
??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester