[PHP] Veld met meerdere variabelen uitlezen

Pagina: 1
Acties:

Onderwerpen


  • ericck
  • Registratie: Augustus 2001
  • Laatst online: 20-09 23:15
Ik heb een veld in een MySQL database genaamd 'wieiserbij' waar meerdere ID's instaan gescheiden door een komma.
De inhoud van dit veld kan bijvoorbeeld zijn:
23,88,90 of
12,84,291,1
enz.

Elk nummer is gekoppeld aan een naam. Hoe kan ik nou met een handig stukje code al deze namen laten zien?

In andere woorden: In het eerste rijtje moeten de namen behorende bij ID 23, 88 en 90 worden weergegeven op het scherm.
De ID's zijn altijd gescheiden door een komma en elk veld bevat tussen de 0 en 20 ID's.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Een handig stukje code is een inner join op je user tabel. Maar aangezien je gebruik maakt van een brak datamodel, kan dat niet. Dus ik zou eerst maar eens zorgen dat je datamodel in orde komt voordat je bovenop dat brakke model ook nog 's brakke code gaat stapelen.

En als je daar geen zin in hebt moet je maar 's naar de functie explode () van PHP kijken.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • ericck
  • Registratie: Augustus 2001
  • Laatst online: 20-09 23:15
Bedankt.
Ik ben een redelijke newbie op het gebied van PHP.
Dit 'datamodel' heb ik net bedacht.
Heb je misschien een beter suggestie voor een ander datamodel? Ik heb gekeken naar ENUM, maar dat is volgens mij niet geschikt in dit geval.

edit: de syntax van inner join ziet er goed uit. Dat is wel wat ik nodig heb. Alleen moet ik nu nog een goede manier vinden om de ID's te storen in een veld (of meerdere velden?).

[ Voor 30% gewijzigd door ericck op 10-02-2005 21:06 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

ericck schreef op donderdag 10 februari 2005 @ 21:04:
Bedankt.
Ik ben een redelijke newbie op het gebied van PHP.
Dit 'datamodel' heb ik net bedacht.
Heb je misschien een beter suggestie voor een ander datamodel? Ik heb gekeken naar ENUM, maar dat is volgens mij niet geschikt in dit geval.

edit: de syntax van inner join ziet er goed uit. Dat is wel wat ik nodig heb. Alleen moet ik nu nog een goede manier vinden om de ID's te storen in een veld (of meerdere velden?).
Enum is een datatype, en maakt je datamodel echt niet beter. Een set is wel een mogelijkheid, maar daar wordt je datamodel nog steeds niet beter van. Struin Google maar eens af over het normaliseren van een database, dan kom je er wel uit. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Je wilt nu in 1 tabel een veel-op-veel (n:m) relatie opslaan. Wat je nodig hebt is een koppeltabel die relaties bewaart tussen de twee tabellen (of beter gezegd: entities). Je doet dit door in 1 tabel met 2 velden als primary key (tabel_a_id en tabel_b_id) de waarden op te slaan van de primary keys van de andere tabellen.

Dit is redelijk basic materie, dus er is vast wel meer over te vinden.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • ericck
  • Registratie: Augustus 2001
  • Laatst online: 20-09 23:15
drm, dat is al een stukje dichter bij mijn oplossing.

Stel ik heb 3 uitjes in tabel 1 staan in het veld ACTIVITEITEN: (1) vissen, (2) tennissen en (3) rennen.
In tabel 2 heb ik in het veld NAAM een naam staan die gekoppeld is aan een ID (primary key): (id=1,naam=Jan) (id=2, naam=Piet)
Nu wil ik voor elke activiteit in tabel 1 aangeven wie er meegaan (welke ID's uit tabel 2) op deze activiteit.

... Ik heb het gevoel dat dat niet moeilijk moet zijn.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Nee, dat is het ook niet. Stel dat Piet wil vissen en tennissen, dan komt er in die koppeltabel te staan:
uitje_idpersoon_id
12
22

Als piet besluit niet meer te gaan vissen, haal je het record weg waar uitje_id=1 en persoon_id=2. Als hij besluit te gaan rennen en Jan meeneemt, komen er 2 records bij:
uitje_idpersoon_id
31
32

[ Voor 6% gewijzigd door drm op 10-02-2005 21:29 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • ericck
  • Registratie: Augustus 2001
  • Laatst online: 20-09 23:15
Helemaal duidelijk! Bedankt voor je tijd.
Pagina: 1