Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 02:33 Der er 30 kommentarer

Vis 10 nyheder, og så lave en knap med frem og tilbage

Hvordan laver jeg det med denne kode, så jeg kan se 10 nyheder på siden, og der så automatisk bliver lavet en ny side, med 10 mere. osv.   



      <?php
  $connection = mysql_connect("HOST", "USERS", "PASSWORD");
  mysql_select_db("DATABASE", $connection);

$retultat = mysql_query("SELECT * FROM nyheder order by id desc");
  while($row = mysql_fetch_array($retultat)){
   
    echo "Overskrift:&nbsp;<font size=4>$row[overskrift]</font><br>"; 
    echo "Indsendt af:&nbsp;";   
    echo "<b>$row[navn]</b><br>";
    echo "Nyhed:&nbsp;$row[nyhed]<br>";
    echo "<hr>";
 
}
?>
Avatar billede jaw Nybegynder
26. juni 2004 - 02:39 #1
Godaften...

Tag en backup af din fil - og test:

<?php
  $connection = mysql_connect("HOST", "USERS", "PASSWORD");
  mysql_select_db("DATABASE", $connection);

  $prside = 10;
  if(isset($_GET['s]')) {
    $start = $_GET['s'];
  } else {
    $start = 0;
  }

  $retultat = mysql_query("SELECT * FROM nyheder order by id desc limit $start, $prside");
  while($row = mysql_fetch_array($retultat)){
   
    echo "Overskrift:&nbsp;<font size=4>$row[overskrift]</font><br>"; 
    echo "Indsendt af:&nbsp;";   
    echo "<b>$row[navn]</b><br>";
    echo "Nyhed:&nbsp;$row[nyhed]<br>";
    echo "<hr>";
  }
  $PHP_SELF = $_SERVER['PHP_SELF'];
  $naeste = $s + $prside;
  echo "<a href='$PHP_SELF?s=$naeste'>Næste</a>";
?>

Det er utestet, så sig lige om det funker :)
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 02:46 #2
Kan ses her http://test.ravstedbynet.dk/nyheder1.php virker ikke helt.
Fejl på linje 48
  if(isset($_GET['s]')) {
Avatar billede jaw Nybegynder
26. juni 2004 - 02:51 #3
if(isset($_GET['s'])) {

den sidst ' havde lige skuppet sig en plads
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 02:54 #4
på den igen, linje 64
  $naeste = $s + $prside;

Hvordan laver jeg så en tilbage også
Avatar billede jaw Nybegynder
26. juni 2004 - 02:57 #5
Der skal nok lige tilføjes en enkelt linie:

  $s = $_GET['s'];
  $PHP_SELF = $_SERVER['PHP_SELF'];
  $naeste = $s + $prside;
Avatar billede jaw Nybegynder
26. juni 2004 - 03:00 #6
en tilbage kan du så lave ved:

  $s = $_GET['s'];
  $PHP_SELF = $_SERVER['PHP_SELF'];
  $naeste = $s + $prside;
  $tilbage = $s - $prside;
  echo "<a href='$PHP_SELF?s=$naeste'>Næste</a>";
  echo "<a href='$PHP_SELF?s=$tilbage'>Tilbage</a>";
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 03:02 #7
virker hellere ikke
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 03:03 #8
Undefined index: s in C:\webhotel\test.ravstedbynet.dk\nyheder1.php on line 63
Linje 63: $s = $_GET['s']; 
          $PHP_SELF = $_SERVER['PHP_SELF'];
          $naeste = $s + $prside;
Linje 66: echo "<a href='$PHP_SELF?s=$naeste'>Næste</a>";
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 03:06 #9
lader til at virker
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 03:07 #10
kan man gøre sådan så man ikke kan gå længere tilbage end til 0
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 03:11 #11
fejlen på linje 63 kommer først når man skrive nyheder1.php men ikke hvis du skriver nyheder1.php?s=0
Avatar billede jaw Nybegynder
26. juni 2004 - 03:12 #12
Ja, nemlig... Jeg skal lige have 2 minutter, klokken har passeret dér, hvor jeg kan lave det direkte fra hovedet :)
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 03:13 #13
er bare helt i orden
Avatar billede jaw Nybegynder
26. juni 2004 - 03:19 #14
Opdaterede lige det hele, så prøv:

<?php
  $connection = mysql_connect("HOST", "USERS", "PASSWORD");
  mysql_select_db("DATABASE", $connection);

  $prside = 10;
  if(isset($_GET['s]')) {
    $start = $_GET['s'];
  } else {
    $start = 0;
    $s = 0;
  }

  $retultat = mysql_query("SELECT * FROM nyheder order by id desc limit $start, $prside");
  while($row = mysql_fetch_array($retultat)){
   
    echo "Overskrift:&nbsp;<font size=4>$row[overskrift]</font><br>"; 
    echo "Indsendt af:&nbsp;";   
    echo "<b>$row[navn]</b><br>";
    echo "Nyhed:&nbsp;$row[nyhed]<br>";
    echo "<hr>";
  }

  $antal = mysql_num_rows($resultat);    //vi tæller antallet af indlæg
  $s = $_GET['s'];
  $PHP_SELF = $_SERVER['PHP_SELF'];
  $naeste = $s + $prside;
  $tilbage = $s - $prside;
  if($naeste <= $antal) {
    echo "<a href='$PHP_SELF?s=$naeste'>Næste</a>";
  }
  if($tilbage >= 0) {
    echo "<a href='$PHP_SELF?s=$tilbage'>Tilbage</a>";
  }
?>
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 03:23 #15
Fejl på linje 65 http://test.ravstedbynet.dk/nyheder1.php

Linje 65: $antal = mysql_num_rows($resultat);    //vi tæller antallet af indlæg
          $s = $_GET['s'];
          $PHP_SELF = $_SERVER['PHP_SELF'];
          $naeste = $s + $prside;
          $tilbage = $s - $prside;
          if($naeste <= $antal) {
          echo "<a href='$PHP_SELF?s=$naeste'>Næste</a>";
  }
  if($tilbage >= 0) {
    echo "<a href='$PHP_SELF?s=$tilbage'>Tilbage</a>";
  }
Avatar billede jaw Nybegynder
26. juni 2004 - 03:25 #16
ahhh, der læste jeg for hurtigt... Du har skrevet "retultat" hvilket jeg læste som resultat - så den skal se sådan ud:

$antal = mysql_num_rows($retultat);    //vi tæller antallet af indlæg
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 03:28 #17
så er der kun det S tilbage, skal jeg skrive nyheder.php?=0 før det går væk, eller kan man fjerne det på andre måder
Avatar billede jaw Nybegynder
26. juni 2004 - 03:29 #18
Du har set, at jeg har tilføjet: $s = 0; på linie 9 ca. ikke? Det troede jeg faktisk ville have løst det problem også...
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 03:31 #19
hvis ikke så lade vi det bare være, det er jo kun linket fra forsiden jeg skal lave om, det er jo ikke på alle sider
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 04:06 #20
jeg fandt lige denne, er meget smart, men kan ikke få den til at virke.
http://www.eksperten.dk/spm/513972
Avatar billede jaw Nybegynder
26. juni 2004 - 04:07 #21
Ja, læste den godt tidligere på aftenen... Hvad er det, du ikke kan få til at funke? Og fejl-meddelelser eller lign? :)
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 04:16 #22
nej, hvor den skal sættes ind i selve koden
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 04:19 #23
jeg kan forresten kun se side 1 og side 2, så laver den ikke flere
Avatar billede jaw Nybegynder
26. juni 2004 - 04:28 #24
Okey, prøv lige (bare for at se hvor det går i fisk) at indsætte:

echo $antal . " " . $naeste;

under linien:
$tilbage = $s - $prside;

...og så må jeg kigge på det i morgen, for nu kan jeg simpelthen ikke se ud af øjnene mere. Det andet, med det andet spørgsmål, kan jeg også sagtens vise dig hvordan det gøres...

Men sov godt :)
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 04:37 #25
du skal vist flere points efter alt det her
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 04:39 #26
men hvordan
Avatar billede ravsted_dk Nybegynder
26. juni 2004 - 17:20 #27
Der sker ikke noget
Avatar billede jaw Nybegynder
26. juni 2004 - 23:00 #28
Nej, ok... Sætter det lige op i min egen database, øjeblik...
Avatar billede jaw Nybegynder
26. juni 2004 - 23:33 #29
Sådan, prøv den her: (har ændret et par små-ting)

<?php
  $connection = mysql_connect("HOST", "USERS", "PASSWORD");
  mysql_select_db("DATABASE", $connection);

  $prside = 10;
  if(isset($_GET['s'])) {
    $start = $_GET['s'];
    $s = $_GET['s'];
  } else {
    $start = 0;
    $s = 0;
  }

  $retultat = mysql_query("SELECT * FROM nyheder order by id desc limit $start, $prside");
  while($row = mysql_fetch_array($retultat)){
   
    echo "Overskrift:&nbsp;<font size=4>$row[overskrift]</font><br>"; 
    echo "Indsendt af:&nbsp;";   
    echo "<b>$row[navn]</b><br>";
    echo "Nyhed:&nbsp;$row[nyhed]<br>";
    echo "<hr>";
  }

  $antal = mysql_num_rows(mysql_query("SELECT * FROM nyheder order by id desc"));
  $PHP_SELF = $_SERVER['PHP_SELF'];
  $naeste = $s + $prside;
  $tilbage = $s - $prside;
  echo $naeste . "<br>";
  echo "antal:" .  $antal;
 
  if($naeste < $antal) {
    echo "<a href='$PHP_SELF?s=$naeste'>Næste</a>";
  }
  if($tilbage >= 0) {
    echo "<a href='$PHP_SELF?s=$tilbage'>Tilbage</a>";
  }
?>

Og hvad var det så ellers du tænkte på? Er det sådan en "linie" hvor man kan se hvor mange sider der er, og så vælge dér også???
Avatar billede jaw Nybegynder
26. juni 2004 - 23:51 #30
Hvis du vil have siderne med, så kan du prøve den her:

<?php
  $connection = mysql_connect("HOST", "USERS", "PASSWORD");
  mysql_select_db("DATABASE", $connection);

  $prside = 10;
  if(isset($_GET['s'])) {
    $start = $_GET['s'];
    $s = $_GET['s'];
  } else {
    $start = 0;
    $s = 0;
  }

  $retultat = mysql_query("SELECT * FROM nyheder order by id desc limit $start, $prside");
  while($row = mysql_fetch_array($retultat)){
   
    echo "Overskrift:&nbsp;<font size=4>$row[overskrift]</font><br>"; 
    echo "Indsendt af:&nbsp;";   
    echo "<b>$row[navn]</b><br>";
    echo "Nyhed:&nbsp;$row[nyhed]<br>";
    echo "<hr>";
  }

//variabler til næste/tilbage
  $antal = mysql_num_rows(mysql_query("SELECT * FROM nyheder order by id desc"));
  $PHP_SELF = $_SERVER['PHP_SELF'];
  $naeste = $s + $prside;
  $tilbage = $s - $prside;
    $antal_sider = ceil($antal / $prside);
     
//næste-knappen
  if($naeste < $antal) {
    echo "<a href='$PHP_SELF?s=$naeste'>Næste</a>";
  } else {
      echo "Næste";
  }

//side 1, 2, 3 etc.
  for($i = 1; $i <= $antal_sider; $i++) {
      $page = ($i * $prside) - $prside;
      if($page != $s) {
        echo " <a href='" . $_SERVER['PHP_SELF'] . "?s=$page'>" .  $i . "</a> ";
      } else {
          echo " <b>$i</b> ";
    }
  }

// tilbage-knappen 
  if($tilbage >= 0) {
    echo "<a href='$PHP_SELF?s=$tilbage'>Tilbage</a>";
  } else {
      echo "Tilbage";
  }

?>
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