resultaten groeperen met php?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$query = "SELECT webdb.id, webdb.writer, webdb.title, webdb.picture FROM webdb where language = 'Farsi' AND category= 'History' GROUP BY writer";
$resultaat = mysql_query($query, $LinkID);
$column_count = mysql_num_fields($resultaat) or die (mysql_error()."<br>Couldn't execute query: $SQLquery");
$counter=1;
while ($row = mysql_fetch_row($resultaat))
{
print("<td valign=\"top\" width=33% align=right>");
echo "<br><img width=50 height=80 src=admin/writers/$row[3] border =0><br><b><br>".$row[1]."</b><br />
<a href=\"read.php?&id=$row[0]\">".$row[2]."</a>
</td>";
if($counter%3==0){
print("</tr><tr>");
}
$counter++;
}
?>
$query = "SELECT webdb.id, webdb.writer, webdb.title, webdb.picture FROM webdb where language = 'Farsi' AND category= 'History' GROUP BY writer";
$resultaat = mysql_query($query, $LinkID);
$column_count = mysql_num_fields($resultaat) or die (mysql_error()."<br>Couldn't execute query: $SQLquery");
$counter=1;
while ($row = mysql_fetch_row($resultaat))
{
print("<td valign=\"top\" width=33% align=right>");
echo "<br><img width=50 height=80 src=admin/writers/$row[3] border =0><br><b><br>".$row[1]."</b><br />
<a href=\"read.php?&id=$row[0]\">".$row[2]."</a>
</td>";
if($counter%3==0){
print("</tr><tr>");
}
$counter++;
}
?>
Ik wil dat van iedere schrijver de naam en foto maar een keer herhaald worden en al hun artikelen van een bepaalde categorie onder hun naam wordt weergegeven. Hoe doe ik dat? Ik heb Group by geprobeerd, maar dat is niet de juist aanpak.
Dank
http://www.phpfreakz.nl/forum.php?forum=4&iid=1324381, daar heb je ook een link gekregen naar het antwoord.
En zoals ook daar gemeld staat: GROUP BY hoort niet thuis in deze query, je bedoelt waarschijnlijk ORDER BY writer
Waarom de ene keer print en de andere keer weer echo... dat valt bij mij dan onder de noemer bagger-code
Waarom loop je nu weg van En zoals ook daar gemeld staat: GROUP BY hoort niet thuis in deze query, je bedoelt waarschijnlijk ORDER BY writer
Waarom de ene keer print en de andere keer weer echo... dat valt bij mij dan onder de noemer bagger-code
Gewijzigd op 25/06/2010 18:22:56 door Noppes Homeland
Dan kun je in je while dit doen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$author = NULL;
while ($row = mysql_fetch_row($resultaat)) {
if ($author !== $row[1]) { // als $row[1] de writer geeft, waarom doe je niet fetch_assoc?
echo $row[1].': <br />';
$author = $row[1];
}
// rest van je code; alle werken in de category.
}
?>
$author = NULL;
while ($row = mysql_fetch_row($resultaat)) {
if ($author !== $row[1]) { // als $row[1] de writer geeft, waarom doe je niet fetch_assoc?
echo $row[1].': <br />';
$author = $row[1];
}
// rest van je code; alle werken in de category.
}
?>
Ik denk dat je begrijpt dat ik in de while-loop doe.
Ik hoop trouwens dat er een betere oplossing voor is. Ben ik wel benieuwd naar.
Gewijzigd op 25/06/2010 18:23:32 door Mark L
Alle andere oplossingen die men gaat aandragen zijn niets effiecienter dan dat er in dat wiki artikel wordt opgevoerd
Het gaat jou niets aan! Als je geen antwoord op het vraag weet, hoef je mij niet naar een link te verwijzen dat nergens over gaat.
@Mark
Dank ik zal het proberen....
Je vindt het dus handig om op meerdere sites je vraag/probleem voor te leggen en geen moeite te doen om het een en ander te lezen en het zelf dan toe te passen.
ach donder toch op man!