Avatar billede aquafisken Nybegynder
20. april 2006 - 22:33 Der er 1 løsning

Multi udtræk fra database

Hej.
Jeg har problemer med at få udtrukket nogle billeder fra min MySQL database. De skal udtrækkes sådan at de står i en tabel med 2 rækker og 2 kolonner sådan at der vil være 4 billeder på en side, hvorefter der så vil være en "paging" funktion, så man kan trykke sig videre for at se de næste billeder.
Jeg har bøvlet en del med det og kan kun få billederne til at blive skrevet ud under hinanden.
Min kode ser således ud:

/* Vi connecter til databasen */
include "admin/connect.php";

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

/* Vi tæller antallet af poster i tabellen husk at ændre ‘table’ til dit eget tabelnavn */
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM kvk_products"),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 kvk_products ORDER BY sort DESC 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 */
echo "<table>";
while($row = mysql_fetch_array($query)) {
    $change = (($i%2) ? "1" : "2");
    $i++;
    if ($change = '1') {
        echo'
        <tr>
            <td>
            <img src="admin/add/images/'.$row['pic_thumb'].'">
            </td>';
    } else {
        echo'
            <td>
            <img src="admin/add/images/'.$row['pic_thumb'].'">
            </td>
        <tr>';
    }
}
echo "</table>";

echo "<hr />";

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

Her kan ses et eks. på hvordan det ser ud når ovenstående kode er i brug:
http://www.x-itin.dk/KV-koekken/priser.php

Jeg håber der er nogen der kan komme med et hurtigt svar? Fordi jeg skal meget snart bruge det :)
Avatar billede aquafisken Nybegynder
22. april 2006 - 00:06 #1
Da der ikke er nogen der har svaret lukker jeg tråden. Alligevel vil jeg lige sætte et link til en tråd ud som jeg var inde på og derved fandt ud af en løsning på mit problem :P
http://www.eksperten.dk/spm/704363
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
Computerworld tilbyder specialiserede kurser i database-management

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