Toon posts:

[sql] hulp gevraagd bij schema

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik wil dus een site gaan maken als someonelikesyou.com maar dan zonder spam, dus je vult in wie je leuk vind, en de ander moet dan raden dat jij het was.

nou heb ik alles dus in 1 table:
code:
1
2
3
4
5
6
7
8
9
10
Table: Leden

ID
email
vnaam
anaam
geslacht
woonplaats
geboorted
matches

in de velden komen dan dus de gegevens van mensen die zich inschrijven en bij komen dan de email's van degene die hij/zij leuk vind.

maar als ik nu wil kijken aan de hand van een emailadres of iemand hem haar leuk vind, moet ik dus bij de betreffende ID kijken of zijn/haar email bij het lijstje bij matches staat.

die moet ik dat dus 1 voor 1 splitten en kijken of het adres erbij staat, zijn dit niet wat veel queries? kan het niet wat efficienter?

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
je roept toch maar een query aan en daarna laat je er een explode() (in het geval van php, ga ik even van uit) op los om die emailadressen te splitten. Daarna checken met bijvoorbeeld de in_array() functie.

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 05-09 12:32

gorgi_19

Kruimeltjes zijn weer op :9

Ik snap er helemaal niets van.

Dat emailadres, is dat nu van de 'gelukkige' of van de persoon zelf? En dat matches, waar slaat dat op? Waar moet nu precies op gezocht worden?

Wat bedoel je met dat splitten? Die aantallen queries vallen toch wel mee? Stel je wilt zoeken op vnaam of achternaam, dan is de query:

select ID FROM Leden WHERE vnaam='voornaam' OR anaam='achternaam'

Vervolgens controleer je of de recordset leeg is (geen match) of niet (wel een match en laat je de waarden zien)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
jij wordt lid,
jouw record wordt aangemaakt en je gegevens worden ingevuld.
je vult bijv 2 emailadressen in van mensen die je leuk vind.

het systeem stuurt dan een meeltje naar de betreffende persoon, die zich dan gaat raden naar het emailadres van zijn geheime aanbidder

dan moet ik dus controleren of het emailadres dat hij invult van 1 van de dames is, en of de betreffende dame hem leuk vind of niet.

maar ik snapte net mezelf al niet helemaal maar k denk dat ik het nou wel begrijp

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
zoals ik het nu begrijp staan er dus in de matches 2 mailadresjes. Die 2 mensen komen (hopelijk) op de site en gaan daar dan raden. Jij (het systeem) weet van welk id ze moeten gaan raden. Het emailadres van de bezoeker moet ook bij het systeem bekend zijn maar kan via de link die gestuurd wordt meegegeven worden. Dus:

[half pseudo]
code:
1
2
3
4
5
6
7
8
SELECT matches FROM leden WHERE id='$id'

mysql_fetch enzo

$bla = explode(';', $matches);

if (in_array($bezoeker_email, $bla) ( // correct }
else { // fout }

[/half pseudo]

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 05-09 12:32

gorgi_19

Kruimeltjes zijn weer op :9

Nu begin ik het te begrijpen.
Ik zou twee tabellen nemen

1: Leden
LidID Int
Email VarChar(50)
VNaam VarChar(50)
ANaam Varchar(50)
Tussenvoegsels Varchar(50)
Geslacht Varchar(1)
Woonplaats varchar(50)
Geboortedatum dateTime

2: Matches
MatchID int (autoincrement)
LidID int
Email VarChar(50) (Dit is het emailadres van de 'gelukkige')

Stap 2: maak een join tussen de LidID's van de tabellen

Stap 3: Maak een query, waarin je deze twee joint.

[edit]
Of als je ze zeker weet dat ze er maximaal 2 invullen, dan kan je gewoon match1 en match2 kiezen en hier een query op loslaten
[/edit[

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1