Autor | Zpráva | ||
---|---|---|---|
kincakivca Profil |
#1 · Zasláno: 3. 11. 2013, 11:03:29
Dobrý den.
Vytvořil jsem si jednoduché forum v php, které mi funguje tak jak má až na jednu věc. nejdou mi řadit topici podle nejnovějších odpovedí. }elseif (isset($_GET['viewforum'])){ $id= $_GET['viewforum']; $stranka= $_GET['stranka']; echo"<a href='index.php?pridej-topic=$id'><img src='icons/topic_add.png ' alt='pridej topic'>Přidej topic</a>"; echo "<table class='forum_tabulky' width='98%' align='center'>"; echo "<tr><th></th><th>Téma</th><th>Autor</th><th>Příspěvků</th><th>Hit</th></tr>"; $pocetradku = mysql_result(mysql_query("SELECT COUNT(*) from topic WHERE `id_fora` = '$id'"), 0); $url = "index.php?viewforum=".$id."&strana="; $max = "$data[10]"; $str=Ceil($ukaz_pocet[0]/$max); $strana2 = isset($_GET['strana']) ? ((int)($_GET['strana']) ): 0; $strana = $strana2*$max; $topic = mysql_query("SELECT * FROM topic WHERE `id_fora`='$id' ORDER BY ID DESC LIMIT $strana, $max",$spojeni); while ($Vypis=mysql_fetch_array($topic)){ if($Vypis['nazev']){ $pocetprispevku=mysql_result(mysql_query("SELECT COUNT(`id`) FROM `forum_odpovedi` WHERE `topic_id` = '".$Vypis['id']."' "),0); if($Vypis['zamceno']==1){ $closet="<img src='icons/lock.png' alt='zamkni topic'>"; }else{ $closet=".:."; } echo"<tr> <td></td> <td><div class='forum_nazev'>$closet<a href='index.php?viewtopic=".$Vypis['id']."&strana=0'>".$Vypis['nazev']."</a></td> <td><div class='forum_nazev'>".$Vypis['zalozil']."</td> <td><div class='forum_nazev'>".$pocetprispevku."</div></td> <td><div class='forum_nazev'>?</div></td>"; }else{ echo"<center><h3>Zatím nebylo nic publikováno!</h3></center>"; } } echo"</tr>"; echo "</table>"; include ROOT.("panely/strankovani/strankovani.php"); } JOIN LEFT |
||
Taps Profil |
#2 · Zasláno: 3. 11. 2013, 11:31:08
kincakivca:
ukaž jakou máš strukturu db tabulek |
||
juriad Profil |
Mohlo by fungovat následující
mysql_query("SELECT COALESCE(MAX(o.datum), t.zalozene) AS posledni, t.*, COUNT(o.datum) AS pocet FROM topic AS t LEFT JOIN forum_odpovedi AS o ON t.id = o.topic_id WHERE t.id_fora='$id' GROUP BY t.id ORDER BY 1 DESC LIMIT $strana, $max") Živá ukázka: http://sqlfiddle.com/#!2/12ef2/2/0 Výhodou je, že uvnitř dotazu si vytáhneš i počet odpovědí, nemusíš tedy posílat další dotaz. |
||
kincakivca Profil |
#4 · Zasláno: 3. 11. 2013, 12:00:05 · Upravil/a: kincakivca
Taps:
Tabulka topic : id id_fora nazev popis zamceno zalozil a tabulka forum_odpovedi: id zalozil text topic_id zalozeno juriad: Funguje perfektně děkuji :) |
||
Časová prodleva: 11 let
|
0