Maar 1 result uit functie?
Ik heb een functie die aanwezige leden bij een vergadering moet tonen. Nu doet hij dat wel, maar stopt na de eerste resultaat terwijl ik wel een while lus heb over een database, waarbij er op het moment van testen nu 2 results horen uit te komen.
Dit is de functie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function aanwezigeLeden($meeting)
{
$sql = ("SELECT leden.id, leden.voornaam, leden.achternaam FROM leden, aanwezigheid, meeting WHERE meeting.id = aanwezigheid.meeting_id AND leden.id = aanwezigheid.leden_id AND meeting.id = $meeting AND aanwezigheid.aanwezig = 1");
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
return '<a href="leden.php?u='.$row['id'].'">'.$row['voornaam'].' '.$row['achternaam'].'</a><br />';
}
}
?>
function aanwezigeLeden($meeting)
{
$sql = ("SELECT leden.id, leden.voornaam, leden.achternaam FROM leden, aanwezigheid, meeting WHERE meeting.id = aanwezigheid.meeting_id AND leden.id = aanwezigheid.leden_id AND meeting.id = $meeting AND aanwezigheid.aanwezig = 1");
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
return '<a href="leden.php?u='.$row['id'].'">'.$row['voornaam'].' '.$row['achternaam'].'</a><br />';
}
}
?>
Als ik de query in phpMyAdmin stop dan komen er wel 2 results uit.
Hier is het stukje code waar ik de functie aanroep:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<table width="100%">
<tr>
<th style="width:70px;">Datum</th>
<th style="width:170px;">Gelegenheid</th>
<th style="width:175px;">Uw aanwezigheid</th>
<th style="width:140px;">Aanwezig</th>
<th style="width:140px;">Niet aanwezig</th>
<th>Misschien</th>
</tr>
<?php
$curdate = date("Y-m-d");
$userid = $_GET['userid'];
$select = mysql_query("SELECT id, titel, DATE_FORMAT(datum, '%d-%m-%Y') AS datumNew FROM meeting WHERE datum >= '$curdate' ORDER BY datum") or die(mysql_error());
while($r = mysql_fetch_array($select)){
extract($r);
echo '<tr><td>' . $datumNew . '</td><td>' . $titel . '</td><td>' . aanwezigheidButtons($id, $userid) . '</td><td>' . aanwezigeLeden($id) . '</td><td>' . afwezigeLeden($id) . '</td><td>' . misschienAanwezig($id) . '</td></tr>';
}
?>
</table>
<tr>
<th style="width:70px;">Datum</th>
<th style="width:170px;">Gelegenheid</th>
<th style="width:175px;">Uw aanwezigheid</th>
<th style="width:140px;">Aanwezig</th>
<th style="width:140px;">Niet aanwezig</th>
<th>Misschien</th>
</tr>
<?php
$curdate = date("Y-m-d");
$userid = $_GET['userid'];
$select = mysql_query("SELECT id, titel, DATE_FORMAT(datum, '%d-%m-%Y') AS datumNew FROM meeting WHERE datum >= '$curdate' ORDER BY datum") or die(mysql_error());
while($r = mysql_fetch_array($select)){
extract($r);
echo '<tr><td>' . $datumNew . '</td><td>' . $titel . '</td><td>' . aanwezigheidButtons($id, $userid) . '</td><td>' . aanwezigeLeden($id) . '</td><td>' . afwezigeLeden($id) . '</td><td>' . misschienAanwezig($id) . '</td></tr>';
}
?>
</table>
Komt erop neer dat ik in die tabel de vergaderingen opvraag en dan per vergadering de leden wil laten zien die wel/niet/misschien komen.
Alvast erg bedankt!!
Nick
Code (php)
1
2
3
4
5
6
2
3
4
5
6
while ($row = mysql_fetch_assoc($result))
{
@$store .= '<a href="leden.php?u='.$row['id'].'">'.$row['voornaam'].' '.$row['achternaam'].'</a><br />';
}
return $store;
{
@$store .= '<a href="leden.php?u='.$row['id'].'">'.$row['voornaam'].' '.$row['achternaam'].'</a><br />';
}
return $store;
@andere: Ja ik weet het van de @ voor de variabele. Dit is gewoon mooier in mijn ogen.
Gewijzigd op 08/02/2011 14:45:00 door Mebus Hackintosh
waarom staat daar een @??
Bedankt, het werkt nu :)
Mebus vg op 08/02/2011 14:44:13:
@andere: Ja ik weet het van de @ voor de variabele. Dit is gewoon mooier in mijn ogen.
Zou je dat uit kunnen leggen? Een @ wordt in PHP gebruikt voor het onderdrukken van fouten en daarmee nooit mooi in je code
@Nick, er zit geen enkele foutafhandeling in je code
Gewijzigd op 08/02/2011 14:49:05 door TJVB tvb
Ozzie PHP op 08/02/2011 14:47:00:
waarom staat daar een @??
Zodat er geen error/notice wordt getoond omdat de variabele eigenlijk nog niet is aangemaakt. Met die @ ervoor onderdruk je die melding dus.
Mebus vg op 08/02/2011 14:48:56:
Zodat er geen error/notice wordt getoond omdat de variabele eigenlijk nog niet is aangemaakt. Met die @ ervoor onderdruk je die melding dus.
Definieer die dan gewoon daarvoor. Bij een muur die scheurt ga je ook geen behang plakken maar het oplossen.
Ik heb bovenaan de variabele $store = ''; aangemaakt, vond ik wat netter. Maar nogmaals bedankt :)
TJVB tvb op 08/02/2011 14:48:34:
Zou je dat uit kunnen leggen? Een @ wordt in PHP gebruikt voor het onderdrukken van fouten en daarmee nooit mooi in je code
@Nick, er zit geen enkele foutafhandeling in je code
Mebus vg op 08/02/2011 14:44:13:
@andere: Ja ik weet het van de @ voor de variabele. Dit is gewoon mooier in mijn ogen.
Zou je dat uit kunnen leggen? Een @ wordt in PHP gebruikt voor het onderdrukken van fouten en daarmee nooit mooi in je code
@Nick, er zit geen enkele foutafhandeling in je code
Ik gebruik het alleen voor zulke kleine dingetjes.. Zodat er niet ergens anders in het script staat dat de variabele $store word aangemaakt. Anders staat er nog ergens in het script zoiets als dit: $store = ''; dat vind ik gewoon een overbodige regel en vind ik niet mooi ook al is het voor sommige (meeste) dus geen nette manier.
Gewijzigd op 08/02/2011 14:51:39 door Mebus Hackintosh
@TJVB, waar zou ik voor foutafhandeling nodig moeten hebben dan?
Om zelf sneller fouten in je script op te kunnen lossen zodat er hier minder topics aangemaakt worden (:
Mebus vg op 08/02/2011 14:50:53:
Ik gebruik het alleen voor zulke kleine dingetjes.. Zodat er niet ergens anders in het script staat dat de variabele $store word aangemaakt. Anders staat er nog ergens in het script zoiets als dit: $store = ''; dat vind ik gewoon een overbodige regel en vind ik niet mooi ook al is het voor sommige (meeste) dus geen nette manier.
Mja, ieder z'n ding. Ik vind het maar een rare manier van handelen. Je creëert terwijl je je er volledig bewust van bent een fout en die ga je dan maar onderdrukken :-s
Mebus vg op 08/02/2011 14:53:08:
Om zelf sneller fouten in je script op te kunnen lossen zodat er hier minder topics aangemaakt worden (:
Hoe maak ik een foutafhandeling die mij erop kan wijzen dat ik 1 variabele steeds overschrijf ipv dat ik ze aan elkaar moet plakken? Dat bedoel ik meer :)
Mebus vg op 08/02/2011 14:48:56:
Zodat er geen error/notice wordt getoond omdat de variabele eigenlijk nog niet is aangemaakt. Met die @ ervoor onderdruk je die melding dus.
Ozzie PHP op 08/02/2011 14:47:00:
waarom staat daar een @??
Zodat er geen error/notice wordt getoond omdat de variabele eigenlijk nog niet is aangemaakt. Met die @ ervoor onderdruk je die melding dus.
Dus gebruik je dat NOOIT maar maak je de variabele even vóór de while() bekend.
$blabla = '';
@Nick, wat gebeurt er als jouw query fout gaat?
Waarom gebruik je trouwens extract en niet gewoon $r['datumNew'] ? ($r is ook een nietszeggende naam)
Hmm weet ik eigenlijk niet, ooit zo aangeleerd :/ Zal het wel even op de 'normale' manier proberen dan. Thx voor de tip!