Avatar billede snie97 Nybegynder
05. januar 2004 - 14:14 Der er 7 kommentarer og
1 løsning

4 ad gangen i PHP/Mysql

Jeg er ved at lave et fotoalbumsystem. Nu er jeg nået til delen hvor man skal lave siden med alle thumbnailsene.

De skal stå i en tabel med 4 thumbnails på hver række. Men hvordan får man lige PHP/Mysql til at skrive 4 poster ud, lave en ny række osv. indtil der ikke er flere poster?
Avatar billede tefcke Nybegynder
05. januar 2004 - 14:18 #1
Det bedste er at lave en forspørgelse, og få alt dataen ind i php (højest sandsynligt et array) hvor du så kan manipulerer med den.
Avatar billede ahv Nybegynder
05. januar 2004 - 14:19 #2
Et eksempel hvor det også er delt op på sider, hvor du så bestemmer hvor mange du vil have pr. side.

<?php

#Indstillinger

mysql_pconnect("server","user","pass");

mysql_select_db("db");

$sum = 4; // Antal billeder ved siden af hinanden

$sumcount = 1;

$imgwidth = 96; // Billedets bredde

$imgheight = 65; // Bileddets højde

$mappe = "gall"; // Mappen med billeder

$prside = 16; // Antal billeder pr. side




$visfra = $_GET['visfra'];



if(!$_GET['visfra']) {

    $visfra = 0;

}



?>

<html>

<head>

<script type="text/javascript">

function PopupImg(img) {

    window.open("popup.php?img="+img,"ahv","width=<?php echo $imgwidth; ?>,height=<?php echo $imgheight; ?>");

}

</script>

</head>



<body>

<div align="center">

<?php

$query = mysql_query("SELECT * FROM gallery ORDER BY id DESC limit $visfra, $prside");

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

    echo "<a href=\"java script: PopupImg('$mappe/$row[filename]')\"><img src=\"$mappe/$row[filename]\" width=\"$imgwidth\" height=\"$imgheight\"></a> ";

    if ($sumcount == $sum) {

        $sumcount = 0;

        echo "<br>";

    }

    $sumcount++;

    $i++;

}

?>

<hr>

<?php

$antal = mysql_num_rows(mysql_query("SELECT * FROM gallery"));



if ($visfra > 0) {

    $bagud = $visfra-$prside;

    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Forrige</a> ";

}

$page = 1;

for ($start = 0; $antal > $start; $start = $start + $prside) {

    if($visfra != $page * $prside - $prside) {

        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";

    } else {

        echo $page." ";

    }

    $page++;

}

if ($visfra < $antal - $prside) {

    $naeste = $visfra + $prside;

    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Næste</a>";

}

?>

</div>

</body>

</html>
Avatar billede ahv Nybegynder
05. januar 2004 - 14:20 #3
Ved ikke lige hvorfor eksperten lavede alle de mellemrum i koden.
Avatar billede ahv Nybegynder
05. januar 2004 - 14:20 #4
Der er forresten også så man kan klikke og få dem vist i original form.
Avatar billede snie97 Nybegynder
05. januar 2004 - 14:21 #5
den skal ikke hente billedinfo fra en mappe, men fra sql-databasen...

min foto-tabel har følgende felter: id, aid (albumid), beskr(ivelse), ok (noget jeg bruger for at tjekke at billedet bliver uploadet).

filerne ligger så alle sammen i den samme mappe med navnet [id].jpg og tn_[id].jpg.
Avatar billede ahv Nybegynder
05. januar 2004 - 14:23 #6
Nu burde den være helt clean ->

<?php
#Indstillinger
mysql_pconnect("server","user","pass");
mysql_select_db("db");
$sum = 4; // Antal billeder ved siden af hinanden
$sumcount = 1;
$imgwidth = 96; // Billedets bredde
$imgheight = 65; // Bileddets højde
$mappe = "gall"; // Mappen med billeder

$query = mysql_query("SELECT * FROM gallery ORDER BY id DESC");
while($row = mysql_fetch_array($query)) {
    echo "<img src=\"$mappe/$row[filename]\" width=\"$imgwidth\" height=\"$imgheight\"></a> ";
    if ($sumcount == $sum) {
        $sumcount = 0;
        echo "<br>";
    }
    $sumcount++;
    $i++;
}
?>

Den henter også info fra databasen, $mappe variablen er blot der hvor den skal finde billederne.
Avatar billede ahv Nybegynder
05. januar 2004 - 14:26 #7
Den forudsætter også at du gemmer filnavnet i databasen så php kan finde den rigtige post i databasen og hægte sammen med det rigtige billede.
Avatar billede snie97 Nybegynder
05. januar 2004 - 15:04 #8
ahv, den er godtaget :)
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