Avatar billede spidr Nybegynder
14. marts 2003 - 14:20 Der er 8 kommentarer og
2 løsninger

hentning af 20 nyeste fra my sql database

Hvis nu jeg kun vil hente de 20 nyeste inlæg i en mysql database hvordan ser php koden så ud for det?
Avatar billede postndk Nybegynder
14. marts 2003 - 14:27 #1
SELECT * FROM tabel ORDER BY id DESC LIMIT 0,20

Og det er ikke et php spørgsmål Men et mysql
Avatar billede spidr Nybegynder
14. marts 2003 - 14:35 #2
Hm ja har du ret i men tak :) Hva så hvis jeg på en anden side vil have dem der er ældre end de 20 første? :)
Avatar billede avminarm Juniormester
14. marts 2003 - 14:42 #3
du mener et næsteside script?

function Pager($field_to_count, $table_to_use){
    global $pr_side, $total, $pager;

    $pr_side=10;

    if (!isset($_GET['s'])) {
        $_GET['s'] = 0; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
    }

    $totalrow = mysql_query("select count(".$field_to_count.") as total from ".$table_to_use."") or die (mysql_error());
    $total = mysql_result($totalrow,0);

    $pager = $_GET['s'].",".$pr_side;
    /**************************************/
    /* definerer udskriv næste funktionen */
    /**************************************/
    function PrintPager(){
        global $pr_side, $total;
       
        /* Find ud af om derskal være et Forrige link */
        if ($_GET['s'] >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
            $previous_s = $_GET['s']-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
            echo "<a href=\"".$_SERVER['PHP_SELF']."?s=$previous_s\">Forrige</a>&nbsp;"; //Udskriver linket
        }

        /* Find ud af hvis/hvor mange sider der er rows til */
        $page = 1; //Definerer hvor sidetal skal starte
        for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
            if ($start != $_GET['s']) { //Tjekker om linket vil komme til at pege på den side man er på
                echo "<a href=\"".$_SERVER['PHP_SELF']."?s=$start\">$page</a>&nbsp;"; //...hvis ikke, udskrives link med værdien af $page
            } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
                if($total >= 5) { echo "[$page]&nbsp;"; }//...udskrives værdien af $page bare, altså ikke som link
            }
            $page++; //Lægger en til $page til næste gang løkken køres
        }

        /* Find ud af om der skal være et næste link */
        if ($total > $_GET['s']+$pr_side) { //Tjekker om der er flere sider
            $next_s = $_GET['s']+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
            echo "<a href=\"".$_SERVER['PHP_SELF']."?s=$next_s\">Næste</a>"; //Udskriver linket "næste"
        }
        echo "</tr></table>";
    }//end funktion PrintPager()
}// end funktion Pager()
?>

lavet ud fra http://www.delfs.dk/articles/danish/Side123.php
Avatar billede postndk Nybegynder
14. marts 2003 - 14:44 #4
altså du vil lave noget paging, så du har 20 på hver side ? ...
kig her :
http://www.sindrem.com/databaser/vis_side.php?site=paging

der er lige hvad du søger
Avatar billede spidr Nybegynder
14. marts 2003 - 14:48 #5
Hehe var nu ik det jeg mente :)
bare såen så jeg kan vise de 20 nyeste på forsiden og så ALLE de andre på næste side :) men najs script manglede jeg også i en andne sammen hæng :)
Avatar billede avminarm Juniormester
14. marts 2003 - 15:10 #6
så laver du bare en
SELECT * FROM tabel ORDER BY id DESC LIMIT 0,20
på forsiden og resten på side 2
SELECT * FROM tabel ORDER BY id DESC LIMIT 20,3000
Avatar billede avminarm Juniormester
14. marts 2003 - 15:15 #7
det er self nok smartest at lave noget num_rows først og derefter benytte denne var som limet afgrænser ;o)
SELECT * FROM tabel ORDER BY id DESC LIMIT 20,$num
Avatar billede spidr Nybegynder
14. marts 2003 - 15:20 #8
Hehe tusind tak :)
Avatar billede spidr Nybegynder
14. marts 2003 - 21:37 #9
Hva nu hvis jeg har to table ved siden af hinanden og gerne vil vise halvdelen i den ene og den anden halv del i den anden?
Avatar billede avminarm Juniormester
15. marts 2003 - 21:59 #10
så finder du num_rows dividerer med 2 og sætter limet efter det
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

IT-JOB