Avatar billede Lowenti Nybegynder
23. december 2010 - 19:03 Der er 21 kommentarer og
1 løsning

Tæller fra Database mm.

Hej Jeg er ved at lave min egen blog, og har så nogle over emner, hvor jeg gerne ville at den viste hvor mange indlæg der evt. er om det gældende overemne.. F.eks. Hvid den hedder Engelske digte, så ville den vise hvor mange engelske digte der er, og hvis ingen, så skrive at der ingen er..
Har prøvet at google på et script, men har intet fundet..

Det andet er, at jeg gerne ville, at den trak dem ud, efter hvornår de er e oprettet.. Sådan at den nyeste altid kommer først..

Er der nogen der kan hjælpe? Skal I se mit script først?
Poster det gerne..

På forhånd tak.
Avatar billede webweaver Praktikant
23. december 2010 - 21:30 #1
Well det burde være overkommeligt.

Nu ved jeg ikke hvordan dit system er bygget op, men de 2 kriterier bør kunne klares med lidt simpel SQL.

$query = mysql_query("SELECT * FROM tabel WHERE overemne = 'Engelske digte' ORDER BY id DESC") or die(mysql_error());

$count = mysql_num_rows($query);


Ovenstående er skrevet ud fra at du har en tabel og hvert indlæg har et felt hvor der står hvilket over-emne det hører inden under. Det kan både være et navn eller et id. Den vil trække dem ud som har over-emnet "Engelske digte". Ydermere vil den sortere dem i rækkefølge ud fra id, hvor den nyeste vil komme først.

Variablen $count; indeholder det antal indlæg som der er under "Engelske digte" :)

Sig til, hvis du er i tvivl om noget ...
Avatar billede Lowenti Nybegynder
23. december 2010 - 23:40 #2
Min kode ser sådan her ud..

<?php
            include('connect.php');
                $emneid = $_GET['id'];
                $query = mysql_query("SELECT * FROM emner WHERE over ='$emneid'") or die(mysql_error());
           
                    while($row = mysql_fetch_assoc($query)){ 
               
                $tekst = $row['tekst'];
                $titel = $row['titel'];
                $billed = $row['billednavn'];
                $oversigtid = $row['id'];
               
                        echo "<tr><td class='img' rowspan'6' width='80'>";
                        echo "<a target='_new' href='billeder/". $billed ."'><img src='billeder/thumb_".$billed . "' class='no_border'</img>";
                        echo "</td>";
                        echo "<td class='border' width='670'><br />";
                //echo"&nbsp;";
                        echo "&nbsp;&nbsp;<a href='oversigt2.php?id=$oversigtid'>$titel</a><br />";
                        echo"&nbsp;&nbsp;&nbsp;";
                        echo $tekst;
                        echo "<br /></td></tr>";                               
               
                //echo "<a href='visemne.php?id=$r[id]'>$titel</a><br/>";
                //    echo $tekst;
            //    echo"<li><b>$titel</b><br>$tekst</li>";
                            } echo"</table>";
?> <br /><br /><br />
           
            <?
Avatar billede webweaver Praktikant
23. december 2010 - 23:49 #3
$query = mysql_query("SELECT * FROM emner WHERE over = '$emneid'") or die(mysql_error());

rettes til

$query = mysql_query("SELECT * FROM emner WHERE over = '$emneid' ORDER BY id DESC") or die(mysql_error());

$count = mysql_num_rows($query);

og så skal du bare echo $count; det sted, hvor du gerne vil vise antal indlæg.
Avatar billede Lowenti Nybegynder
23. december 2010 - 23:53 #4
Fedt, tusinde tak.. Viser den det så i tal?
Avatar billede Lowenti Nybegynder
23. december 2010 - 23:55 #5
Den melder fejl :(
Avatar billede Lowenti Nybegynder
23. december 2010 - 23:58 #6
Har løst det..

Se her, http://mylifeblog.ldj-design.dk/oversigt.php?id=2
Jeg ville gerne at den viste indenfor hver af de der genre der nu er, hvor mange under tekster eller hvad man skal kalde dem, der er ... Og hvis der ingen er, så skrive at der er ingen indlæg..
Avatar billede webweaver Praktikant
24. december 2010 - 00:36 #7
Der skulle ikke være fejl i det jeg har postet. Det er nok en tastefejl du har et sted så. Men fint at du har fået det løst.

Sådan som jeg ser det nu, tæller den de 3 rækker som vises på skærmen. Det er ikke dem som den skal tælle? Men de rækker/poster som er inde under "Engelske Tekster" fx? Og der er 1 stk. som jeg ser det lige nu?

Ligger de tekster i samme tabel som "genrene" eller?

Linien jeg bad dig om at rette, retter du tilbage til det gamle igen.

$query = mysql_query("SELECT * FROM emner WHERE over = '$emneid'") or die(mysql_error());


Så skal du lave et udtræk mere, som tæller de indlæg inde under den enkelte kategori.

Jeg ved ikke hvordan dine tabeller er bygget op, så det er lidt svært at vide, men kan se at "Engelske Tekster" har et id svarende til 8. Så du må have et felt i din tabel over indlæg, som indeholder det 8-tal, og derfor bliver vist i den kategori.

Du kan så lave et SQL udtræk som ser således ud;

$count = mysql_error(SELECT COUNT(*) AS tal FROM tabel WHERE kategori = '$id'") or die(mysql_error());

echo mysql_result($count,0);


tabel = den tabel med indlæg i
kategori = det feltnavn hvor 8-tal står i
$id = 8-tallet.

Dit færdige script vil se ud noget ala;

<?php
            include('connect.php');
                $emneid = $_GET['id'];
                $query = mysql_query("SELECT * FROM emner WHERE over ='$emneid'") or die(mysql_error());
           
                    while($row = mysql_fetch_assoc($query)){ 
               
                $tekst = $row['tekst'];
                $titel = $row['titel'];
                $billed = $row['billednavn'];
                $oversigtid = $row['id'];

                $count = mysql_error(SELECT COUNT(*) AS tal FROM tabel WHERE kategori = '$oversigtid'") or die(mysql_error());

                $count = mysql_result($count,0);

              if (!$count) {

                  $math = "Ingen indlæg tilføjet";

              } else {

                  $math = $count;

              }

echo "<tr><td class='img' rowspan'6' width='80'>";
                        echo "<a target='_new' href='billeder/". $billed ."'><img src='billeder/thumb_".$billed . "' class='no_border'</img>";
                        echo "</td>";
                        echo "<td class='border' width='670'><br />";
                //echo" ";
                        echo "  <a href='oversigt2.php?id=$oversigtid'>$titel</a><br />";
                        echo"   ";
                        echo $tekst;
                        echo $math;
                        echo "<br /></td></tr>";                               
               
                //echo "<a href='visemne.php?id=$r[id]'>$titel</a><br/>";
                //    echo $tekst;
            //    echo"<li><b>$titel</b><br>$tekst</li>";
                            } echo"</table>";
?> <br /><br /><br />
           
            <?
Avatar billede Lowenti Nybegynder
24. december 2010 - 01:05 #8
Den siger der er fejl der:
$count = mysql_error(SELECT COUNT(*) AS tal FROM tekster WHERE emne = '$oversigtid'") or die(mysql_error());

Har kopieret det præcist efter..
Og så lige rettet det.. Men den melder fejl i programmeringsprogrammet..
Avatar billede Lowenti Nybegynder
24. december 2010 - 01:09 #9
Aaah der manglede " før SELECT - men den melder stadig fejl på siden..

http://mylifeblog.ldj-design.dk/oversigt.php?id=1
Avatar billede webweaver Praktikant
24. december 2010 - 01:24 #10
Hvordan ser linie 46 ud?
Avatar billede Lowenti Nybegynder
24. december 2010 - 01:25 #11
$count = mysql_error("SELECT COUNT(*) AS id FROM tekster WHERE emne = '$oversigtid'") or die(mysql_error());
Avatar billede Lowenti Nybegynder
24. december 2010 - 01:27 #12
Ups, den ser sådan her ud:
$count = mysql_error("SELECT COUNT(*) AS tal FROM tekster WHERE emne = '$oversigtid'") or die(mysql_error());
Avatar billede webweaver Praktikant
24. december 2010 - 01:33 #13
Ahh, det er jo fordi at jeg er ved at være træt kan jeg da godt se. Jeg har skrevet noget værre vrøvl til dig!

Den skal se sådan her ud,

$count = mysql_query("SELECT COUNT(*) AS tal FROM tekster WHERE emne = '$oversigtid'") or die(mysql_error());
Avatar billede Lowenti Nybegynder
24. december 2010 - 01:36 #14
Jaaaaaa, nu virker det.. Taaaaak..
Hehe kan da ikke forstå, at man er træt på denne tid :p

Tusinde tak for hjælpen..

Glædelig jul..
Avatar billede Lowenti Nybegynder
24. december 2010 - 01:42 #15
Hvordan gør du egentligt sådanne at koden er på blå baggrund?, Altså herinde??
Avatar billede webweaver Praktikant
24. december 2010 - 01:43 #16
Super :) Burde det nu også.

Ja hehe, hvad er det for noget! Skal da være frisk 24/7 for at yde support hos Eksperten på konstant niveau! :D

Det var ihvertfald så lidt, og du må også have en glædelig jul :-)
Avatar billede webweaver Praktikant
24. december 2010 - 01:46 #17
Du kan se nærmere omkring BB-tags på Eksperten her,
http://www.eksperten.dk/guide/1325
Avatar billede Lowenti Nybegynder
24. december 2010 - 01:47 #18
Hehe ja... :D
Må jeg skrive igen, om jeg mangler hjælpe?
For det kommer helt sikkert, og du virker jo som om du har totalt styr på det der PHP. :D Det er jeg ikke helt god til endnu.. Selvom jeg er uddannet Web-integrator.. :(
Vi havde mest lære-selv timer.. Og jeg skal helst have tingene gjort og forklaret, før jeg forstår bedst :D

Takker :D
Avatar billede Lowenti Nybegynder
24. december 2010 - 01:53 #19
Iøvrigt, flot hjemmeside, du har.. :D
Avatar billede webweaver Praktikant
24. december 2010 - 11:40 #20
Jamen selvfølgelig må du gerne spørge igen herinde, hvis du mangler hjælp :) Du kan oprette en ny tråd, når som helst du har lyst :-)

Mange tak for roserne :)
Avatar billede Lowenti Nybegynder
25. december 2010 - 01:05 #21
Hehe, mente nu mere om jeg måtte spørge dig... :D
Avatar billede webweaver Praktikant
25. december 2010 - 01:27 #22
Ja du må gerne spørge mig :) Men der sidder jo også andre herinde, som er dygtige og kan hjælpe dig, hvis du sidder med et problem.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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