Geen dubbele date ?
dietger marechal
05/07/2007 17:26:00Ik heb dus de query :
SELECT categorie.naamcat, producten.naam, producten.prijs
FROM `producten`
JOIN categorie ON ( producten.cat_id = categorie.id )
WHERE categorie.cat =2
ORDER BY categorie.naamcat ASC
en dit geeft als resultaat:
http://img388.imageshack.us/img388/1192/probleembh1.jpg
Kan je nu via de query van mysql de dubbele data negeren ? Dus dat er bv naar 1 keer beamer en projectiedoeken staat.
SELECT categorie.naamcat, producten.naam, producten.prijs
FROM `producten`
JOIN categorie ON ( producten.cat_id = categorie.id )
WHERE categorie.cat =2
ORDER BY categorie.naamcat ASC
en dit geeft als resultaat:
http://img388.imageshack.us/img388/1192/probleembh1.jpg
Kan je nu via de query van mysql de dubbele data negeren ? Dus dat er bv naar 1 keer beamer en projectiedoeken staat.
PHP hulp
10/01/2025 02:44:05TJVB tvb
05/07/2007 17:56:00Dat kan met GROUP BY maar dan krijg je dacht ik niet de rest van de informatie op die manier.
Je kunt natuurlijk bij het maken van die tabel ook zorgen dat als ze hetzelfde zijn het niet nog een keer komt te staan.
Je kunt natuurlijk bij het maken van die tabel ook zorgen dat als ze hetzelfde zijn het niet nog een keer komt te staan.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$query = "SELECT categorie.naamcat, producten.naam, producten.prijs
FROM `producten`
JOIN categorie ON ( producten.cat_id = categorie.id )
WHERE categorie.cat =2
ORDER BY categorie.naamcat ASC"
$result = mysql_query($query);
$last = '';
echo '<table><tr><td>naamcat</td><td>naam</td><td>prijs</td></tr>';
while($row = mysql_fetch_array($result)){
echo'<tr><td>';
if($last != $row['naamcat']){
$last = $row['naamcat'];
echo $row['naamcat'];
}else{
echo ' '; //de spatie is om te zorgen dat het er netjes uitziet
}
echo '</td><td>'.$row['naam'].'</td><td>'.$row['prijs'].'</td></tr>';
}
echo '</table>';
?>
$query = "SELECT categorie.naamcat, producten.naam, producten.prijs
FROM `producten`
JOIN categorie ON ( producten.cat_id = categorie.id )
WHERE categorie.cat =2
ORDER BY categorie.naamcat ASC"
$result = mysql_query($query);
$last = '';
echo '<table><tr><td>naamcat</td><td>naam</td><td>prijs</td></tr>';
while($row = mysql_fetch_array($result)){
echo'<tr><td>';
if($last != $row['naamcat']){
$last = $row['naamcat'];
echo $row['naamcat'];
}else{
echo ' '; //de spatie is om te zorgen dat het er netjes uitziet
}
echo '</td><td>'.$row['naam'].'</td><td>'.$row['prijs'].'</td></tr>';
}
echo '</table>';
?>
Joren de Wit
05/07/2007 18:02:00GROUP BY is in dit geval zeker geen oplossing. De database retourneert dan gewoon een willekeurige waarde waar je dus niets aan hebt...
Als je naar de resultaten kijkt, zie je dat alle records verschillend zijn. Als je wilt dat er maar 1x beamer en 1x projectiedoeken staat, moet je alleen de naamcat selecteren en niet de andere informatie. In zo'n geval kun je namelijk DISTINCT gebruiken:
Als je naar de resultaten kijkt, zie je dat alle records verschillend zijn. Als je wilt dat er maar 1x beamer en 1x projectiedoeken staat, moet je alleen de naamcat selecteren en niet de andere informatie. In zo'n geval kun je namelijk DISTINCT gebruiken: