Avatar billede heavybreezer Nybegynder
11. juni 2005 - 15:06 Der er 7 kommentarer

Order by -problem i PHP

Er det ikke muligt at lave order by ID fra en anden tabel?
Eksempelvis ORDER by tabel2.id ?

Jeg er nemlig igang med at lave en forum, og der skal den tråd med den nyeste post i sig, nemlig gerne vises øverst på listen. Tråde og svar har en tråd hver for sig.
Avatar billede gryn Nybegynder
11. juni 2005 - 15:37 #1
du kan lave en forespørgsel, der ser ud noget i den stil:

SELECT tabel1.emne, count(tabel2.id) FROM tabel1, tabel 2 WHERE tabel2.refID = tabel1.ID GROUP BY tabel2.refID ORDER BY tabel2.ID

Tror jeg... har ikke brøvet selvfølgelig, men håber det giver en ide
Avatar billede heavybreezer Nybegynder
11. juni 2005 - 15:53 #2
Okay nu poster jeg lige min kode.. jeg skal nemlig have WHERE = kategori for at kun udskrive de tråde som ligger  i den bestemte kategori..

webforum_posts er den tabel hvor mine tråde ligger
webforum_replys er den tabel hvor alle svarene ligger


<?

$kategori = $_GET['kategori'];



$postid = $data["id"];
$query2 = mysql_query("SELECT *, count(webforum_replys.id) FROM webforum_posts, webforum_replys WHERE kategori = '".$kategori."' GROUP BY webforum_replys.postid ORDER BY webforum_replys.id DESC") or print mysql_error();


while($data = mysql_fetch_array($query2) ) {







echo "<tr>";
echo "<td width='10' id='forum'><img src='gfx/lock.jpg'></td>";
echo "<td  id='forum' width='500'><a href='show.php?id=".$data["id"]."'>".$data["overskrift"]."</a></td>";
echo "<td align='center' id='forum' width='50'>".$data["bruger"]."</td>";
echo "<td align='center' id='forum' width='50'>45</td>";
echo "<td id='forum' style='padding:5;border-right:0px'>blabla</td>";
echo "</tr>";

}




?>
Avatar billede gryn Nybegynder
11. juni 2005 - 16:52 #3
Hmmm... ser umiddelbart meget fornuftigt ud. Hvordan sorteres dine posts nu?
Avatar billede gryn Nybegynder
11. juni 2005 - 16:57 #4
Måske vil det hjælpe at bytte webforum_replys.id  ud med MAX(webforum_replys.id)
Avatar billede heavybreezer Nybegynder
11. juni 2005 - 17:09 #5
Nope hjalp ikke .. Jamen indtil videre sorterer jeg bare posts efter ID. Men så kommer nyeste tråde bare øverst, og ikke de tråde som har de nyeste indlæg i sig
Avatar billede gryn Nybegynder
11. juni 2005 - 20:06 #6
kan man ikke gå en anden vej måske og lave et view først:

CREATE VIEW replys (max_id, antal) AS SELECT MAX(webforum_replys.id), COUNT(webforum_replys.id) FROM webforum_replys GROUP BY webforum_replys.postid ORDER BY MAX(webforum_replys.id) DESC

På den måde vil du få en tabel med de to informationer, som du er interesseret i, og derudfra lave din forespøgsel.

Ved ikke... virker måske som overkill men jeg kan ikke andet :-(
Avatar billede gryn Nybegynder
11. juni 2005 - 21:29 #7
det letteste ville nok i virkeligheden være at have både posts og replys i samme tabel
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester