| 1 2 3 | a_id,datum,waar,wat 1,2011-02-17,locatie,workshop 2,2011-02-18,locatie,meeting |
| 1 2 3 4 5 6 7 | a_id,g_id,status 1,1,Ja 1,2,Nee 1,3,Onbekend 2,1,Nee 2,2,Onbekend 2,3,Ja |
quote:Op donderdag 17 februari 2011 10:38 schreef KomtTijd... het volgende:
Welke joepmeloen verzint er nou kolomnamen als "waar" en "wat"?
Had even zijn voorbeeld gebruikt. Het is om het idee even duidelijk te maken. Zolang het idee maar van tafel is, dat voor iedere datum een aparte tabel/kolom moet worden aangemaaktquote:Op donderdag 17 februari 2011 08:48 schreef MrNiles het volgende:
omdat het toevoegen van een kolom dmv een variable niet echt goed werk ontvangen hier
moet ik dus redelijk opnieuw beginnen
om het nu een beter inzicht te krijgen hoe ik de db moet opbouwen heb ik jullie opbouwende kritiek nodig
ik wil dus dat een gebruiker op een bepaalde datum kan aangeven of hij wel of niet aanwezig is
tabel 1
uniek gebruikers id (G_id)
gebruikers naam (G_name)
tabel 2
afspraak id (A_id)
datum
wat
waar
tabel 3
G_id
A_id
aanwezig (j/n/?)
Tabel 3 zal voor elke unieke afspraak zijn:
Tabel 3 voor datum1
Tabel 4 voor datum2
Tabel 5 voor datum3 etc etc
Klopt deze opzet?
wat is het probleem?quote:Welke joepmeloen verzint er nou kolomnamen als "waar" en "wat"?
Het probleem is, dat als je geen beschrijvende kolomnamen gebruikt, je over een week al geen flauw benul meer hebt wat je query in hemelsnaam doet.quote:Op donderdag 17 februari 2011 10:43 schreef MrNiles het volgende:
[..]
wat is het probleem?
zolang je geen WHERE ofzo gaat gebruiken..dan lijkt me dat toch niet zo'n probleem
of mis ik iets...stomme vraag..ik mis een heleboel op php/sql..maar goed..
op die fiets...tja..hoeveel uitgebreider moet het zijn?quote:Het probleem is, dat als je geen beschrijvende kolomnamen gebruikt, je over een week al geen flauw benul meer hebt wat je query in hemelsnaam doet.
Ik gebruik zelf altijd Engelse namen voor tabellen en kolommen. Maar als je het in het NL wilt houden kan je iets doen als locatie en onderwerp.quote:Op donderdag 17 februari 2011 11:01 schreef MrNiles het volgende:
[..]
op die fiets...tja..hoeveel uitgebreider moet het zijn?
ik weet toch wat die waar en wat betekenen in dit geval
maar doe eens een voorstel hoe het zou kunnen zijn
OK..ik heb het probleem eigenlijk met alle file namen..die ben ik nu dus ook maar beter aan het benoemen...edit2 en verwerken3 dan raak je al snel de draad kwijtquote:Ik gebruik zelf altijd Engelse namen voor tabellen en kolommen. Maar als je het in het NL wilt houden kan je iets doen als locatie en onderwerp.
hopelijk kom ik niet stom over als ik vraag dat dit een daadwerkelijk tabel is en niet iets gegenereerd vanuit een join oidquote:Maar snap je het idee van de koppeltabel?
Helemaal als je Engelse en Nederlandse namen door elkaar gebruikt kan ik me dat voorstellen. Leer je aan om een bepaalde structuur (vaste namen en taal voor iets) te gebruiken. Nu weet je nog waar alles staat, maar weet je dat over een half jaar ook nog als je iets wil aanpassen?quote:Op donderdag 17 februari 2011 11:10 schreef MrNiles het volgende:
[..]
OK..ik heb het probleem eigenlijk met alle file namen..die ben ik nu dus ook maar beter aan het benoemen...edit2 en verwerken3 dan raak je al snel de draad kwijt
[..]
hopelijk kom ik niet stom over als ik vraag dat dit een daadwerkelijk tabel is en niet iets gegenereerd vanuit een join oid
ik begin m te vattenquote:Die koppeltabel is inderdaad een vaste tabel. Die moet je dan ook gewoon aanmaken.
Ik had ergens op deze pagina een voorbeeldquery gemaakt. Kan je vast wel wat mee.quote:Op donderdag 17 februari 2011 11:30 schreef MrNiles het volgende:
[..]
ik begin m te vatten
nu ff bedenken hoe ik dit om kan toveren tot een goede (inner) join zodat ik iets om mijn scherm krijg te zien
| 1 2 3 4 5 6 7 | <?php SELECT g.name FROM gebruikers AS g INNER JOIN koppeltabel k ON ( k.g_id = g.g_id ) INNER JOIN afspraak a ON ( k.a_id = a.a_id ) WHERE a.datum = '".mysql_real_escape_string($datum)."' "); ?> |
Ja klopt. Je kan k ook weglaten geloof ik maar moet je de volledige tabelnaam voor de kolommen gebruiken (koppeltabel.g_id = gebruikers.g_id)quote:Op donderdag 17 februari 2011 11:43 schreef MrNiles het volgende:
ben aan het kijken
[ code verwijderd ]
wat is die K bij INNER JOIN koppeltabel k
benoem je die koppeltabel nu als k voor de vergelijking daarachter?
| 1 2 3 | <?php var_dump(get_defined_vars()); ? ?> |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $commando= "SELECT gebruikers.G_id, gebruikers.G_name, optredens.O_id, FROM optredens, gebruikers INNER JOIN koppeltabel ON (koppeltabel.G_id=gebruikers.G_id) INNER JOIN optredens ON (koppeltabel.O_id=optredens.O_id) WHERE koppeltabel.O_id=$id AND koppeltabel.aanwezig='o' "; $resultaat=mysql_query($commando); echo "Deze mensen hebben nog niets laten weten"; while($array=mysql_fetch_array($resultaat)){ echo "<br />"; echo "<a href=\"aanwezig_edit.php?name=".$array['G_name']."&id=".$array['O_id']." \"> ".$array['G_name']."</a>"; } ?> |
En dit werkt niet? Probeer de code eens uit in phpmyadmin en verander $id naar een id die bestaat. Kijk dan of je resultaat krijgt.quote:Op donderdag 17 februari 2011 13:02 schreef MrNiles het volgende:
kan iemand op mijn code schieten?
[ code verwijderd ]
op deze manier hoop ik de mensen (G_name) te filteren die nog status "o" hebben
| 1 2 3 4 5 6 7 | <?php SELECT gebruikers.*, optredens.*, koppeltabel.* FROM gebruikers INNER JOIN koppeltabel ON (koppeltabel.G_id=gebruikers.G_id) INNER JOIN optredens ON (koppeltabel.O_id=optredens.O_id) WHERE koppeltabel.O_id=$id AND koppeltabel.aanwezig='o' ?> |
Altijd leuk, queries tussen je html-output.quote:Op donderdag 17 februari 2011 13:02 schreef MrNiles het volgende:
kan iemand op mijn code schieten?
[ code verwijderd ]
op deze manier hoop ik de mensen (G_name) te filteren die nog status "o" hebben
beter zo?quote:Altijd leuk, queries tussen je html-output.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php echo "Deze mensen hebben nog niets laten weten"; echo "<br />"; $commando_ja= "SELECT gebruikers.*, optredens.*, koppeltabel.* FROM gebruikers INNER JOIN koppeltabel ON (koppeltabel.G_id=gebruikers.G_id) INNER JOIN optredens ON (koppeltabel.O_id=optredens.O_id) WHERE koppeltabel.O_id=$id AND koppeltabel.aanwezig='o' "; $resultaat=mysql_query($commando_ja); while($array=mysql_fetch_array($resultaat)){ echo "<a href=\"aanwezig_edit.php?G_name=".$array['G_name']."&O_id=".$array['O_id']."&G_id=".$array['G_id']." \"> ".$array['G_name']."</a>"; echo "<br />"; } ?> |
dat is de bedoelingquote:Die array loop je in je html output door en geef je de namen weer. Zo hou je de queries gescheiden van de html.
| 1 2 3 4 5 6 7 8 | <?php $people_present = get_present(); foreach($people_present as $people) { echo hier de link naar aanwezig_edit.php } ?> |
| 1 2 3 | <?php $people_aanwezig = get_people($date,$event,"Ja"); // mensen op datum die aanwezig zijn ("ja") ?> |
| 1 2 3 4 5 6 7 8 9 | <?php function get_people($date,$event,$status) { // aan het einde return $array; } ?> |
Goed! het systeem zoekt nu op het hele woord en niet op delen!quote:
Welk forum, en op welk woord zoek je?quote:Op donderdag 17 februari 2011 18:07 schreef Chandler het volgende:
[..]
Goed! het systeem zoekt nu op het hele woord en niet op delen!maar als ik nu kijk bv naar het forum, daar kun je ook zoeken op delen van woorden en dat is gewoon rete rap, waarom kan dat niet met tags? (kan wel maar qua preformance weer niet...)
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |