Avatar billede tlunde Nybegynder
23. maj 2003 - 12:43 Der er 21 kommentarer og
2 løsninger

5 links pr. side

Hejsa,
Jeg har denne kode der skriver en masse links ud fra database:
----------
<?
$query = mysql_query("SELECT * FROM links WHERE kategori='$_GET[kat]' ORDER BY id");
while ($row = mysql_fetch_array($query)) {

    echo "<tr>";
    echo "<td width='20'><div align='center'><img src='../images/link.gif' width='12' heigth='13'></div></td>";
    echo "<td colspan='3' height='20' valign='middle'><b><a href='oversigt.php?id=$row[id]' target='_blank'>$row[titel]</a></b></td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td width='20' rowspan='3'><div align='center'></div>";
    echo "<div align='center'></div>";
    echo "<div align='center'></div></td>";
    echo "<td colspan='3'>$row[beskrivelse]</td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td width='480'><b>Dato: </b>$row[dato] | <b>Hits: </b>$row[hits] | <b>Tilføjet af: </b><a href='mailto: $row[email]'>$row[navn]</a></td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td colspan='3'>&nbsp;</td>";
    echo "</tr>";
}
?>
----------

Hvordan får jeg lavet sådan at der er 5 links pr. side, og så det ser ud ligesom her:

www.thomaslunde.dk/php/kildekoder/oversigt.php

Hilsen
Thomas Lunde
Avatar billede fangel Nybegynder
23. maj 2003 - 12:46 #1
tja... du kunne jo kigge på kode til det script? helt utænkeligt?

i korte træk:
lav en "LIMIT $start, 5" på dit query...

i bunden af siden skal du så lave en rutine der tjekker om der er nok poster til at vise endnu en side, og hvis start ikker 0, så også have en tilbage knap...

Morten
Avatar billede tlunde Nybegynder
23. maj 2003 - 12:47 #2
Hmm...jeg er ikke lige så god til at lave sådan noget, så et fungerende eksempel ville nok hjælpe...
Avatar billede Slettet bruger
23. maj 2003 - 12:49 #3
stop lige en halv.. er det ikke din egen side du i forvejen har det på? så undrer det mig ret meget at du ikke kan bruge det på den
Avatar billede tlunde Nybegynder
23. maj 2003 - 12:50 #4
Jeg har prøvet og prøvet at sætte det sammen, men jeg kan ikke få det til at hænge sammen med det den printer ud. Det er det der er mit problem...
Avatar billede schaefner Juniormester
23. maj 2003 - 12:52 #5
Du kan jo prøve at kigge lidt på: http://delfs.dk/articles/danish/Side123.php
Avatar billede fangel Nybegynder
23. maj 2003 - 12:53 #6
du skriver selv at dine kompetancer ser PHP og MySQL... måske du skulle leve op til det? eller fjerne det... ;)

her er en kode der virker...

---
if(isset($_GET['s'])) $start = $_GET['s'];
else $start = 0;

$query = mysql_query("SELECT * FROM links WHERE kategori='" . $_GET['kat'] . "' ORDER BY id LIMIT $start, 5");
while ($row = mysql_fetch_array($query)) {

    echo "<tr>
  <td width='20'><div align='center'><img src='../images/link.gif' width='12' heigth='13'></div></td>
  <td colspan='3' height='20' valign='middle'><b><a href='oversigt.php?id=$row[id]' target='_blank'>$row[titel]</a></b></td>
  </tr>
  <tr>
  <td width='20' rowspan='3'><div align='center'></div>
  <div align='center'></div>
  <div align='center'></div></td>
  <td colspan='3'>$row[beskrivelse]</td>
  </tr>
  <tr>
  <td width='480'><b>Dato: </b>$row[dato] | <b>Hits: </b>$row[hits] | <b>Tilføjet af: </b><a href='mailto: $row[email]'>$row[navn]</a></td>
  </tr>
  <tr>
  <td colspan='3'>&nbsp;</td>
  </tr>";
}
<?php
}
?>
</table>
<?php
$query = mysql_query("SELECT count(*) FROM links WHERE kategori='" . $_GET['kat'] . "'")or die(mysql_error());
$data = mysql_fetch_row($query);
$num_rows = $data[0];
$page_name = basename($_SERVER['PHP_SELF']);

if(isset($_GET['s'])){
  $br = true;
  if($_GET['s'] <= 5){
    echo "<a href=\"$page_name\">Previous</a>";
  }
  else{
    $prev = $start - 5;
    echo "<a href=\"$page_name?s=$prev\">Previous</a>";
  }
  if($num_rows - $start > 5){
    echo " - ";
  }
}

if($num_rows - $start > 5){
  $br = true;
  $next = $start + 5;
  echo "<a href=\"$page_name?s=$next\">Next</a>";
}
---

men så burde du også fjerne PHP og MySQL som kompetance hvis du ikke kan lave noget så simpelt!

Morten
Avatar billede fangel Nybegynder
23. maj 2003 - 12:54 #7
hov... du kan godt fjerne linierne med "$br = true;" taget koden far noget andet jeg havde lavet hvor det skulle bruges!

Morten
Avatar billede tlunde Nybegynder
23. maj 2003 - 12:54 #8
Den har jeg prøvet, men jeg kan ikke få koblet på sådan, at den kun skal tage de links fra den kategori man vælger
Avatar billede fangel Nybegynder
23. maj 2003 - 12:57 #9
det gør den da også! du skal bare lave en ?kat=[katnavn], så vælger den kun fra en kategori!

Morten
Avatar billede fangel Nybegynder
23. maj 2003 - 13:05 #10
OK... det er lidt ringe af dig at du ikke engang kan ændre noget så simpelt som det, og du tillader dig at skrive du kan PHP!!!

"far er ikke sur, far er skuffet" - hunde-reklame

havde du overvejet at kigge på de links som bliver generetet nederst... måske du skulle tilføje dem der? bare en tanke ;)

altså:
---
if(isset($_GET['kat'])){ //?kat skal være der!
if(isset($_GET['s'])) $start = $_GET['s'];
else $start = 0;

$query = mysql_query("SELECT * FROM links WHERE kategori='" . $_GET['kat'] . "' ORDER BY id LIMIT $start, 5");
while ($row = mysql_fetch_array($query)) {

    echo "<tr>
  <td width='20'><div align='center'><img src='../images/link.gif' width='12' heigth='13'></div></td>
  <td colspan='3' height='20' valign='middle'><b><a href='oversigt.php?id=$row[id]' target='_blank'>$row[titel]</a></b></td>
  </tr>
  <tr>
  <td width='20' rowspan='3'><div align='center'></div>
  <div align='center'></div>
  <div align='center'></div></td>
  <td colspan='3'>$row[beskrivelse]</td>
  </tr>
  <tr>
  <td width='480'><b>Dato: </b>$row[dato] | <b>Hits: </b>$row[hits] | <b>Tilføjet af: </b><a href='mailto: $row[email]'>$row[navn]</a></td>
  </tr>
  <tr>
  <td colspan='3'>&nbsp;</td>
  </tr>";
}
<?php
}
?>
</table>
<?php
$query = mysql_query("SELECT count(*) FROM links WHERE kategori='" . $_GET['kat'] . "'")or die(mysql_error());
$data = mysql_fetch_row($query);
$num_rows = $data[0];
$page_name = basename($_SERVER['PHP_SELF']) . "?kat=" . $_GET['kat'];

if(isset($_GET['s'])){
  $br = true;
  if($_GET['s'] <= 5){
    echo "<a href=\"$page_name\">Previous</a>";
  }
  else{
    $prev = $start - 5;
    echo "<a href=\"$page_name&s=$prev\">Previous</a>";
  }
  if($num_rows - $start > 5){
    echo " - ";
  }
}

if($num_rows - $start > 5){
  $br = true;
  $next = $start + 5;
  echo "<a href=\"$page_name&s=$next\">Next</a>";
}
}
---

Morten
Avatar billede tlunde Nybegynder
23. maj 2003 - 13:08 #11
Takker for hjælpen...
Avatar billede tipsen Nybegynder
23. maj 2003 - 14:17 #12
tlunde: Jeg er imponeret over at du alligevel har fået lavet så meget på dit site - troede faktisk du kunne væsentligt mere php og mysql.
Avatar billede fangel Nybegynder
23. maj 2003 - 14:26 #13
tipsen => man må jo tro at han kan noget med alt det andet han har, og det fact at han skriver at han kan! men mankan tro tro noget forkert ;)
Avatar billede tipsen Nybegynder
23. maj 2003 - 14:44 #14
Han skriver dog også, at kompetencen primært ligger inden for design.
Avatar billede fangel Nybegynder
23. maj 2003 - 14:48 #15
der har du ret... ;)
Avatar billede tlunde Nybegynder
23. maj 2003 - 15:35 #16
Jeg kan det php og mysql jeg skal, men lige dette, var noget jeg ikke vidste så meget om, og derfor stillede jeg spørgsmålet herinde. Længere er den ikke!
Avatar billede tipsen Nybegynder
23. maj 2003 - 15:49 #17
tipsen: Damn... - jeg kan hvertfald ikke nok php og mysql til jeg er tilfreds... - jo mere man lærer desto mere finder man ud man ikke kan synes jeg...
Avatar billede fangel Nybegynder
23. maj 2003 - 15:52 #18
tipsen => korrekt... tænker vi ikke all "gad vide om jeg kan få PHP til at tegne en hvilken som helst graf, bare man giver den formlen"... eller "hvordan mon man laver egne .zip filer med PHP...
Avatar billede sukos Juniormester
23. maj 2003 - 16:23 #19
æh, bare en sidekommentar.....
Hvis nu $_GET["kat"] er større end antal i DB'en?

Og jow! Jo mere man lærer, jo mere finder man ud af man IKKE ved.
Avatar billede fangel Nybegynder
23. maj 2003 - 16:26 #20
<joke type="BAD">
så må vi håbe på at der ikke kommer en hund og skræmmer den (kat'en altså)
</joke>...

der kan jo ske det at den givne kategori ikke findes... (fordi folk leger med liks'ne)...

ellers burde det virke... (ret gennemtestet)...

Morten
Avatar billede sukos Juniormester
23. maj 2003 - 16:32 #21
Hvis kat ikke er skræmt væk, får du jo blot en tom side, med links, så du kan klikke tilbage, indtil den finder noget.Kunne jo ændres ved at sammenligne en evt. kat efter kald til DB, så finder du jo nemt max. str.

Hvad nu hvis den er -5 f.eks.?
Avatar billede sukos Juniormester
23. maj 2003 - 16:33 #22
Hvaaeee, hvordan med forum'et, dea_pg? :O)))))))))
Avatar billede fangel Nybegynder
23. maj 2003 - 16:39 #23
sukos => det er eksamens tid (har faktisk være oppe til skriftligt mat. idag), så derfor bruger jeg en del tid på skolen, og mindre tid på programmering... (ja, jeg synes også det er trist), men skolen kommer først...

MEN, jeg skal ikke noget i weekenden (har afsat den til programmering), så lad os se om jeg ikke kan få det lavet... ;)

---

hvis $_GET['kat'] er en kategori som ikke findes i databasen får man jo bare "no posts yet"... siden...

samme gælder hvis man giver et skævt offset...

Morten
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