Avatar billede nielschristiansen Nybegynder
12. april 2005 - 17:09 Der 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 :)
Avatar billede jokkejensen Novice
12. april 2005 - 17:40 #1
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..
Avatar billede nielschristiansen Nybegynder
12. april 2005 - 18:47 #2
når jeg sætter dette ind $t= mysql_query("Select count(*) as antal from forum where post_id = 'post_id'")skriver den
Resource id #4
Avatar billede jokkejensen Novice
12. april 2005 - 18:57 #3
post_id er vel en integer ?

du har godt nok en post tabel, med nogle "poster" .. og disse poster har et post_id hvilket du har bygget din forum tabel om ik ?

Så skal det vel hellere ikke være "where post_id = 'post_id'", men "where post_id = '3'" altså det tal der svarer til din primær nøgle i post..
Avatar billede nielschristiansen Nybegynder
12. april 2005 - 19:08 #4
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
Avatar billede jokkejensen Novice
12. april 2005 - 19:14 #5
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..
Avatar billede nielschristiansen Nybegynder
12. april 2005 - 20:22 #6
jo det er jeg kigger på det når jeg kommer hjem og skriver til dig i morgen men tak for hjælpen indtil vidre
Avatar billede nielschristiansen Nybegynder
13. april 2005 - 02:27 #7
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 />";}}?>
Avatar billede jokkejensen Novice
13. april 2005 - 10:36 #8
det er jo php ?
Avatar billede nielschristiansen Nybegynder
13. april 2005 - 12:40 #9
ja men php henter jo dataen i mysql på baggrund af  forespøgslen men jeg skulle måske have spurgt under php ?
Avatar billede jokkejensen Novice
13. april 2005 - 12:48 #10
nej men jeg kan bare ikke lige overskue et server script som jeg ikke kender til :)

Men det er ok..

Med php kan du læse antallet af poster uden at bruge count, men det kan du vel med de fleste..

$query = mysql_query("select * from tabel");
echo mysql_num_rows($query);

Dette skulle gerne udskrive antallet af rækker i dine query.. kan du bruge det til noget ?
Avatar billede nielschristiansen Nybegynder
13. april 2005 - 14:41 #11
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 :)
Avatar billede jokkejensen Novice
13. april 2005 - 15:05 #12
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..
Avatar billede nielschristiansen Nybegynder
14. april 2005 - 09:34 #13
jeg prøver lige i php men tak for hjælpen
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