abonnement Unibet Coolblue Bitvavo
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()); ?
pi_92909236
1
2
3
<?php
var_dump
(get_defined_vars()); ?
?>

zoiets was het ja..maar bedenk me dat ik de var uit een array moet hebben...
var_dump(array());?
pi_92909308
1
2
3
4
5
<?php
echo "<pre>";
print_r($array);
echo 
"</pre>";
?>

?
pi_92911568
kan iemand op mijn code schieten?

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>";
}
?>

op deze manier hoop ik de mensen (G_name) te filteren die nog status "o" hebben
pi_92912024
quote:
1s.gif 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
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.
pi_92912224
die code uitproberen in phpmyadmin werkt goed....meer gaan gebruiker

deze werkt
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'
?>
  donderdag 17 februari 2011 @ 13:48:59 #81
75592 GlowMouse
l'état, c'est moi
pi_92913793
quote:
1s.gif 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
Altijd leuk, queries tussen je html-output.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92915139
quote:
Altijd leuk, queries tussen je html-output.
beter zo?

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 />";
}
?>
pi_92915279
Nee, wat GlowMouse bedoelt (denk ik), is dat je de query in een aparte functie zet en een array returned.

Die array loop je in je html output door en geef je de namen weer. Zo hou je de queries gescheiden van de html.
pi_92915382
quote:
Die array loop je in je html output door en geef je de namen weer. Zo hou je de queries gescheiden van de html.
dat is de bedoeling
verkeerde methode?
pi_92915720
ff snel hoe je het kan doen, namen in het Engels, verzin er maar wat moois voor :P

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
}
?>

je kan ook een hele algemene functie maken (is denk ik nog mooier, die je als parameter de status meegeeft, die kan je dan invullen in de query

1
2
3
<?php
$people_aanwezig 
get_people($date,$event,"Ja");    // mensen op datum die aanwezig zijn ("ja")
?>

En dan (in een ander bestand, functions.php die je include)

1
2
3
4
5
6
7
8
9
<?php
function get_people($date,$event,$status)
{
    

  
//  aan het einde 
  
return $array;
}
?>
pi_92916075
op die manier..jaja...
zal eens kijken of ik dat veranderd krijg :)
pi_92924895
quote:
1s.gif Op donderdag 17 februari 2011 00:14 schreef GlowMouse 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...)

:?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 17 februari 2011 @ 18:08:00 #88
75592 GlowMouse
l'état, c'est moi
pi_92924910
quote:
5s.gif 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...)

:?
Welk forum, en op welk woord zoek je?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 17 februari 2011 @ 18:13:46 #89
75592 GlowMouse
l'état, c'est moi
pi_92925086
Ik denk dat je in de war bent met stemming; hij slaat muisje dan op als muis, en in zoekopdrachten vervangt hij muisje ook door muis. Maar door te zoeken op 'ersdo' kom je 'lucifersdoosje' niet tegen.

Sommige zoekmachines staan zoeken op delen van een woord wel toe, Sphinx bijvoorbeeld. Dat lijkt mij gebaseerd op dat muis opgeslagen wordt als muis, uis, is en s. Als je dat met elk woord zo doet en dan alles op alfabet zet (index toevoegt in database-termen) dan kun je heel snel zoeken op een deel van een woord. Maar dat kost wel veel meer opslagruimte.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92956140
hoe krijg ik $G_id hier nu uit?
1
2
3
4
5
6
7
<?php
$result 
mysql_query("SELECT G_id FROM gebruikers WHERE G_name='$G_name' ");
while(
$row mysql_fetch_array($result))
  {
  
$row['G_id'];
  }
?>
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')