Avatar billede dingkee Nybegynder
23. april 2007 - 16:45 Der er 12 kommentarer og
1 løsning

Opstil automatisk i tabel

Hej,

På min galleri side skal jeg have vist en masse billeder, jeg har vil gerne have at den viser 15 billeder pr side.

Det skal vises på følgende måde:

Jeg vil gerne have det til at blive vist så der kommer 5 på stribe, og når der er over 5 skal det så komme på næste linie.

Det skal vel næsten laves i en tabel??

Hvordan laver jeg det, så den selv lige smider en </tr><tr> ind??

Spørgsmål 2:

Hvis der så f.eks. er 25 billeder, skal det deles på 2 sider, altså der skal komme en mulighed for at vælge side 1, eller side 2... osv alt efter hvor mange billeder der er...

Håber der er nogen der kan hjælpe
Avatar billede yHec Novice
23. april 2007 - 16:55 #1
Til spørgsmål 1.
Jeg formoder du har de væsentlige oplysninger i en database
Det ville jeg gøre med en for-løkke.

<table>
<tr>
for ($i=1, $i<=5, $i++) {
  <td>vis billede</td>
}
</tr>
</table>

Den lægger du bare ind, hvor du henter billederne.

Jeg kender ikke din kode, prøv at lægge den herind!

mht spørgsmål 2 tænker jeg lige lidt mere

/y
Avatar billede jakobdo Ekspert
23. april 2007 - 18:03 #2
Prøv at kig på denne side: http://www.eksperten.dk/spm/771176
Avatar billede dingkee Nybegynder
24. april 2007 - 08:57 #3
y>>

Jeg har prøvet og kigge lidt på det, og kan simpelthen ikke få det til at virke... Jeg har fået det til at virke med at det bliver delt op i sider, så her er min kode nu:

<?php
/* Antallet af poster vi ønsker vist på hver side */
$pr_side = 10;

/* Vi tæller antallet af poster i tabellen husk at ændre ‘table’ til dit eget tabelnavn */
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM genre"),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 genre ORDER BY genre 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 "
                                                    <table background=\"images/genrebag.jpg\" width=\"152\" height=\"85\">
                                                    <tr>
                                                    <td align=\"center\">
                                                    <a href=\"genre2.php?id=$r1[id]\">
                                                        $row[genre]<br/>
                                                    </a>
                                                    </td>
                                                    </tr>
                                                    </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'>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>";
}
?>

Mangler bare at få det sat op i en tabel, som viser 5 i hver række nu
Avatar billede jakobdo Ekspert
24. april 2007 - 09:44 #4
Test lige denne kode:

<?php
/* Antallet af poster vi ønsker vist på hver side */
$pr_side = 15;
$pr_raekke = 5;

/* Vi tæller antallet af poster i tabellen husk at ændre ‘table’ til dit eget tabelnavn */
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM genre"),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 genre ORDER BY genre limit $vis_fra, $pr_side") or die(mysql_error());

/* Tæller som bruges til at skifte række */
$taeller = 0;

/* Har vi data? */
if(mysql_num_rows($query)>0)
{
    /* Vi starter tabellen */
    echo "<table background=\"images/genrebag.jpg\" width=\"152\" height=\"85\"><tr>";
   
    /* Vi kører en while og udskriver data, det jeg har sat på er blot et eksempel */
    while ($row = mysql_fetch_array($query))
    {
        if(($taeller % $pr_raekke) == 0)
            echo "</tr><tr>";
       
        echo "<td align=\"center\"><a href=\"genre2.php?id=$r1[id]\">$row[genre]<br/></a></td>";
    }
   
    /* Vi slutter tabellen */
    echo "</tr></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'>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>";
}
?>
Avatar billede dingkee Nybegynder
24. april 2007 - 09:58 #5
Så kommer der ingen ting frem, en helt blank kode, uden nogen html overhovedet...
Avatar billede jakobdo Ekspert
24. april 2007 - 10:17 #6
Husker du at forbinde til databasen?
Avatar billede dingkee Nybegynder
24. april 2007 - 10:20 #7
jeps, det eneste jeg har gjort er at klippe den kode ud, som jeg har vist over, og så sat din ind.
Avatar billede jakobdo Ekspert
24. april 2007 - 10:26 #8
Så må du igang med at debugge.
Du må skrive noget ud forskellige steder.

echo 'ANTAL : ' . $antal . '<br />';

echo 'VISFRA : ' . $visfra . '<br />';

osv...
Avatar billede dingkee Nybegynder
24. april 2007 - 10:34 #9
Jeg  har fundet ud af at denne løsning her virker:

<?php
/* Antallet af poster vi ønsker vist på hver side */
$pr_side = 10;
$i = 0;

/* Vi tæller antallet af poster i tabellen husk at ændre ‘table’ til dit eget tabelnavn */
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM genre"),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 genre ORDER BY genre 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)) {
$i++;
echo "
                                                <td>
                                                    <table background=\"images/genrebag.jpg\" width=\"152\" height=\"85\">
                                                    <tr>
                                                    <td align=\"center\">
                                                    <a href=\"genre2.php?id=$r1[id]\">
                                                        $row[genre]<br/>
                                                    </a>
                                                    </td>
                                                    </tr>
                                                    </table>
                                                </td>
";
if ($i == 5) {
$i = 0;
echo "</tr><tr>";
}
}
echo "</tr></table><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'>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>";
}
?>

I skal have tak for hjælpen... Hvad gør vi med point?? Vil gerne give jer noget fordi i gerne vile hjælpe
Avatar billede jakobdo Ekspert
24. april 2007 - 11:10 #10
Svar!
Avatar billede yHec Novice
24. april 2007 - 18:04 #11
Jeg har vist ikke fortjent dem:-)

Giv dem til jakobdo

/y
Avatar billede dingkee Nybegynder
24. april 2007 - 23:20 #12
Så fik Jakobdo dem :) men tak for hjælpen ;)
Avatar billede jakobdo Ekspert
25. april 2007 - 07:48 #13
Jeg takker for point.
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