Avatar billede nizo Nybegynder
06. marts 2005 - 09:50 Der er 45 kommentarer og
1 løsning

Paging, hjælp!

Jeg vil hører om der er nogle er jer der ka gi mig en kode paa en funktionel paging funktion..
Alle de jeg har fundet over søgemaskiner osv. virker bare ikke for mig.. enten kommer det fejl eller ogsaa viser den kun én værdi selvom den sku vise 10 pr. side og de andre sider bliver der vist den samme..
Nogle der ka hjælpe med et saadan system?


(Paging er en maade med php/mysql at ligge sider paa hva der bliver vist af data)
Avatar billede krydset Nybegynder
06. marts 2005 - 10:03 #1
Avatar billede nizo Nybegynder
06. marts 2005 - 10:21 #2
Det virker ikke alle værdierne fra db'en bliver vist paa samm side og hvis man skifter side er det de samme igen :S

Jeg bruger koden som den ser ud her:

<?php

// Database Connection
include 'db_ind.inc';

// If current page number, use it
// if not, set one!

if(!isset($_GET['page'])){
    $page = 1;
} else {
    $page = $_GET['page'];
}

// Define the number of results per page
$max_results = 1;

// Figure out the limit for the query based
// on the current page number.
$from = (($page * $max_results) - $max_results);

// Perform MySQL query on only the current page number's results

$sql = mysql_query("SELECT * FROM nyheder LIMIT $from, $max_results");

while($row = mysql_fetch_array($sql)){
    // Build your formatted results here.
    echo $row['title']."<br />";
}

// Figure out the total number of results in DB:
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM nyheder"),0);

// Figure out the total number of pages. Always round up using ceil()
$total_pages = ceil($total_results / $max_results);

// Build Page Number Hyperlinks
echo "<center>Select a Page<br />";

// Build Previous Link
if($page > 1){
    $prev = ($page - 1);
    echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$prev\"><<Previous</a>&nbsp;";
}

for($i = 1; $i <= $total_pages; $i++){
    if(($page) == $i){
        echo "$i&nbsp;";
        } else {
            echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$i\">$i</a>&nbsp;";
    }
}

// Build Next Link
if($page < $total_pages){
    $next = ($page + 1);
    echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$next\">Next>></a>";
}
echo "</center>";
?>

Gør jeg noget forkert?
Avatar billede sukos Juniormester
06. marts 2005 - 11:34 #3
Der er da flere eksempler her på exp som virker.
Har du prøvet at søge?
Avatar billede nizo Nybegynder
06. marts 2005 - 14:15 #4
Ja men jeg har svært ved at faa noget af det til at virke..
Har du ikke et exempel eller noget du ahr brugt?
Det vil simpelhen bare ikke virke, eller jeg maa jo gøre noget forkert, men jeg ved ikke hvad :?
Avatar billede sukos Juniormester
06. marts 2005 - 14:17 #5
Avatar billede nizo Nybegynder
06. marts 2005 - 14:29 #6
Jeg fatter det virkelig ikke..
Avatar billede sukos Juniormester
06. marts 2005 - 14:33 #7
:O) det er ok, det er sgutte heller altid nemt....... Lige indtil man fatter!

anyway, der er to funktioner, den ene laver blot et link, den næste finder ud af om der skal være link til næste/forrige

Og funktionen kaldes med

make_sublinks(5, 10, "vis");

5 er pr. side
10 er det samlede antal ialt
vis er get variablen som skal sættes, for at vise næste/forrige

Men prøv at kopiere scriptet, så kan det være du er lidt mere med?
Avatar billede nizo Nybegynder
06. marts 2005 - 14:50 #8
Scriptet er meget rodet..
Jeg ka ikk faa det til at hænge sammen :/
Avatar billede sukos Juniormester
06. marts 2005 - 14:51 #9
Hvad får du ikke til at hænge sammen?

Du skal blot kopiere de to funktioner, og så bruge make_sublinks()
Avatar billede nizo Nybegynder
06. marts 2005 - 14:55 #10
Fatal error: Call to undefined function: tohtml() in /var/www/html/login/bah.php on line 29
Avatar billede sukos Juniormester
06. marts 2005 - 14:57 #11
Prøv at kopiere dette, og load det i din browser:

(Og hov, trak det fra noget andet, så der er lige en bøf!!!! toHtml() Så'n er det jo!)
Men prøv dette:

<?php

function make_link($getvar, $tx, $filnavn="", $class="") {
if(empty($filnavn)) {
$filename = $_SERVER["PHP_SELF"];
}else{
$filename = $filnavn;
}
return "<a href=\"". $filename . $getvar ."\" class=\"". $class ."\">". htmlentities($tx) ."</a>";
}

function make_sublinks($antalviste, $ialt, $getvar, $qstring="") {

if($ialt > $antalviste) {

if(isset($_GET[$getvar]) && $_GET[$getvar] >= $ialt) {
return;
}

if(!empty($qstring)) {
$qlink = $qstring ."&amp;". $getvar ."=";
}else{
$qlink = "?". $getvar ."=";
}

    if(!isset($_GET[$getvar]) || !is_numeric($_GET[$getvar]) || $_GET[$getvar] < 0) {
    $back = "&nbsp;";
    $next = make_link($qlink . $antalviste, "næste") ." &nbsp; ". make_link($qlink . ($ialt-$antalviste), ">>");
    $info = "1 - ". $antalviste ." af ". $ialt;
    }else{
    $info = ($_GET[$getvar]+1) ." - ". ($_GET[$getvar]+$antalviste) ." af ". $ialt;

        if($_GET[$getvar] <= $antalviste) {
        $linket = $qstring;
        }elseif($_GET[$getvar] >= $ialt) {
        $linket = $qlink . ($ialt-$antalviste);
        }else{
        $linket = $qlink . ($_GET[$getvar]-$antalviste);
        }
        $back = make_link($qstring, "<<") ." &nbsp; ". make_link($linket, "forrige");

        if(($_GET[$getvar]+$antalviste) >= $ialt) {
        $next = "&nbsp;";
        $info = ($_GET[$getvar]+1) ." - ". $ialt ." af ". $ialt;
        }else{
        $next = make_link($qlink . ($_GET[$getvar]+$antalviste), "næste");
            if($_GET[$getvar] < ($ialt-$antalviste)) {
            $next = $next ." &nbsp; ". make_link($qlink . ($ialt-$antalviste), ">>");
            }
        }
    }

echo"<table width=\"400\" border=\"0\" align=\"center\"><tr>\n";
echo"    <td width=\"33%\" class=\"small\">". $back ."</td>\n";
echo"    <td width=\"34%\" class=\"small\" align=\"center\">". $info ."</td>\n";
echo"    <td width=\"33%\" class=\"small\" align=\"right\">". $next ."</td>\n";
echo"</tr></table>";
    }
}

make_sublinks(5, 36, "vis");

echo"<p>";

make_sublinks(10, 13, "next", "?getvar=en_mere")

?>
Avatar billede nizo Nybegynder
06. marts 2005 - 15:00 #12
http://unpro.dk/login/bah.php

Men hva saa naar den ska viser værdier fra db'en?
Avatar billede sukos Juniormester
06. marts 2005 - 15:03 #13
Jahhh, prøv at læse kommentare i det andet spm.

1. Find hvor mange der er ialt

2. Find ud af om der er klikket på næste/forrige side, og hent poster fra DB'en ud fra det, ved at bruge LIMIT i query'en
Avatar billede nizo Nybegynder
06. marts 2005 - 15:05 #14
Der sker bare intet..
Avatar billede sukos Juniormester
06. marts 2005 - 15:06 #15
Det er jo svært at kommentere, når man ikke kan se hvad der skal ske!
Avatar billede nizo Nybegynder
06. marts 2005 - 15:08 #16
Min kode:

<?php
require('db.inc');

$all = mysql_query("SELECT COUNT(id) FROM `nyheder`") or die (mysql_error());
$antal = mysql_result($all, 0);
mysql_free_result($all);


if(!isset($_GET["vis"]) || !is_numeric($_GET["vis"])) {
$start = 0;
}else{
    if($_GET["vis"] >= $antal) {
    $start = $antal-1;
    }else{
    $start = $_GET["vis"];
    }
}

$per_side = 5;

$getinfo = mysql_query("SELECT * FROM `nyheder` LIMIT ". $start .",". $per_side ."") or die (mysql_error());

function make_link($getvar, $tx, $filnavn="", $class="") {
if(empty($filnavn)) {
$filename = $_SERVER["PHP_SELF"];
}else{
$filename = $filnavn;
}
return "<a href=\"". $filename . $getvar ."\" class=\"". $class ."\">". htmlentities($tx) ."</a>";
}

function make_sublinks($antalviste, $ialt, $getvar, $qstring="") {

if($ialt > $antalviste) {

if(isset($_GET[$getvar]) && $_GET[$getvar] >= $ialt) {
return;
}

if(!empty($qstring)) {
$qlink = $qstring ."&amp;". $getvar ."=";
}else{
$qlink = "?". $getvar ."=";
}

    if(!isset($_GET[$getvar]) || !is_numeric($_GET[$getvar]) || $_GET[$getvar] < 0) {
    $back = "&nbsp;";
    $next = make_link($qlink . $antalviste, "næste") ." &nbsp; ". make_link($qlink . ($ialt-$antalviste), ">>");
    $info = "1 - ". $antalviste ." af ". $ialt;
    }else{
    $info = ($_GET[$getvar]+1) ." - ". ($_GET[$getvar]+$antalviste) ." af ". $ialt;

        if($_GET[$getvar] <= $antalviste) {
        $linket = $qstring;
        }elseif($_GET[$getvar] >= $ialt) {
        $linket = $qlink . ($ialt-$antalviste);
        }else{
        $linket = $qlink . ($_GET[$getvar]-$antalviste);
        }
        $back = make_link($qstring, "<<") ." &nbsp; ". make_link($linket, "forrige");

        if(($_GET[$getvar]+$antalviste) >= $ialt) {
        $next = "&nbsp;";
        $info = ($_GET[$getvar]+1) ." - ". $ialt ." af ". $ialt;
        }else{
        $next = make_link($qlink . ($_GET[$getvar]+$antalviste), "næste");
            if($_GET[$getvar] < ($ialt-$antalviste)) {
            $next = $next ." &nbsp; ". make_link($qlink . ($ialt-$antalviste), ">>");
            }
        }
    }

echo"<table width=\"400\" border=\"0\" align=\"center\"><tr>\n";
echo"    <td width=\"33%\" class=\"small\">". $back ."</td>\n";
echo"    <td width=\"34%\" class=\"small\" align=\"center\">". $info ."</td>\n";
echo"    <td width=\"33%\" class=\"small\" align=\"right\">". $next ."</td>\n";
echo"</tr></table>";
    }
}

make_sublinks(5, 36, "vis");

echo"<p>";

make_sublinks(10, 13, "next", "?getvar=en_mere")

?>
Avatar billede sukos Juniormester
06. marts 2005 - 15:10 #17
Så prøv med:

make_sublinks($per_side, $antal, "vis");

Mener den første query er ok, men er ikke lige 100% Altså den med at finde antal i det hele
Avatar billede sukos Juniormester
06. marts 2005 - 15:15 #18
Eller,

while($v = mysql_fetch_array($getinfo)) {
echo $v["id"] ."<br>";
}

echo"<p>";

make_sublinks($per_side, $antal, "vis");

i bunden af scriptet.
Avatar billede nizo Nybegynder
06. marts 2005 - 15:20 #19
Okay, nu tæller den hvertfald..
Men hvordan faar jeg den til at vise de værdier der er?
Avatar billede sukos Juniormester
06. marts 2005 - 15:22 #20
jahhh, prøv at kikke på min sidste kommentar!
Avatar billede sukos Juniormester
06. marts 2005 - 15:26 #21
Som det ser ud, har du vist kun 2 poster i din tabel.
Avatar billede nizo Nybegynder
06. marts 2005 - 15:27 #22
Det her er min kode jeg skal ha paged..

      <?php
require('db.inc');
$query = mysql_query("SELECT * FROM nyheder ORDER BY id DESC LIMIT 100") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
?>
      <table width="425">
        <tr>
          <td class="emnetd" width="321">Emne:
          &nbsp;
          <b>
            <?=$row[overskrift];?>
            </b></td>
        </tr>
        <tr>
          <td>
            <?=$row[nyhed];?>
          </td>
        </tr>
        <tr>
          <td width="92"><div class="aftd"><font color="#BFBFBF"><i>
            <?=$row[dato];?>  - 
            </i>Af: <b>
            <?=$row[forfatter];?> 
            </b>
           
<i><b><font color="#FF0000">*Admin*</font></b></i>


                </font> </div></td>
        </tr>
      </table>
      <br /><br />
      <?php
}
?>

Hva ska jeg saa gøre for at faa det paged?
Avatar billede nizo Nybegynder
06. marts 2005 - 15:27 #23
yep, det er rigtig, kun 2..
Avatar billede sukos Juniormester
06. marts 2005 - 15:31 #24
Så vises der jo heller ikke noget link til næste/forrige.

Dit sidste spm.
Find først hvor mange poster der er
Dernæst, i din $query, skal du jo så ha' en LIMIT på som i ovenstående eks. ($getinfo)
Avatar billede nizo Nybegynder
06. marts 2005 - 15:35 #25
Hmm..
-----
You have an error in your SQL syntax near '' at line 1
-----

gjorde saadan her:
$all = mysql_query("SELECT COUNT(id) FROM `nyheder` LIMIT $getinfo") or die (mysql_error());

:/
Avatar billede nizo Nybegynder
06. marts 2005 - 15:37 #26
Hvis jeg sætter et andet antal pr. side ex.

$per_side = 1;

Viser den det samme paa hver side (p.t 1)
Avatar billede sukos Juniormester
06. marts 2005 - 15:41 #27
$getinfo er jo en query!
Og vil du bruge PHP i en query, er det en go' ide at adskille mysql og php

$tabel = "nyheder";
$all = mysql_query("SELECT COUNT(id) FROM `". $tabel ."`") or die (mysql_error());
Avatar billede sukos Juniormester
06. marts 2005 - 15:44 #28
Og vil du kun vise en enkelt nyhed, skal du nok lave din query på en anden måde

$query = mysql_query("SELECT * FROM `nyheder` WHERE `id` = '". $_GET["vis"] ."'") or die(mysql_error());

og så bruger du ikke en while() men blot
$v = mysql_fetch_array($query);

while bruges for at vise flere rækker, men er jo ikke nødvendig hvis du kun vil vise en enkelt af gangen
Avatar billede nizo Nybegynder
06. marts 2005 - 15:45 #29
Det sker p.t ingen ting :/
Avatar billede sukos Juniormester
06. marts 2005 - 15:46 #30
Prøv at vise den kode du bruger lige nu
Avatar billede nizo Nybegynder
06. marts 2005 - 15:48 #31
i filen bah.php bruger jeg:

<?php
require('db.inc');
$tabel = "nyheder";
$all = mysql_query("SELECT COUNT(id) FROM `". $tabel ."`") or die (mysql_error());
$antal = mysql_result($all, 0);
mysql_free_result($all);



if(!isset($_GET["vis"]) || !is_numeric($_GET["vis"])) {
$start = 0;
}else{
    if($_GET["vis"] >= $antal) {
    $start = $antal-1;
    }else{
    $start = $_GET["vis"];
    }
}

$per_side = 1;

$getinfo = mysql_query("SELECT * FROM `nyheder` LIMIT ". $start .",". $per_side ."") or die (mysql_error());

function make_link($getvar, $tx, $filnavn="", $class="") {
if(empty($filnavn)) {
$filename = $_SERVER["PHP_SELF"];
}else{
$filename = $filnavn;
}
return "<a href=\"". $filename . $getvar ."\" class=\"". $class ."\">". htmlentities($tx) ."</a>";
}

function make_sublinks($antalviste, $ialt, $getvar, $qstring="") {

if($ialt > $antalviste) {

if(isset($_GET[$getvar]) && $_GET[$getvar] >= $ialt) {
return;
}

if(!empty($qstring)) {
$qlink = $qstring ."&amp;". $getvar ."=";
}else{
$qlink = "?". $getvar ."=";
}

    if(!isset($_GET[$getvar]) || !is_numeric($_GET[$getvar]) || $_GET[$getvar] < 0) {
    $back = "&nbsp;";
    $next = make_link($qlink . $antalviste, "næste") ." &nbsp; ". make_link($qlink . ($ialt-$antalviste), ">>");
    $info = "1 - ". $antalviste ." af ". $ialt;
    }else{
    $info = ($_GET[$getvar]+1) ." - ". ($_GET[$getvar]+$antalviste) ." af ". $ialt;

        if($_GET[$getvar] <= $antalviste) {
        $linket = $qstring;
        }elseif($_GET[$getvar] >= $ialt) {
        $linket = $qlink . ($ialt-$antalviste);
        }else{
        $linket = $qlink . ($_GET[$getvar]-$antalviste);
        }
        $back = make_link($qstring, "<<") ." &nbsp; ". make_link($linket, "forrige");

        if(($_GET[$getvar]+$antalviste) >= $ialt) {
        $next = "&nbsp;";
        $info = ($_GET[$getvar]+1) ." - ". $ialt ." af ". $ialt;
        }else{
        $next = make_link($qlink . ($_GET[$getvar]+$antalviste), "næste");
            if($_GET[$getvar] < ($ialt-$antalviste)) {
            $next = $next ." &nbsp; ". make_link($qlink . ($ialt-$antalviste), ">>");
            }
        }
    }

echo"<table width=\"400\" border=\"0\" align=\"center\"><tr>\n";
echo"    <td width=\"33%\" class=\"small\">". $back ."</td>\n";
echo"    <td width=\"34%\" class=\"small\" align=\"center\">". $info ."</td>\n";
echo"    <td width=\"33%\" class=\"small\" align=\"right\">". $next ."</td>\n";
echo"</tr></table>";
    }
}

while($v = mysql_fetch_array($getinfo)) {
echo $v["id"] ."<br>";
}

echo"<p>";


make_sublinks(10, 13, "next", "?getvar=en_mere")


?>
Avatar billede sukos Juniormester
06. marts 2005 - 15:55 #32
Du har stadig kun to poster i din tabel!
http://unpro.dk/login/bah.php?vis=1
http://unpro.dk/login/bah.php?vis=2

Og som sagt, ville jeg lave en anden query, når det kun er en pr. side

if(!isset($_GET["vis"]) || !is_numeric($_GET["vis"])) {
$start = 0;
$getid = 0;
}else{
$getid = $_GET["vis"];

    if($_GET["vis"] >= $antal) {
    $start = $antal-1;
    }else{
    $start = $_GET["vis"];
    }
}

$per_side = 1;

$getinfo = mysql_query("SELECT * FROM `nyheder` WHERE `id` = '". $getid ."'") or die (mysql_error());
Avatar billede sukos Juniormester
06. marts 2005 - 15:56 #33
make_sublinks($per_side, $antal, "vis");
Avatar billede nizo Nybegynder
06. marts 2005 - 16:01 #34
Ok..

Men nu ska jeg har sat det sammen med min anden kode..
Den her:
<?php
require('db.inc');
$query = mysql_query("SELECT * FROM nyheder ORDER BY id DESC LIMIT 100") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
?>
      <table width="425">
        <tr>
          <td class="emnetd" width="321">Emne:
          &nbsp;
          <b>
            <?=$row[overskrift];?>
            </b></td>
        </tr>
        <tr>
          <td>
            <?=$row[nyhed];?>
          </td>
        </tr>
        <tr>
          <td width="92"><div class="aftd"><font color="#BFBFBF"><i>
            <?=$row[dato];?>  -
            </i>Af: <b>
            <?=$row[forfatter];?>
            </b>
         
<i><b><font color="#FF0000">*Admin*</font></b></i>


                </font> </div></td>
        </tr>
      </table>
      <br /><br />
      <?php
}
?>

Hvordan gør jeg det?
Avatar billede sukos Juniormester
06. marts 2005 - 16:04 #35
Prøver dig frem!!!

Vi har fundet antal poster ialt
Vi har lavet en ny query, for at hente en bestemt nyhed

prøv, prøv, prøv............ :O)
Avatar billede nizo Nybegynder
06. marts 2005 - 16:12 #36
Jeg er helt tom, ved overhovedet ikke hva jeg ska gøre..
Avatar billede nizo Nybegynder
06. marts 2005 - 16:26 #37
Jeg har prøvet med:

<?php
require('db.inc');

$query = mysql_query("SELECT * FROM nyheder ORDER BY id DESC LIMIT 100") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
?>
      <table width="425">
        <tr>
          <td class="emnetd" width="321">Emne:
          &nbsp;
          <b>
            <?=$row[overskrift];?>
            </b></td>
        </tr>
        <tr>
          <td>
            <?=$row[nyhed];?>
          </td>
        </tr>
        <tr>
          <td width="92"><div class="aftd"><font color="#BFBFBF"><i>
            <?=$row[dato];?>  - 
            </i>Af: <b>
            <?=$row[forfatter];?> -
            </b>
           
<i><b><font color="#FF0000">*Admin*</font></b></i>


                </font> </div></td>
        </tr>
      </table>
      <br /><br />
      <?php
}
?>
<?php
require('db_ind.inc');
$tabel = "nyheder";
$all = mysql_query("SELECT COUNT(id) FROM `". $tabel ."`") or die (mysql_error());
$antal = mysql_result($all, 0);
mysql_free_result($all);



if(!isset($_GET["vis"]) || !is_numeric($_GET["vis"])) {
$start = 0;
$getid = 0;
}else{
$getid = $_GET["vis"];

    if($_GET["vis"] >= $antal) {
    $start = $antal-1;
    }else{
    $start = $_GET["vis"];
    }
}

$per_side = 1;

$getinfo = mysql_query("SELECT * FROM `nyheder` WHERE `id` = '". $getid ."'") or die (mysql_error());

function make_link($getvar, $tx, $filnavn="", $class="") {
if(empty($filnavn)) {
$filename = $_SERVER["PHP_SELF"];
}else{
$filename = $filnavn;
}
return "<a href=\"". $filename . $getvar ."\" class=\"". $class ."\">". htmlentities($tx) ."</a>";
}

function make_sublinks($antalviste, $ialt, $getvar, $qstring="") {

if($ialt > $antalviste) {

if(isset($_GET[$getvar]) && $_GET[$getvar] >= $ialt) {
return;
}

if(!empty($qstring)) {
$qlink = $qstring ."&amp;". $getvar ."=";
}else{
$qlink = "?". $getvar ."=";
}

    if(!isset($_GET[$getvar]) || !is_numeric($_GET[$getvar]) || $_GET[$getvar] < 0) {
    $back = "&nbsp;";
    $next = make_link($qlink . $antalviste, "næste") ." &nbsp; ". make_link($qlink . ($ialt-$antalviste), ">>");
    $info = "1 - ". $antalviste ." af ". $ialt;
    }else{
    $info = ($_GET[$getvar]+1) ." - ". ($_GET[$getvar]+$antalviste) ." af ". $ialt;

        if($_GET[$getvar] <= $antalviste) {
        $linket = $qstring;
        }elseif($_GET[$getvar] >= $ialt) {
        $linket = $qlink . ($ialt-$antalviste);
        }else{
        $linket = $qlink . ($_GET[$getvar]-$antalviste);
        }
        $back = make_link($qstring, "<<") ." &nbsp; ". make_link($linket, "forrige");

        if(($_GET[$getvar]+$antalviste) >= $ialt) {
        $next = "&nbsp;";
        $info = ($_GET[$getvar]+1) ." - ". $ialt ." af ". $ialt;
        }else{
        $next = make_link($qlink . ($_GET[$getvar]+$antalviste), "næste");
            if($_GET[$getvar] < ($ialt-$antalviste)) {
            $next = $next ." &nbsp; ". make_link($qlink . ($ialt-$antalviste), ">>");
            }
        }
    }

echo"<table width=\"400\" border=\"0\" align=\"center\"><tr>\n";
echo"    <td width=\"33%\" class=\"small\">". $back ."</td>\n";
echo"    <td width=\"34%\" class=\"small\" align=\"center\">". $info ."</td>\n";
echo"    <td width=\"33%\" class=\"small\" align=\"right\">". $next ."</td>\n";
echo"</tr></table>";
    }
}

while($v = mysql_fetch_array($getinfo)) {
echo $v["id"] ."<br>";
}

echo"<p>";


make_sublinks($per_side, $antal, "vis");

?>


Men det viser ikke nogle værdier med pagingen
Hva ska jeg gøre?
Avatar billede sukos Juniormester
06. marts 2005 - 16:28 #38
Min fejl,
hvis $_GET["vis"] ikke er sat, skal $getid være 1
$getid = 1;
Avatar billede sukos Juniormester
06. marts 2005 - 16:32 #39
Prøver lige at brygge noget andet sammen.
Avatar billede nizo Nybegynder
06. marts 2005 - 16:36 #40
Ok..
Avatar billede sukos Juniormester
06. marts 2005 - 17:00 #41
Utestet:

<?php
require('db_ind.inc');
$tabel = "nyheder";

$poster = array();
$all = mysql_query("SELECT `id` FROM `". $tabel ."` ORDER BY `id` DESC") or die (mysql_error());
while($p = mysql_fetch_object($all)) {
$poster[] = $p->id;
}

$antal = count($poster);
mysql_free_result($all);


if(!isset($_GET["vis"])) {
$getid = $poster[0];
}else{
$getid = $_GET["vis"];
}


$getinfo = mysql_query("SELECT * FROM `". $tabel ."` WHERE `id` = '". $getid ."'") or die (mysql_error());


if(mysql_num_rows($getinfo) == 1) {
$row = myqsl_fetch_object($getinfo);
?>
      <table width="425">
        <tr>
          <td class="emnetd" width="321">Emne:
          &nbsp;
          <b>
            <?=$row["overskrift"];?>
            </b></td>
        </tr>
        <tr>
          <td>
            <?=$row["nyhed"];?>
          </td>
        </tr>
        <tr>
          <td width="92"><div class="aftd"><font color="#BFBFBF"><i>
            <?=$row["dato"];?>  -
            </i>Af: <b>
            <?=$row["forfatter"];?> -
            </b>
         
<i><b><font color="#FF0000">*Admin*</font></b></i>


                </font> </div></td>
        </tr>
      </table>
      <br /><br />

<?php

echo"<p>";


function get_id($nr, $myarray, $var="") {
if(is_array($myarray)) {
$key = array_search($nr, $myarray);
        if(empty($var)) {
        return @$myarray[$key-1];
        }else{
        return @$myarray[$key+1];
        }
    }else{
return false;
    }
}


if($antal > 1) {

echo"<table width=\"400\" border=\"0\" align=\"center\"><tr>\n";
echo"    <td width=\"33%\" class=\"small\">";

    if(true == get_id($getid, $poster)) {
echo"<a href=\"". $_SERVER["PHP_SELF"] ."?vis=". get_id($getid, $poster) ."\">Forrige</a>";
}else{
echo"&nbsp;";
}


echo"</td>\n";
echo"    <td width=\"34%\" class=\"small\" align=\"center\">". $antal ." nyheder i db</td>\n";
echo"    <td width=\"33%\" class=\"small\" align=\"right\">";

    if(true == get_id($getid, $poster, 1)) {
echo"<a href=\"". $_SERVER["PHP_SELF"] ."?vis=". get_id($getid, $poster, 1) ."\">N&aelig;ste</a>";
}else{
echo"&nbsp;";
}

echo"</td>\n";
echo"</tr></table>";

}

}else{

echo"Fejl! Ingen info at hente i DB";

}
?>
Avatar billede sukos Juniormester
06. marts 2005 - 17:07 #42
FUCK

$row = myqsl_fetch_object($getinfo);

skal være
$row = mysql_fetch_array($getinfo);
Avatar billede nizo Nybegynder
06. marts 2005 - 17:14 #43
Det virker!
Gi et svar..
Men lige to sidste ting..
1)
Hvor er det man ændre data pr. side?

2)
Hvis man ska ha vist siderne mellem Forige og Næste hvordan ka man saa gøre det paa en let maade?
ex.
Forrige  side 1 2 3 4 5 6  Næste
Avatar billede sukos Juniormester
06. marts 2005 - 17:20 #44
1. Her ændrer du ikke antal pr. side. Så skal du bruge det første vi havde gang i

2. Det er helt anden snak! :O)
Den nemme løsning  er

foreach($poster as $ref) {

echo"<a href=\"". $_SERVER["PHP_SELF"] ."?vis=". $ref ."\">". $ref ."</a> ";

}

men så får du jo et problem hvis du har mange poster!
Avatar billede sukos Juniormester
06. marts 2005 - 17:21 #45
Men det første kunne måske også bruges?
altså selvom du kun vil vise en pr side.

ved ikke, kun at jeg nu vil ta' på arbejde!
Avatar billede nizo Nybegynder
06. marts 2005 - 17:29 #46
Ok.. Men, 2) Bliver siderne vist omvendt 321.. Hmm...
Det ville være pænt nice hvis du kunne finde en maade at viser flere paa siden helst p.t 3
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