Beste leden,
Ik heb voor mijn website een actieve topics script gemaakt. Alleen nu heb ik een fout, Ik heb een array gemaakt waarmee die kijkt of die topics al in de lijst staan maar nu pakt die niet LIMIT 15.
Mijn vraag is hoe geef ik mijn array een limit?
Hier is de code
PHP Code:
$actieff = mysql_query("SELECT * FROM `forum_reacties` ORDER BY `datum`");
$array = array();
while($top_actief = mysql_fetch_assoc($actieff)){
$frm = mysql_query("SELECT * FROM `forum_topics` WHERE `id`='".$top_actief['topic_id']."' LIMIT 15");
while($forum = mysql_fetch_assoc($frm)){
if(!in_array($top_actief['topic_id'], $array)){
echo'
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<td width="10%" align="center"><img src="images/iconss/topic.gif" border="0"></td>
<td width="90%"> <a href="?pagina=forum_topic&cat_id='.$forum['cat_id'].'&id='.$forum['id'].'">'.ucfirst($forum['onderwerp']).'</a></td>
</tr>
</table>
';
}
$array[] = $top_actief['topic_id'];
}
}
- Foutje..
-
20-06-2011, 21:47 #1
- Berichten
- 130
- Lid sinds
- 15 Jaar
Foutje..
-
-
20-06-2011, 22:39 #2
- Berichten
- 71
- Lid sinds
- 17 Jaar
Re: Foutje..
Misschien kan je iets met deze functie proberen:
http://se2.php.net/manual/en/function.array-slice.php
-
20-06-2011, 22:43 #3
- Berichten
- 449
- Lid sinds
- 14 Jaar
Re: Foutje..
Probeer eens LIMIT 0,14 > resultaat 0 t/m 14 (=15)
-
20-06-2011, 22:44 #4
- Berichten
- 1.410
- Lid sinds
- 16 Jaar
Re: Foutje..
Moet de limit niet in de eerste sql query??
Aangezien je de eerste query ook gaat "loopen" doet hij die allemaal dacht ik zo.
Heb niet zoveel met PHP en weet niet zeker of dat ook daadwerkelijk gebeurd.
-
21-06-2011, 11:33 #5
- Berichten
- 17
- Lid sinds
- 14 Jaar
Re: Foutje..
Als je meer dan een paar duizend forum reacties hebt, kan dit script tegen de geheugenlimiet aanlopen. Er zijn een heleboel open source forums die gratis verkrijgbaar zijn. Op http://www.forummatrix.org kun je de beschikbare forums vergelijken.
-
21-06-2011, 22:02 #6
- Berichten
- 130
- Lid sinds
- 15 Jaar
Re: Foutje..
@ Wilbert E.
Dat heb ik al eerder geprobeerd en het helpt niet,
@ Paul
Tegen die tijd zal ik de script wel beter maken!
Iemand nog met de oplossing ?
-
21-06-2011, 22:05 #7
- Berichten
- 195
- Lid sinds
- 18 Jaar
Re: Foutje..
Edit: slecht antwoord, slecht gekeken :+
Waarom zet je niet gewoon in de tabel van de topics een rij "last_post" en laat je elke keer als iemand daar iets in post die tijd updaten? :+ Scheelt dat niet een hoop werk?
-
21-06-2011, 22:11 #8
- Berichten
- 263
- Lid sinds
- 18 Jaar
Re: Foutje..
ik weet niet hoe je db in elkaar steekt maar limit 15 in een query waar je naar een specifiek id zoekt lijkt me niet echt slim, er van uitgaand dat je id een key/unique is
die limit 15 moet echt in de bovenste query. je wilt toch de laatste 15 replies, en niet de laatste 15 topics. Wel loop je kans dat de laatste 15 replies allemaal van 1 en dezelfde topic zijn. Dit kan je oplossen door te GROUPen bijvoorbeeld of een DISTINCT in de select te knallen.
trouwens werkt je code volgens mij niet omdat je een ! bij in_array hebt. Bij:
if(!in_array($top_actief['topic_id'], $array)){
-
21-06-2011, 22:22 #9
- Berichten
- 130
- Lid sinds
- 15 Jaar
Re: Foutje..
Misschien ben ik te onduidelijk geweest, Dit script kijkt in welke topics er voor het laatst in gereageerd is, Stel de laatste 5 reacties zijn in de zelfde topic dan laat de array deze topic maar 1x zien i.p.v 5x de zelfde topic ?
-
21-06-2011, 22:26 #10
- Berichten
- 263
- Lid sinds
- 18 Jaar
Re: Foutje..
heb je het al zonder de ! geprobeerd?
en die functionaliteit dat je alle topics maar 1x wilt laten zien moet je oplossen in je MySQL Query en niet door in de while loop te gaan spelen met array waardes.
$array[] = $top_actief['topic_id'];
-
21-06-2011, 22:28 #11
- Berichten
- 130
- Lid sinds
- 15 Jaar
Re: Foutje..
heb je het al zonder de ! geprobeerd?
en die functionaliteit dat je alle topics maar 1x wilt laten zien moet je oplossen in je MySQL Query en niet door in de while loop te gaan spelen met array waardes.
Dit is niet hoe je dat op lost, hierdoor kan je fouten krijgen (bijvoorbeeld in de 2de MySQL query)
Dat heb ik geprobeerd en het werkt niet hoe doe ik dat met de query dan want ik heb al van alles geprobeerd en het wilt niet lukken
-
21-06-2011, 22:36 #12
- Berichten
- 263
- Lid sinds
- 18 Jaar
Re: Foutje..
zoiets? Dan pakt hij de laatste 15 unieke topic_id's uit je tabel forum_reacties
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic