Avatar billede MarkA Praktikant
04. februar 2007 - 12:26 Der er 5 kommentarer og
1 løsning

antal billeder pr linie

Jeg sidder og leger lidt med et lille hjemmelavet photogalleri som jeg er igang med. Jeg vil gerne have at mine billeder vises f.eks. 5 billeder på hver linie. Kan det lade sig gøre?

I mås ige til hvis i skal have noget kode!!
Avatar billede michaeltryl Seniormester
04. februar 2007 - 12:32 #1
du kan gøre det sådan

$bil = mysql_query("SELECT * FROM billeder") or die(mysql_error());
echo "<table>";
$i=0;
$antal = 5;//Det antal billeder som skal vises i hver række
while ($row = mysql_fetch_array($bil))
{
$billede = $row[billede];

    if($i%$antal == 0){
        echo "<tr><td>";
    }
echo" <img alt='$tekst' src='$billede'>";

$i++;
}
echo "</td></tr></table>";
Avatar billede MarkA Praktikant
04. februar 2007 - 12:42 #2
jeg har ændret lidt i scriptet. det jeg gerne mere vil have hvis du vil hjælpe er at få vist f.eks 15 billeder pr side i 3 linier... Kan disse 2 nedenstående filer sættes sammen

jeg har disse to filer:

fil 1:
<?
include("conn.php");

$conn = mysql_connect($host, $user, $pass) or die(mysql_error());
mysql_select_db("photogal",$conn) or die(mysql_error());


$bil = mysql_query("SELECT * FROM gallery") or die(mysql_error());
echo "<table>";
$i=0;
$antal = 5;//Det antal billeder som skal vises i hver række
while ($row = mysql_fetch_array($bil))
{
$file = $row[file];

    if($i%$antal == 0){
        echo "<tr><td>";
    }
echo" <a href='img/$file'><img alt='fejl' src='img/$file' width='60px' height='45px' ></a>";

$i++;
}
echo "</td></tr></table>";
?>


fil 2:
<?php
include("conn.php");

// Indstillinger
$offset = (isset($_GET[offset])) ? $_GET[offset] : 0;  // Hvis ikke offset er sat, sættes den til 0
$pr_side = 3;  // Antal resultater pr. side

$sql = "SELECT * FROM gallery ORDER BY id DESC LIMIT $offset, $pr_side";
$query = mysql_query($sql) or die(mysql_error());  // Henter poster fra tabellen "dinTabel"
while ($row = mysql_fetch_assoc($query))
{
    echo "<a href='img/$row[file]'><img src='img/$row[file]' width='60px' height='45px'></a><br>";  // Udskriver felter fra tabellen
}
?>
<hr>
<?php
$sql = "SELECT COUNT(*) FROM gallery";
$antal = mysql_result(mysql_query($sql), 0) or die(mysql_error());  // Tæller antal poster i tabellen "dinTabel"

$side = $offset/$pr_side +1;
$antal_sider = ceil(1.0 * $antal / $pr_side);

if ($offset >= $pr_side)
{
    // Tester om det er nødvendigt med et "forrige-link"
    $forrige = $offset - $pr_side;  // Finder ud af hvor forrige skal starte fra
    echo "<a href='?offset=$forrige'>Forrige</a> ";  // Udskriver link
}

echo "Side " . $side . " af " . $antal_sider;

if ($antal > $offset+$pr_side)
{
    // Tester om det er nødvendigt med et "næste-link"
    $naeste = $offset + $pr_side;  // Finder ud af hvor næste skal starte fra
    echo "<a href='?offset=$naeste'>Næste</a>";  // Udskriver link
}
?>
Avatar billede MarkA Praktikant
04. februar 2007 - 12:53 #3
okay... jeg har selv løst den sidste del... men post et svar michaeltryl så skal du få dine point og tak for hjælpen
Avatar billede michaeltryl Seniormester
04. februar 2007 - 12:55 #4
prøv denne. (der er kun 1 fil)

<?
include("conn.php");

$conn = mysql_connect($host, $user, $pass) or die(mysql_error());
mysql_select_db("photogal",$conn) or die(mysql_error());

$pr_side = 15;
$bil = mysql_query("SELECT * FROM gallery") or die(mysql_error());
$antal = mysql_num_rows($nquery);//Tæller antaller af resultater

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

echo "<table>";
$i=0;
$pr_antal = 5;//Det antal billeder som skal vises i hver række
while ($row = mysql_fetch_array($bil))
{
$file = $row[file];

    if($i%$pr_antal == 0){
        echo "<tr><td>";
    }
echo" <a href='img/$file'><img alt='fejl' src='img/$file' width='60px' height='45px' ></a>";

$i++;
}
echo "</td></tr></table>";

echo "<hr />";

if ($vis_fra > 0) {
$back= $vis_fra - $pr_side;
echo "<a href='$_SERVER[PHP_SELF]?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='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
} else {
echo $page." ";
}
$page++;
}

if ($vis_fra < $antal - $pr_side) {
$next = $vis_fra + $pr_side;
echo " <a href='$_SERVER[PHP_SELF]?visfra=$next'>Næste</a>";
}
?>
Avatar billede michaeltryl Seniormester
04. februar 2007 - 12:56 #5
okay helt fint
Avatar billede MarkA Praktikant
04. februar 2007 - 13:06 #6
Den sidste del du har lavet virker ikke helt.. den viser bare de samme billeder på hver side ihvertfald hos mig...

men her er den jeg har fået sat sammen.. Så lyset lige pludselig;)

-------------------------------------------------------------------------------
<?
// Indstillinger
include("conn.php"); //Forbinder til database
$offset = (isset($_GET[offset])) ? $_GET[offset] : 0;  // Hvis ikke offset er sat, sættes den til 0
$pr_side = 9;  // Antal billeder pr. side
$i = 0; //HVilket billede den skal starte med at vise
$antal = 3; //Det antal billeder som skal vises i hver række
$tabel = "gallery";

$sql = mysql_query("SELECT * FROM $tabel ORDER BY id DESC LIMIT $offset, $pr_side") or die(mysql_error());
echo "<table>";

while ($row = mysql_fetch_array($sql))
{
$file = $row[file];

    if($i%$antal == 0){
        echo "<tr><td>";
    }
echo" <a href='img/$file'><img alt='fejl' src='img/$file' width='60px' height='45px' ></a>";

$i++;
}
echo "</td></tr></table>";

?>


<?php
$sql = "SELECT COUNT(*) FROM gallery";
$antal = mysql_result(mysql_query($sql), 0) or die(mysql_error());  // Tæller antal poster i tabellen "dinTabel"

$side = $offset/$pr_side +1;
$antal_sider = ceil(1.0 * $antal / $pr_side);

if ($offset >= $pr_side)
{
    // Tester om det er nødvendigt med et "forrige-link"
    $forrige = $offset - $pr_side;  // Finder ud af hvor forrige skal starte fra
    echo "<a href='?offset=$forrige'>Forrige</a> ";  // Udskriver link
}

echo "Side " . $side . " af " . $antal_sider;

if ($antal > $offset+$pr_side)
{
    // Tester om det er nødvendigt med et "næste-link"
    $naeste = $offset + $pr_side;  // Finder ud af hvor næste skal starte fra
    echo "<a href='?offset=$naeste'>Næste</a>";  // Udskriver link
}
?>
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