Eerst, gebruik betere foutafhandeling:
http://github.com/WouterJ/sql-boilerplate/tree/mysql/
Ten tweede, we kijken eens in de
documentatie en daar vinden we het volgt: (wat ingekort)
SELECT
(...)
select_expr [, select_expr ...]
[FROM table_references
[WHERE where_condition]
(...)
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
(...)
Dit stelt de opbouw van de query voor. Dit geeft aan hoe we ORDER BY moeten gebruiken:
ORDER BY {col_name | expr | position}
Hierbij is col_name de naam van de kolom uit de tabel. Dit betekend dus dat we geen syntax als ORDER BY achter = 'achternaam' moeten gebruiken, maar ORDER BY achter.
Link gekopieerd
Hallo wouter
Ik heb de code veranderd in dit
$select3 = "SELECT * FROM leden_gegevens WHERE id = '".$list->uid."' ORDER BY achternaam ASC";
$query3 = mysql_query($select3)or die(mysql_error());
$list3 = mysql_fetch_object($query3);
echo "<tr>";
echo "<td align=\"center\" width=\"32%\"><a href=\"mailto:$list3->email?subject=Mededeling\">".$list3->achternaam." ".$list3->naam."</td>";
Maar ik zie ze nog niet op volgorde staan
waarschijnlijk gaat er nog iets mis
M.v.g.
Link gekopieerd
Je haalt maar één record op.
Link gekopieerd
Hallo Santhe
Wat bedoel je precies want hij laat wel alle 90 namen zien maar niet op de goede volgorde
M.v.g.
Link gekopieerd
Hebben die 90 leden allemaal hetzelfde ID dan?
Wat doet $select2, $query2 etc?
Want bovenstaande code zou maar 1 record moeten geven (door het ID én doordat je maar eenmalig fetcht en geen while-loop hebt etc)
Link gekopieerd
- SanThe -
26-05-2012 20:31
gewijzigd op 26-05-2012 20:33
Andre vredeveld op 26/05/2012 20:24:57
Wat bedoel je precies want hij laat wel alle 90 namen zien maar niet op de goede volgorde
Niet met bovenstaand scriptje.
Zit je niet in het verkeerde script te werken?
Link gekopieerd
Hallo iedereen
Hier nog een stukje code misschien dat jullie dan kunnen zien waarom het niet lukt
$select = "SELECT * FROM kinder_gegevens ";
$query = mysql_query($select)or die(mysql_error());
$num = mysql_num_rows($query);
echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"98%\">";
echo "<tr>";
echo "<td align=\"center\" width=\"32%\"><b>Ouder(s)</b></td>";
echo "<td align=\"center\" width=\"28%\"><b>Van kind</b></td>";
echo "<td align=\"center\" width=\"12%\"><b>Is er betaald</b></td>";
echo "<td align=\"center\" width=\"26%\"><b>Actie</b></td>";
echo "</tr>";
echo "</table>";
echo "<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" width=\"98%\">";
if($num == 0) {
echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='2'> Er staan geen kinderen in onze database.</font></tr></td></table>";
}else {
while($list = mysql_fetch_object($query))
{
$select3 = "SELECT * FROM leden_gegevens WHERE id = '".$list->uid."' ORDER BY achternaam ASC";
$query3 = mysql_query($select3)or die(mysql_error());
$list3 = mysql_fetch_object($query3);
echo "<tr>";
echo "<td align=\"center\" width=\"32%\"><a href=\"mailto:$list3->email?subject=Mededeling\">".$list3->achternaam." ".$list3->naam."</td>";
echo "<td align=\"center\" width=\"28%\">".$list->naamkind."</td>";
Even een update ik heb nu deze code gebruikt en nu laat hij het wel zien op alfabetisch volgorder
$select = "SELECT * FROM leden_gegevens ORDER BY achternaam ASC";
$query = mysql_query($select)or die(mysql_error());
$num = mysql_num_rows($query);
echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"98%\">";
echo "<tr>";
echo "<td align=\"center\" width=\"32%\"><b>Ouder(s)</b></td>";
echo "<td align=\"center\" width=\"28%\"><b>Van kind</b></td>";
echo "<td align=\"center\" width=\"12%\"><b>Is er betaald</b></td>";
echo "<td align=\"center\" width=\"26%\"><b>Actie</b></td>";
echo "</tr>";
echo "</table>";
echo "<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" width=\"98%\">";
if($num == 0) {
echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='2'> Er staan geen kinderen in onze database.</font></tr></td></table>";
}else {
while($list = mysql_fetch_object($query))
{
$select3 = "SELECT * FROM kinder_gegevens WHERE uid = '".$list->uid."' ";
$query3 = mysql_query($select3)or die(mysql_error());
$list3 = mysql_fetch_object($query3);
echo "<tr>";
echo "<td align=\"center\" width=\"32%\"><a href=\"mailto:$list->email?subject=Mededeling\">".$list->achternaam." ".$list->naam."</td>";
echo "<td align=\"center\" width=\"28%\">".$list3->naamkind."</td>";
Maar nu laat hij per ouder MAAR 1 kind zien en niet alle kinderen per ouder
En ouders zonder kinderen laat hij ook zien wat eigenlijk niet moet
dus daar loop ik nu mee vast
M.v.g.
Link gekopieerd
Wat een verschrikkelijke code, als ik dat zo mag zeggen.
Echo in PHP je HTML met enkele haakjes.
Dus niet zo:
echo "<td align=\"center\" width=\"32%\"><b>Ouder(s)</b></td>";
Maar zo:
echo '<td class="procent32">Ouder</td>';
Ik heb die align, width en <b> weggehaald, want dat hoort via CSS.
Daarnaast hoef je alleen de bovenste regel (de <th>) de breedte op te geven, mocht je dat echt in je HTML willen doen.
CSS
td.procent32
{
font-weight: bold;
text-align: center;
width: 32%;
}
Link gekopieerd
Eddy Erkelens op 27/05/2012 09:51:53
Wat een verschrikkelijke code, als ik dat zo mag zeggen.
Echo in PHP je HTML met enkele haakjes.
Dus niet zo:
echo "<td align=\"center\" width=\"32%\"><b>Ouder(s)</b></td>";
Maar zo:
echo '<td class="procent32">Ouder</td>';
Ik heb die align, width en <b> weggehaald, want dat hoort via CSS.
Daarnaast hoef je alleen de bovenste regel (de <th>) de breedte op te geven, mocht je dat echt in je HTML willen doen.
CSS
td.procent32
{
font-weight: bold;
text-align: center;
width: 32%;
}
Eddy Erkelens op 27/05/2012 09:51:53
Wat een verschrikkelijke code, als ik dat zo mag zeggen.
Echo in PHP je HTML met enkele haakjes.
Dit klopt dit was van een bestande code en ik ben druk aan leren hoe ik alles om moet zetten dus ben wel blij met deze reactie
en dan het volgende
Dus niet zo:
echo "<td align=\"center\" width=\"32%\"><b>Ouder(s)</b></td>";
Maar zo:
echo '<td class="procent32">Ouder</td>';
dit vind ik een super idee
[/quote]
Super opmerkingen bedankt
M.v.g.
Link gekopieerd