Avatar billede compac Seniormester
19. maj 2009 - 16:21 Der er 8 kommentarer og
1 løsning

Punkter i min liste vist etapevis

Jeg har en lang liste, som bliver dannet fra en database.
Det ser ikke særlig godt ud når den bliver udskrevet fordi der er mange punkter i listen.
Jeg kunne tænke mig at få den vist, så der bliver vist 10 punkter ad gangen. Hvordan skal jeg udforme min kode?
I øjeblikket ser den således ud:


$sql="SELECT *  FROM $vandreture order by dato desc";
$tur = mysql_query($sql) or die (mysql_error());
  if(mysql_num_rows($tur) > 0) {
          while($a = mysql_fetch_object($tur)) {
              $turid = $a -> id;
              $turd =  $a -> dato;
              $maal =  $a -> titel;
              list($year, $month, $day) = split('[-.]', $turd);
              $turdate = "$day-$month-$year";
echo "<td valign='top' width='5'><input onclick='this.form.submit();' type='radio' name='gpstur' value='$turid'></td>";
echo "<td valign='top' width='15'></td>";
echo "<td valign='top' width='100' align='left'>$turdate</td>";
echo "<td valign='top' width='400' align='left'>$maal</td>";
echo "</tr>";
}
}
Avatar billede majbom Novice
19. maj 2009 - 16:50 #1
tænker du på paging? så hvis du har 50 punkter, får du 5 sider at "bladre" imellem?
Avatar billede compac Seniormester
19. maj 2009 - 16:53 #2
Ja
Avatar billede majbom Novice
19. maj 2009 - 19:13 #3
prøv at læs den her guide: http://www.eksperten.dk/guide/1265
Avatar billede compac Seniormester
19. maj 2009 - 22:37 #4
Når man bliver klar over, at det hedder paging findes der jo meget stof om det.
Jeg er kommet frem til denne løsning:

$pr_side = 5;
echo "<table>";
echo "<tr>";
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM $vandreture"),0) or die(mysql_error());
$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;
$tur = mysql_query ("SELECT * FROM $vandreture ORDER BY dato DESC limit $vis_fra, $pr_side") or die(mysql_error());

if(mysql_num_rows($tur) > 0) {
          while($a = mysql_fetch_object($tur)) {
              $turid = $a -> id;
              $turd =  $a -> dato;
              $maal =  $a -> titel;
              list($year, $month, $day) = split('[-.]', $turd);
              $turdate = "$day-$month-$year";
echo "<td valign='top' width='5'><input onclick='this.form.submit();' type='radio' name='gpstur' value='$turid'></td>";
echo "<td valign='top' width='15'></td>";
echo "<td valign='top' width='100' align='left'>$turdate</td>";
echo "<td valign='top' width='400' align='left'>$maal</td>";
echo "</tr>";
}
}
echo "<hr />";
echo "</table>

Den mangler imidlertid den mulighed, der var før, hvor man kunne klikke videre til en side, der relaterede til punktet via en radiobutton:

<input onclick='this.form.submit();' type='radio' name='gpstur' value='$turid'>
Det er vel det index, der skal laves om? Hvordan klarer jeg det?
Avatar billede majbom Novice
20. maj 2009 - 06:55 #5
jeg forstår ikke rigtigt dit problem, jeg kan ikke se hvorfor det ikke skulle virke, der er jo ikke lavet om på den del?
Avatar billede compac Seniormester
20. maj 2009 - 19:35 #6
Det var en "slåfejl" fra mig selv, sorry.
Læg et svar.
Avatar billede compac Seniormester
20. maj 2009 - 20:35 #7
NB! Inden afsnittet, hvor punkterne fra databasen udskrives, sætter den en vandret streg. Hvor mon den stammer fra?
Avatar billede compac Seniormester
20. maj 2009 - 20:48 #8
Det skyldes denne linie:

echo "<hr />";
tja, jeg synes der stod <br />
Avatar billede majbom Novice
25. maj 2009 - 10:15 #9
svaret kommer her :)
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