abonnement Unibet Coolblue Bitvavo
pi_92903895
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?
pi_92904409
quote:
1s.gif 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?
Je hebt die extra tabellen niet nodig.

Je hebt aan een koppeltabel genoeg met g_id en a_id. Staat de gebruiker gekoppeld aan de afspraak (welke al een datum hebben), dan komt hij/zij. Anders niet.
pi_92904524
Stel je wil weten welke gebruikers vandaag komen

1
2
3
<?php
$datum 
date("Y-m-d");
?>

of als je timestamps gebruikt

1
2
3
<?php
$datum 
strtotime(date("Y-m-d");
?>

1
2
3
<?php
$query 
mysql_query("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)."' ");
?>


[ Bericht 1% gewijzigd door remi1986 op 17-02-2011 09:29:24 (Query was niet goed) ]
pi_92904962
quote:
1s.gif Op donderdag 17 februari 2011 09:19 schreef remi1986 het volgende:
Stel je wil weten welke gebruikers vandaag komen

[ code verwijderd ]

of als je timestamps gebruikt

[ code verwijderd ]

[ code verwijderd ]

Als je timestamps gebruikt, kan het makkelijker:
1
2
3
4
5
<?php
$datum 
mktime(); // Timestamp van huidige tijd
// Alternatief:
$datum mktime(000// Timestamp van huidige datum, met tijd 00:00:00
?>

En mysql_real_escape_string() lijkt me niet direct nodig als je weet dat de variabele altijd een gegenereerd datumveld bevat.
pi_92905116
quote:
1s.gif Op donderdag 17 februari 2011 09:33 schreef Light het volgende:

[..]

Als je timestamps gebruikt, kan het makkelijker:

[ code verwijderd ]

En mysql_real_escape_string() lijkt me niet direct nodig als je weet dat de variabele altijd een gegenereerd datumveld bevat.
Ja kan ook. En ben met je eens dat escapen niet nodig is, maar ik doe het zelf altijd standaard. Als het straks uit bijvoorbeeld POST data komt, waar je eerst een datum moet kiezen is het weer user input.

[ Bericht 12% gewijzigd door remi1986 op 17-02-2011 09:45:32 ]
pi_92905456
quote:
Je hebt die extra tabellen niet nodig.

Je hebt aan een koppeltabel genoeg met g_id en a_id. Staat de gebruiker gekoppeld aan de afspraak (welke al een datum hebben), dan komt hij/zij. Anders niet.
maar de gebruiker met zelf ergens kunnen aangeven of hij wel of niet aanwezig kan zijn
dit moet toch ergens opgeslagen worden....

ooh..tijdens het typen bedenk ik me..je slaat alleen op als hij WEL aan wezig is..
hmm...en als ik 3 verschillende statussen wil hebben...JA NEE en ONBEKEND
pi_92905498
quote:
1s.gif Op donderdag 17 februari 2011 09:53 schreef MrNiles het volgende:

[..]

maar de gebruiker met zelf ergens kunnen aangeven of hij wel of niet aanwezig kan zijn
dit moet toch ergens opgeslagen worden....

ooh..tijdens het typen bedenk ik me..je slaat alleen op als hij WEL aan wezig is..
hmm...en als ik 3 verschillende statussen wil hebben...JA NEE en ONBEKEND
Dan voeg je die toe aan die koppeltabel..

a_id,g_id,status
1,1,Ja

Je kan dan in de JOIN nog aangeven als je een bepaalde status wil
pi_92905568
quote:
Dan voeg je die toe aan die koppeltabel..

a_id,g_id,status
1,1,Ja

Je kan dan in de JOIN nog aangeven als je een bepaalde status wil
maar dan moet ik voor die status een tabel maken
want voor elke andere datum kan een andere status zijn
pi_92905620
quote:
1s.gif Op donderdag 17 februari 2011 09:57 schreef MrNiles het volgende:

[..]

maar dan moet ik voor die status een tabel maken
want voor elke andere datum kan een andere status zijn
Nee is niet nodig op zich, want gebruiker 2 kan voor afspraak 1 een status NEE/ONBEKEND hebben. Je koppelt een gebruiker aan een afspraak. Dezelfde gebruiker kan op voor een andere afspraak een andere status hebben.

Je kan wel een tabel maken met de statussen. Dan krijg je dus 1,1,1 in de koppeltabel, maar met maar 3 statussen zou ik dat niet doen.
pi_92906271
quote:
Nee is niet nodig op zich, want gebruiker 2 kan voor afspraak 1 een status NEE/ONBEKEND hebben. Je koppelt een gebruiker aan een afspraak. Dezelfde gebruiker kan op voor een andere afspraak een andere status hebben.

Je kan wel een tabel maken met de statussen. Dan krijg je dus 1,1,1 in de koppeltabel, maar met maar 3 statussen zou ik dat niet doen
ik probeer het te snappen he :p

ik wil dat een tabel automatisch wordt aangemaakt
zo min mogelijk (geen) handwerk
zoals eerder door jullie aangegeven mag ik niet kolommen toevoegen bv aanwezig_$datum1

hoe kan ik tegelijkertijd meerdere datums voorleggen aan gebruikers?
en hoe kan ik die in een tabel dan bewaren?
pi_92906480
De kolommen tabellen (edit pfff het is nog vroeg c_/ ) voor de gebruikers, de afspraken en de koppeltabel maak je in het begin aan. Hoef je dan verder niet meer aan te komen.

Je kan dan afspraken maken (kan je iets voor maken, of je voert nieuwe afspraken in de database in). Deze afspraken hebben een datum en eventueel een plaats en onderwerp (wat is er te doen).

Je kan dan deze afspraken uitlezen en de gebruiker laten invullen of deze wel komt (status ja), niet komt (status nee) of onbekend (status onbekend).

Stel je hebt 2 afspraken

1
2
3
a_id,datum,waar,wat
1,2011-02-17,locatie,workshop
2,2011-02-18,locatie,meeting

Koppeltabel:
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

Gebruiker 1 komt dan wel op afspraak 1, maar niet op afspraak 2
Gebruiker 2 komt niet op afspraak 1 en weet nog niet voor afspraak 2
Gebruiker 3 weet het nog niet voor afspraak 1 en komt wel op afspraak 2

Heb ff datumvelden gebruikt, je kan ook timestamps gebruiken, maar voor dit voorbeeld is het misschien wat duidelijker als er datums in staan
pi_92906600
Welke joepmeloen verzint er nou kolomnamen als "waar" en "wat"?
pi_92906652
quote:
10s.gif Op donderdag 17 februari 2011 10:38 schreef KomtTijd... het volgende:
Welke joepmeloen verzint er nou kolomnamen als "waar" en "wat"?
quote:
1s.gif 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?
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 aangemaakt :)
pi_92906757
quote:
Welke joepmeloen verzint er nou kolomnamen als "waar" en "wat"?
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..
pi_92906992
quote:
1s.gif 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..
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.
pi_92907235
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.
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
pi_92907312
quote:
1s.gif 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
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.

Maar snap je het idee van de koppeltabel?
pi_92907437
quote:
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.
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 :)
quote:
Maar snap je het idee van de koppeltabel?
hopelijk kom ik niet stom over als ik vraag dat dit een daadwerkelijk tabel is en niet iets gegenereerd vanuit een join oid
pi_92907520
quote:
1s.gif 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
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?

Die koppeltabel is inderdaad een vaste tabel. Die moet je dan ook gewoon aanmaken.
pi_92908162
quote:
Die koppeltabel is inderdaad een vaste tabel. Die moet je dan ook gewoon aanmaken.
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
pi_92908230
quote:
1s.gif 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
Ik had ergens op deze pagina een voorbeeldquery gemaakt. Kan je vast wel wat mee.
pi_92908619
ben aan het kijken
1
2
3
4
5
6
7
<?php
SELECT g
.name 
FROM gebruikers 
AS 
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)."' ");
?>

wat is die K bij INNER JOIN koppeltabel k
benoem je die koppeltabel nu als k voor de vergelijking daarachter?
pi_92908708
quote:
1s.gif 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?
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)

Vind het met verkorte namen makkelijker te lezen, helemaal als je het zo in de script zet als jij deed (over meerdere regels)
pi_92909085
hoe kun je ook al weer een var dump van al je variabelen echo'en
kan m niet meer vinden hoe het moest :(
pi_92909154
var_dump(get_defined_vars()); ?
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')