12. april 2005 - 17:09Der er
12 kommentarer og 1 løsning
Hjælp til kriterier i where sætning
Hej så er jeg her igen med mit Forum det eneste jeg mangler nu er en post som skal tæller hvor mange indlæg der i hvert emne men jeg kan ikke rigtigt få den til det:( jeg har skrevet følgende $for = mysql_query("select * from post order by post_id DESC"); $t = mysql_query("select * from forum,post where post.post_id = forum.post_id");
jeg mangler en måde hvor den checker med id'et fra hvert emne har prøvet med $_GET[post_id] men det virker ikke nogle der kan hjælpe mig :)
Select count(*) as antal from forum where post_id = XX
den vil returnere hvormange poster der er i tabellen forum for det angivne post_id (XX).
Jeg er ikke så skarp til sql, men det skulle ikke undre mig hvis der fandtes en kode til at samle det i et udtræk, men jeg plejer at gøre det for hver post..
ja men ser du jeg har 2 tabeller hvor tabellen post indeholder post_id(primær) og tabellen forum som indeholder id(primær) og post_id når jeg så skriver noget i min form indsætter mit script den primær nøgle fra post over i post_id feltet i forum tabellen
ja og det er netop det tal du skal bruge i din where clause.. altså tallet der repræsentere en post i posttabellen.. det id som du gemmer i forum relaterer til en post i posttabellen .. eksempelvis post_id = 5...
Derfor skal du også tage alle de rækker der er i forum tabellen med post_id = 5 og tælle dem.. det er vel det du ønsker ikke? ellers har jeg misforstået dig..
her er siden jeg roder med hvad gør jeg forkert som sagt hedder den primær nøgle i post tabellen post_id og feltet det skal samlignes med hedder også post_id i forum tabellen
include("forbind.php"); $for = mysql_query("select * from post order by post_id DESC"); $t = mysql_query("select count(*) as antal from post,forum where forum.post_id = post.post_id");
if(mysql_num_rows($for)<1){echo"Desværre der er ingen emner i forummet på nuværende tidspunkt <a href=\"tilfoj.php\">Tilføj emne</a>";}else{ while($data = mysql_fetch_array($for)){ ?> <h1 align="center">Velkommen til Fysiurgisk massage's Forum</h1> <center><div id="ny"><a href="tilfoj.php">Tilføj emne</a></div></center> <table align="center" width="200" border="1" cellpadding="0" cellspacing="0" style="color:white;"> <tr><td>Emne Titel</td><td>Antal poster</td> <? echo "</tr><tr><td width=\"100\"><b><a href=\"vis.php?id=$data[0]\">$data[1]</a></b><br />".date("j/n-Y",$data[3]). "</td><td><center>".count($t)."</center></td></tr></table><br /><br />";}}?>
nej ikke helt echo mysql_num_rows($for) har jeg rodet med men den tæller alle posterne i tabellen og jeg vil jo kun tælle dem hvor posterne er de samme i begge tabeller vel og mærke at de er i den post der bliver udskrevet fra tabellen :)
Hmm du skal jo heller ikke bare sige select * from tabel.. du skal sige "select * from forum where post_id = X"..
Jeg ved sku ikke lige hvordan jeg skal forklare dig det.. men X repræsenterer den række i post tabellen hvor du har dine poster... når du så har det post_id (X) kan du gå ind i forum tabellen og tælle de poster der har samme post_id som er fremmednøgle til post..
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.