[php][mysql] meerdere waardes in 1 cell

Pagina: 1
Acties:

  • MadMurdock
  • Registratie: Oktober 2000
  • Niet online
Hoi,
Ik ben op 't moment bezig met een inlogsysteempje via php wat ook rekening houdt, met het ip-adres waarvandaan je inlogt. Deze 'geldige' ip-adressen willen we opslaan in een database. Echter we willen dat er meerdere ip adressen in 1 cell kunnen (anders moeten we x-onbekend kolommen maken).

Heeft iemand enig idee hoe je zoiets doet, dat je de waardes bijv. door een komma kan scheiden ofzo. De stringen die hierdoor ontstaan dienen uiteraard later weet geslitst te worden.

Alvast bedankt.

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Je kunt toch een aparte tabel maken om users en addresses te koppelen? Dan kun je gewoon meer rijen per gebruiker toelaten.

  • MadMurdock
  • Registratie: Oktober 2000
  • Niet online
mja.. dat zou eigenlijk ook wel kunnen ja..

  • RobzQ
  • Registratie: Februari 2000
  • Laatst online: 21-12-2020

RobzQ

greedy as a pig

Of de uitzonderingen eruit filteren (is misschien handiger als je een grote site wil maken, waarschijnlijk zijn er dan meer mensen die wel mogen als mensen die niet mogen).

En idd een extra tabel van maken:

Users:
ID (Unique id)
Name (Usernaam)
Email (email)

IPS:
ID (Unique ID)
IP (IP adressen)
UID (User ID's)

of iets in die geest..

..so be wary of any man who keeps a pig farm..


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

of implode-en voor je de 'cel' in de db propt en vervolgens explode-en als je de
data opvraagt ....

kan gloof ik ook met serialize en unserialize

Verwijderd

Je kan natuurlijk ook de string opslaan in 1 veld en dan op de ouderwetse manier (met explode) de losse waarden vekrijgen. Stel je wil ze door een kommaa scheiden dan roep je de string op uit de database en dan doe je iets als: $string .= ",".$ip; en dat sla je dan weer op, de uiteindelijke string kun je dan uiteindelijk via explode(",",$string) weer omzetten in een array van IP-adressen.
Niet dat het met een losse tabel ook geen mooie oplossing is, maar zo kan het ook...

hmmja, was ik dus net te laat mee...

Verwijderd

Nooit van het normalisatie-proces gehoord ?
Iedere kolom moet een atomische waarde bevatten. Dit betekent dat er slechts één waarde per cel mag worden opgeslagen. Een cel mag geen array of andere structuur met meerdere waarden bevatten.
En het werken met ip adressen lijkt me niet verstandig, stel iemand heeft een dynamische ip of zit achter een proxy ? of wilt via een andere locatie inloggen ? Echt gebruiksvriendelijk is je systeem niet.

  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Op maandag 04 februari 2002 19:55 schreef RealGamer het volgende:

Nooit van het normalisatie-proces gehoord ?
Inderdaad, normalisatie is the way to go. Met serialize functies kan het ook, maar dan kan je weer niet direct zoeken vanuit mySQL.

Daar wordt je script dus alleen maar trager van omdat hij een handeling extra moet doen.
Pagina: 1