Avatar billede jonatanharring Nybegynder
22. november 2008 - 14:15 Der er 12 kommentarer og
1 løsning

Fejl med sideskift i tagwall!

Hej!
Jeg er ved at opsætte en tagwall, men har stirret mig blind i funktionen sideskift: den viser nemlig alle beskederne i tagwall'en på hver side!
- Er der nogle der kan hjælpe mig, og finde fejlen i koden? TAK:

?>
$pr_side = 1;
$antal = 10;
$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;
$query = mysql_query ("SELECT * FROM tagwall ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());
while ($hent = mysql_fetch_array($query)) {
?>
<?php

$hent = mysql_query("SELECT * FROM tagwall ORDER BY id DESC");

while ($vis = mysql_fetch_array($hent)){
echo "<table bgcolor=\"#e1e1e1\"><tr><td bgcolor=\"#728cad\" width=\"400\">";
echo "<font color=\"#ffffff\">";
echo "<b>Sex & age:</b> $vis[sexage]";
echo "<br>";
echo "<b>Dato:</b> $vis[dato]";
echo "<br>";
echo "</font>";
echo "</td></tr><tr><td height=\"50\" valign=\"top\">";
echo "<font color=\"#000000\">";
echo nl2br($vis[besked]);
echo "</font>";
echo "</td></tr></table><br>";
}
?>
<?
}
if ($vis_fra > 0) {
$back= $vis_fra - $pr_side;
echo "<a href='?visfra=$back'>Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $pr_side) {
if($vis_fra != $page * $pr_side - $pr_side) {
echo "<a href='?visfra=$start'>$page</a> ";
} else {
echo $page." ";
}
$page++;
}
if ($vis_fra < $antal - $pr_side) {
$next = $vis_fra + $pr_side;
echo " <a href='?&visfra=$next'>Næste</a>";
}
?>
<?
include 'bund.html';
?>
Avatar billede Rosenkjaer Novice
22. november 2008 - 14:19 #1
Ikke testet, men mener det skal være:

$hent = mysql_query("SELECT * FROM tagwall ORDER BY id DESC LIMIT ".$vis_fra.", ".$antal);

Min apache er gået ned, så kan ikke lige teste hurtigt.
Avatar billede jakobdo Ekspert
22. november 2008 - 14:27 #2
xylene har bestemt fat i noget.
Men hvad er $pr_side ??
Og hvorfor står den kun til 1 ?
$pr_side burde vel være 10 ?
Og så skal
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM tagwall"),0);
Avatar billede Rosenkjaer Novice
22. november 2008 - 14:34 #3
Giver jakobdo ret, din kode virker umiddelbart forkert sat sammen.

og så i stedet for at rette den linje jeg skrev skulle rettes, så skal den vel egentlig fjernes?

Først sætter du indhold til $hent med denne while:
while ($hent = mysql_fetch_array($query)) {

Bagefer udskifter du så indholdet?
$hent = mysql_query("SELECT * FROM tagwall ORDER BY id DESC");

Og laver så til sidst en ny while med det nye indhold af $hent:
while ($vis = mysql_fetch_array($hent)){

Det giver ikke mening, prøver lige at rette den som jeg tror den skal være..
Avatar billede jonatanharring Nybegynder
22. november 2008 - 14:43 #4
Ville jeg være taknemmelig for ;)
Avatar billede Rosenkjaer Novice
22. november 2008 - 14:48 #5
<?php

$pr_side = 10;

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM tagwall"),0);

$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;

$query = mysql_query ("SELECT * FROM tagwall ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());

while ($vis = mysql_fetch_array($query)) {

  echo "<table bgcolor=\"#e1e1e1\"><tr><td bgcolor=\"#728cad\" width=\"400\">";
  echo "<font color=\"#ffffff\">";
  echo "<b>Sex & age:</b> ".$vis['sexage'];
  echo "<br>";
  echo "<b>Dato:</b> ".$vis['dato'];
  echo "<br>";
  echo "</font>";
  echo "</td></tr><tr><td height=\"50\" valign=\"top\">";
  echo "<font color=\"#000000\">";
  echo nl2br($vis['besked']);
  echo "</font>";
  echo "</td></tr></table><br>";

}

if ($vis_fra > 0) {
  $back= $vis_fra - $pr_side;
  echo "<a href='?visfra=".$back."'>Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $pr_side) {
  if($vis_fra != $page * $pr_side - $pr_side) {
    echo "<a href='?visfra=".$start."'>".$page."</a> ";
  } else {
    echo $page." ";
  }
  $page++;
}

if ($vis_fra < $antal - $pr_side) {
  $next = $vis_fra + $pr_side;
  echo "<a href='?&visfra=".$next."'>Næste</a>";
}

include('bund.html');
?>

Det burde virke bedre nu, men jeg tør ikke love noget.
Avatar billede jonatanharring Nybegynder
22. november 2008 - 15:08 #6
Jeg tjekker :)
Avatar billede jonatanharring Nybegynder
22. november 2008 - 15:37 #7
Jeg fik de til at fungere :)
    Tak & Point til xylenefree!
Avatar billede jonatanharring Nybegynder
22. november 2008 - 15:38 #8
Hvis du lige vil svare ^^
Avatar billede Rosenkjaer Novice
22. november 2008 - 15:42 #9
Så lidt, glad for at kunne hjælpe..

Vil gerne lige høre, var der fejl i? Lyder lidt sådan på dig..

Men i hvert fald et svar..
Avatar billede jakobdo Ekspert
22. november 2008 - 16:22 #10
Du får også et svar af mig.
Avatar billede jakobdo Ekspert
23. november 2008 - 19:37 #11
Jeg synes ikke det er helt ok at afvise mit svar.
At jeg ikke byggede den totale løsning til dig, er jo ikke mindre korrekt.
Men jeg bragte dig bestemt i rette retning.
Avatar billede jonatanharring Nybegynder
24. november 2008 - 18:17 #12
hvis du vil have point så skriv.
Avatar billede jakobdo Ekspert
24. november 2008 - 20:10 #13
Det gjorde jeg jo netop, men du afviste mit svar...
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