Toon posts:

vergelijken in twee verschillende mysql tabellen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben op zoek hoe je 2 verschillende tabellen kunt vergelijken in mysql database.
bv: in PHP of ASP.

De bedoeling is het volgende:
we spelen een lotto, de leden kunnen 10 nummers opgeven en deze worden geschrapt wanneer de lottocijfers getrokken worden
de nummers uit de eerste tabel moeten worden vergeleken met de andere nummers uit de andere tabel.
Wanneer er nummers overeenkomen moeten deze nummers een andere kleur krijgen in de weergave.(de nummers of het vakje)

vb: jan pieter 2 3 4 5 16 27 30 33 35 42

lottocijfers: 5 10 22 26 27 30

nu zou dus getal 5, 27en 30 een andere kleur moeten krijgen in de weergve.

weet er iemand hoe ik dit kan doen?
Ik ben nog maar een leek 8)
Alvast bedankt

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Hoe sla je de gegevens op? Toch niet alle getallen in 1 veld he?

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
nee, allemaal verschillende velden
1ste tabel bestaat uit id, naam, voornaam, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10
2de tabel id, n1, n2, n3, n4, n5, n6

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:15

Dido

heforshe

Een tip: dat vergelijken gaat heel veel makkelijker als je je model aanpast naar iets als:

Tabel Personen: PersoonId, naam, voornaam
Tabel PersoonNummer: PersoonId, NummerId, nummer
Tabel Trekkingen: TrekkingId, blaat
Tabel TrekkingNummer: TrekkingId, NummerId, nummer

Je "gevallen nummers" vind je nu met:
code:
1
2
3
SELECT nummer 
  FROM PersoonNummer P LEFT JOIN TrekkingNummer T
   ON P.nummer = T.nummer;

Wat betekent mijn avatar?


Verwijderd

Topicstarter
ok, ik zal de database even aanpassen maar heb toch nog een vraagje,
al de kolommen waar Id in voorkomt moet toch auto increment ingesteld zijn hé?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Verwijderd schreef op dinsdag 07 november 2006 @ 16:05:
ok, ik zal de database even aanpassen maar heb toch nog een vraagje,
al de kolommen waar Id in voorkomt moet toch auto increment ingesteld zijn hé?
Moet niet, maar is vaak wel handig. En natuurlijk alleen als het ID in kwestie een primary key is.

'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.


Verwijderd

Topicstarter
wat wil bij die tabel trekkingen "blaat" zeggen?

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:15

Dido

heforshe

Verwijderd schreef op dinsdag 07 november 2006 @ 16:14:
wat wil bij die tabel trekkingen "blaat" zeggen?
Niets :+
Je kunt extra informatie over je trekking opnemen als je dat wilt (tijd, omschrijving, plaats, whatever).

Wat betekent mijn avatar?


Verwijderd

Topicstarter
ah ok, bedankt ik zal het eens testen

Verwijderd

Topicstarter
Sorry maar ik krijg het niet voor mekaar
Ik heb de database als volgt aangepast :
Tabel Personen: PersoonId, naam, voornaam (PersoonId=auto increment)
Tabel PersoonNummer: PersoonId, NummerId, nummera, nummerb, nummerc, nummerd, nummere, nummerf, nummerg, nummerh, nummeri, nummerj (PersoonId=auto increment)
Tabel Trekkingen: TrekkingId, dag, maand, jaar (TrekkingId=auto increment)
Tabel TrekkingNummer: TrekkingId, NummerId, nummera, nummerb, nummerc, nummerd, nummere, nummerf (TrekkingId=auto increment)

Elk lid geeft dus 10 cijfers van 1 tot 42 op en word bewaard in Tabel PersoonNummer
wanneer de 6 lottonummers getrokken worden worden deze bewaard in Tabel TrekkingNummer

nu weet ik niet hoe ik de zes nummers moet controleren met de opgegeven nummers zodat deze automatisch een andere kleur krijgen op een html resultaat blad. wanneer er nieuwe nummers gepost worden in de database moet dit natuurlijk automatisch verder gaan.
8)7

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Je wilt toch in de PersoonNummer tabel naar de Persoon uit de Personen tabel verwijzen ? ;) Dan moet je natuurlijk wel naar die persoon verwijzen en niet domweg een nieuwe auto-incremented value genereren...

Verwijderd

Topicstarter
inderdaad, en hoe stel ik dit dan in?

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:15

Dido

heforshe

Je wilt in PersoonNummer 10 records per persoon hebben, dat detail heb je denk ik gemist ;)
Dat is de hele reden voo reen aparte tabel, zodat je niet met lastige en onzinnige veldnamen als nummera, nummerb, etc hoeft te werken.

Een voorbeeldje van wat je in je tabellen zou willen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Tabel Persoon

PersoonId | Naam      | Voornaam
----------+-----------+---------
    1     | Jansen    | Klaas
    2     | Pietersen | John

Tabel PersoonNummer

PersoonId | NummerID | Nummer
----------+----------+--------
    1     |    1     |   32
    1     |    2     |   22
    1     |    3     |   11
    1     |    4     |   10
    1     |    5     |   34
    1     |    6     |    5
    1     |    7     |    7
    1     |    8     |   21
    1     |    9     |   29
    1     |   10     |   13
    2     |    1     |    2
    2     |    2     |    8
    2     |    3     |   41
    2     |    4     |   11
    2     |    5     |   34
    2     |    6     |   19
    2     |    7     |   20
    2     |    8     |   23
    2     |    9     |    9
    2     |   10     |   32

Wat betekent mijn avatar?


Verwijderd

Topicstarter
ok ik heb de database aangepast in tabellen zoals Dido voorgesteld heeft.
Om nu automatisch de Id nummers te verhogen hoe doe ik dat?
ik heb volgende script om gegevens te posten:
<?
include("connect.php");

if($_SERVER['REQUEST_METHOD'] == "POST")

{
mysql_query("INSERT INTO Personen (naam,voornaam) VALUES('".$_POST['naam']."','".$_POST['voornaam']."')")or die(mysql_error());
}
{
mysql_query("INSERT INTO PersoonNummer (PersoonId,NummerId,nummer) VALUES('".$_POST['PersoonId']."','".$_POST['NummerId']."','".$_POST['nummer']."')")or die(mysql_error());
}

echo "<blockquote><b><font face='Verdana' size='4'>Deelnemer toevoegen:</font></b><br /></blockquote>";
echo "<hr size='1' align='left' width='100%' color='#000000' />";
echo "<form method='post'>";
echo "<blockquote><font face='Verdana' size='2'>Naam:</font><br />";
echo "<input name='naam' type='text'><br />";
echo "<font face='Verdana' size='2'>Voornaam:</font><br />";
echo "<input name='voornaam' type='text'><br />";
echo "<font face='Verdana' size='2'>nummer 1:</font><br />";
echo "<input name=''nummer' type='text' size='2' maxlength='2'><br />";
echo "<font face='Verdana' size='2'>nummer 2:</font><br />";
echo "<input name=''nummer' type='text' size='2' maxlength='2'><br />";
echo "<font face='Verdana' size='2'>nummer 3:</font><br />";
echo "<input name=''nummer' type='text' size='2' maxlength='2'><br />";
echo "<font face='Verdana' size='2'>nummer 4:</font><br />";
echo "<input name=''nummer' type='text' size='2' maxlength='2'><br />";
echo "<font face='Verdana' size='2'>nummer 5:</font><br />";
echo "<input name=''nummer' type='text' size='2' maxlength='2'><br />";
echo "<font face='Verdana' size='2'>nummer 6:</font><br />";
echo "<input name=''nummer' type='text' size='2' maxlength='2'><br />";
echo "<font face='Verdana' size='2'>nummer 7:</font><br />";
echo "<input name=''nummer' type='text' size='2' maxlength='2'><br />";
echo "<font face='Verdana' size='2'>nummer 8:</font><br />";
echo "<input name=''nummer' type='text' size='2' maxlength='2'><br />";
echo "<font face='Verdana' size='2'>nummer 9:</font><br />";
echo "<input name=''nummer' type='text' size='2' maxlength='2'><br />";
echo "<font face='Verdana' size='2'>nummer 10:</font><br />";
echo "<input name=''nummer' type='text' size='2' maxlength='2'><br />";
echo "<br />";
echo "<input type='submit' name='submit' value='Bevestigen'></form>";

?>

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Welke ID-nummers wil je automatisch verhogen dan? :?

'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.


Verwijderd

Topicstarter
Als ik nu een nieuwe deelnemer toevoeg dan wordt PersoonId met 1 verhoogt (auto increment)
in tabel Persoonnummer heb ik auto increment uitgeschakkeld omdat er tien nummers ondereen geplaats worden staat er tien keer ondereen dezelde persoonId en 10 keer oplopende id voor NummerId.
ik wil niet telkens op het form de id nummer in geven.
dus wil dat de id nummers in tabel persoonNummers automatisch aangepast worden.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Dat hoeft toch niet? Je kan daar gewoon een samengestelde primary key opnemen die bestaat uit PersoonID en NummerID. Dat is toch al uniek? Je zou verder een apart veld als primary key kunnen opnemen dat niet meer tot doel heeft dan een autoincrement unieke waarde te bevatten, maar dat is aan jou om te beslissen. Sowieso is een uniek-modifier op de combinatie van beide genoemde kolommen wel aan te raden.

'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.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 28-11 22:35

MBV

Misschien wordt het tijd om een database-boek door te nemen (of een online boek), en dan vooral m.b.t. normalisatie. Dit lijkt mij wel erg basic :)

Verwijderd

Topicstarter
is allemaal nog wat chinees voor mij hoor.
hoe kan ik die samengestelde primary key instellen?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

[google=mysql compound key]

'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.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

is allemaal nog wat chinees voor mij hoor
Begin dan ook bij het begin en luister wat MBV in "vergelijken in twee verschillende mysql ..." te zeggen heeft ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1