Avatar billede mike2002 Nybegynder
05. juli 2007 - 21:53 Der er 1 kommentar og
1 løsning

Billedgalleri - viser 7 records - burde vise 6

Jeg har nolet det her lille script, som skulle vise seks billeder pr. side og lave en lille oversigt over alle billeder. Mit problem er, at der bliver vist 7 billeder på hver side, og at det øverste hver gang er det første record i tabellen...

Jeg er ikke den store wiz og har brug for lidt hjælp... Er der nogen der kan se hvad der er galt...???

<?php
mysql_select_db($database_Hujelauget, $Hujelauget);
$query_rsBilleder = "SELECT * FROM billeder";
$rsBilleder = mysql_query($query_rsBilleder, $Hujelauget) or die(mysql_error());
$row_rsBilleder = mysql_fetch_assoc($rsBilleder);
$totalRows_rsBilleder = mysql_num_rows($rsBilleder);

/* Antallet af poster vi ønsker vist på hver side */
$pr_side = 6;

/* Vi tæller antallet af poster i tabellen husk at ændre ‘table’ til dit eget tabelnavn */
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM billeder"),0) or die(mysql_error());

/* Hvis visfra-variablen ikke findes i URL-feltet og den ikke er et nummer og den er større end antallet i databasen, så sættes den til 0, ellers sættes den til værdien fra URL feltet */
$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;

/* Vi laver et database udtræk med limit, så den kun hiver det rigtige antal ud fra tabellen, husk at ændre ‘table’ til dit eget tabelnavn */
$query = mysql_query ("SELECT * FROM billeder ORDER BY billedid ASC limit $vis_fra, $pr_side") or die(mysql_error());
/* Vi kører en while og udskriver data, det jeg har sat på er blot et eksempel */
/* while ($row = mysql_fetch_array($query)) { */
/* echo $row['id']."<br>";  */
/* } */
/* echo "<hr />"; */

/* Der undersøges om der skal udskrives et ”forrige side”-link, er dette tilfældet udskrives linket */
if ($vis_fra > 1) {
$back= $vis_fra - $pr_side;
echo "<a href='$_SERVER[PHP_SELF]?visfra=$back'>Forrige</a> ";
}
$page = 1;

/* Alle siderne udskrives så man med et klik kan få resultaterne fra fx 90-100 */
for ($start = 0; $antal > $start; $start = $start + $pr_side) {
if($vis_fra != $page * $pr_side - $pr_side) {
echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
} else {
echo $page." ";
}
$page++;
}

/* Der undersøges om der skal udskrives et ”næste side”-link, er dette tilfældet udskrives linket */
if ($vis_fra < $antal - $pr_side) {
$next = $vis_fra + $pr_side;
echo " <a href='$_SERVER[PHP_SELF]?visfra=$next'>Næste</a>";
}
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Billedgalleri</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="/styles/styles1.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
</head>

<body>
<p class="indhold">&nbsp;</p>
<p class="indhold">Klik p&aring; et billede for at f&aring; vist det i en st&oslash;rre udgave... </a> </p>
<table width="100%"  border="1" cellspacing="2" cellpadding="2">
  <?php do { ?>
  <tr>
    <td width="50%"><a href="#" onClick="MM_openBrWindow('/Billeder/showpic.php?billednavn=<?php echo $row_rsBilleder['billednavn']; ?>','Billede','width=800,height=600')">
        <?php echo '<img height="100" src="../Billeder/'.$row_rsBilleder['billednavn'].'">' ; ?></a></td>
    <td width="50%" valign="bottom"><?php echo $row_rsBilleder['billednavn']; ?></td>
  </tr>
  <?php } while ($row_rsBilleder = mysql_fetch_array($query)); ?>
</table>


<p align="center"></p>
</body>
</html>
Avatar billede cronick Nybegynder
05. juli 2007 - 22:55 #1
Umiddelbart burde den slet ikke give noget, da du ved nødvendige steder har sat /* .. */ rundt om? Btw - nogen der kan fortælle mig hvad denne metode / funktion hedder: "$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;"?
Avatar billede mike2002 Nybegynder
05. juli 2007 - 23:05 #2
Ja, jeg havde sat kommentar-angivelser /* rundt om eksemplet og bedt den udskrive længere nede... Men det var noget rod med både $query og $query_rsBilleder, så det fik jeg ryddet op i... og nu gør den som den skal... kode nu:

<?php
mysql_select_db($database_Hujelauget, $Hujelauget);


/* Antallet af poster vi ønsker vist på hver side */
$pr_side = 6;

/* Vi tæller antallet af poster i tabellen husk at ændre ‘table’ til dit eget tabelnavn */
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM billeder"),0) or die(mysql_error());

/* Hvis visfra-variablen ikke findes i URL-feltet og den ikke er et nummer og den er større end antallet i databasen, så sættes den til 0, ellers sættes den til værdien fra URL feltet */
$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;

/* Vi laver et database udtræk med limit, så den kun hiver det rigtige antal ud fra tabellen, husk at ændre ‘table’ til dit eget tabelnavn */
/* Vi kører en while og udskriver data, det jeg har sat på er blot et eksempel */
/* while ($row = mysql_fetch_array($query)) { */
/* echo $row['id']."<br>";  */
/* } */
/* echo "<hr />"; */

/* Der undersøges om der skal udskrives et ”forrige side”-link, er dette tilfældet udskrives linket */
if ($vis_fra > 1) {
$back= $vis_fra - $pr_side;
echo "<a href='$_SERVER[PHP_SELF]?visfra=$back'>Forrige</a> ";
}
$page = 1;

/* Alle siderne udskrives så man med et klik kan få resultaterne fra fx 90-100 */
for ($start = 0; $antal > $start; $start = $start + $pr_side) {
if($vis_fra != $page * $pr_side - $pr_side) {
echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
} else {
echo $page." ";
}
$page++;
}

/* Der undersøges om der skal udskrives et ”næste side”-link, er dette tilfældet udskrives linket */
if ($vis_fra < $antal - $pr_side) {
$next = $vis_fra + $pr_side;
echo " <a href='$_SERVER[PHP_SELF]?visfra=$next'>Næste</a>";
}

$query_rsBilleder = "SELECT * FROM billeder ORDER BY billedid ASC limit $vis_fra, $pr_side";
$rsBilleder = mysql_query($query_rsBilleder, $Hujelauget) or die(mysql_error());
$row_rsBilleder = mysql_fetch_assoc($rsBilleder);
$totalRows_rsBilleder = mysql_num_rows($rsBilleder);

?>




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hujelaugets billedgalleri</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="/styles/styles1.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
</head>

<body>
<p class="indhold">&nbsp;</p>
<p class="indhold">Klik p&aring; et billede for at f&aring; vist det i en st&oslash;rre udgave... </a> </p>
<?php do { ?>
<table width="100%"  border="1" cellspacing="2" cellpadding="2">
  <tr>
    <td width="50%"><a href="#" onClick="MM_openBrWindow('/Billeder/showpic.php?billednavn=<?php echo $row_rsBilleder['billednavn']; ?>','Billede','width=800,height=600')">
        <?php echo '<img height="100" src="../Billeder/'.$row_rsBilleder['billednavn'].'">' ; ?></a></td>
    <td width="50%" valign="bottom"><?php echo $row_rsBilleder['billednavn']; ?></td>
  </tr>
</table>
<?php } while ($row_rsBilleder = mysql_fetch_assoc($rsBilleder)); ?>
<p align="center"></p>
</body>
</html>

og nej, jeg ved ikke hvad den hedder og kan heller ikke helt forstå, hvad den gør...;)
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