meerdere reacties tot 1 maken.
nu is het zo dat als ik de reacties uitlees
dat ik dit te zien krijg
test = de nieuwste
test2
test3
test3
test3
Hoe kan ik ervoor zorgen dat van de test 3 niet alles zichtbaar is maar alleen de nieuwste.
ik haal het uit de db met een while loop.
dus zo
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$sql = mysql_query("SELECT * FROM reacties,forum WHERE reacties.link_id = forum.forum_id ORDER BY reactie_datum DESC");
while($show = mysql_fetch_assoc($sql))
{
echo $show['reactie_titel'];
}
?>
$sql = mysql_query("SELECT * FROM reacties,forum WHERE reacties.link_id = forum.forum_id ORDER BY reactie_datum DESC");
while($show = mysql_fetch_assoc($sql))
{
echo $show['reactie_titel'];
}
?>
GROUP BY?
Als je alleen de laatste reactie wil hebben zul je de query aan moeten passen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
SELECT
reacties.id,
reacties.title,
reacties.bericht,
reacties.reactie_datum,
reacties.nogeenveld
FROM
reacties
INNER JOIN forum ON reacties.link_id = forum.forum_id
ORDER BY
reacties.reactie_datum LIMIT 0,1;
reacties.id,
reacties.title,
reacties.bericht,
reacties.reactie_datum,
reacties.nogeenveld
FROM
reacties
INNER JOIN forum ON reacties.link_id = forum.forum_id
ORDER BY
reacties.reactie_datum LIMIT 0,1;
Uiteraard wel even de veldnamen naar jouw namen aanpassen. kan zijn dat je nog meer moet wijzigen, maar iig deze richting op.
Gewijzigd op 01/01/1970 01:00:00 door Jurgen assaasas
ik bedoel meer zoals hier bij laatste forum berichten.
als ik daar een reactie post en iemand anders ook dan staat er niet
2 keer dezelfde topic titel. maar 1 keer. dit moet ik dus ook hebben.
Ik ben al 4 uur aan het klote en aan het zoeke op het internet. maar nog niks
gevonden. wie kan mij hiermee helpen.
Gewijzigd op 01/01/1970 01:00:00 door thomas
DISTINCT?
Kwam er op de mysql pagina niet echt uit wat er nu bedoelt wordt.
DISTINCT haalt de unieke rijen op...
Ik zal het zo uitleggen
Ik heb een tabel forum
forum_id->forum_titel->forum_datum
de andere is een table reacties
reactie_id->reactie_titel->reactie_datum->link_id
bij link_id staat dezelfde id als in forum_id van de table forum
nu is het zo dat laten we zeggen
forum_id=1 en forum_titel = blaat en forum_datum= 22-11-2009
forum_id=2 en forum_titel = blaat1 en forum_datum= 25-11-2009
Onder reacties staat dit
reactie_id =1 en reactie_titel = blaat en reactie_datum = 23-11-2009 en link_id=1
reactie_id=2 en reactie_titel = blaat en link_id=1 en reactie_datum = 24-11-2009
reactie_id=3 en reactie_titel = blaat1 en link_id=2 en reactie_datum = 25-11-2009
reactie_id=4 en reactie_titel = blaat1 en link_id=2 en reactie_datum = 26-11-2009
Nu wil ik dus dat als forum_id overeen komt met link_id
dat ie dat weergeeft. zoals wij nu wel weten is dat forum_titel dan vaker voorkomt. nu wil ik dus dat als die alles leest en waar dan er meer van zijn.
dat ie maar 1 keer de forum titel laat zien met de nieuwste reactie.
Want nu krijg ik dit
blaat
blaat
blaat2
blaat2
Dit moet dus worden
blaat
blaat2
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?PHP
$sql = mysql_query("SELECT * FROM reacties,forum WHERE reacties.link_id = forum.forum_id ORDER BY reactie_datum DESC");
$tArray = array();
while($show = mysql_fetch_assoc($sql))
{
if(!in_array($show['reactie_titel'],$tArray)){
$tArray[]=$show['reactie_titel'];
echo $show['reactie_titel'];
}
}
?>
$sql = mysql_query("SELECT * FROM reacties,forum WHERE reacties.link_id = forum.forum_id ORDER BY reactie_datum DESC");
$tArray = array();
while($show = mysql_fetch_assoc($sql))
{
if(!in_array($show['reactie_titel'],$tArray)){
$tArray[]=$show['reactie_titel'];
echo $show['reactie_titel'];
}
}
?>
Veel succes verder!
Gewijzigd op 01/01/1970 01:00:00 door SilverWolf NL
Erg bedankt hiervoor.
Distinct was wel de oplossing:
Die werkt in mijn ogen zelfs beter.
merk het verschil nog niet omdat er nog maar 5 records in staan.
maar heb effe via google gezocht er op en distinct is sneller.\
Bedankt Terence