Bestimmte Anzahl von Tabellen ausgeben. Den Rest als Links...Aber wie?

Flame

Erfahrenes Mitglied
Hallo @ll.

Ich mal wieder.

Es geht um folgendes. Da ich keine Suchphrase dafür kenne, kann ich auch nicht im Forum suchen, ob es sowas schonmal gibt.

Deswegen mein Post.

Zum Prob.
Ich lese eine DB aus.
Da gibt es z.b. 2000 Thumbs.

Diese möchte ich jetzt einzeln in Tabellen ausgeben.
Die Thumbs sollen verlinkt sein.
Nun möchte ich aber keine 2000 Thumbs auf einer Seite, sondern
eben maximal 3 nebeneinander und 4 untereinander.
Der Rest soll als Links dargestellt werden.

Um Euch zu zeigen, was ich meine mal ein Beispiel.
http://www.templatemonster.com/category.php?action=search_author&author=18&x=11&y=12

So wie die einzelnen Screenthumbs dargestellt sind.
Wie kann man sowas realisieren?

Thx :FLAmE:
 
Suchworte: Galery, Galerie, Gallery, Gallerie

(immer auch nach falsch geschriebenen Suchen, es gibt halt immer orthografische Genies :-) )

Link
 
Danke.

Ich habe jetzt folgenden Code gefunden und "angepasst"

PHP:
<?php
include("mysqlfunctions.inc.php");

$sql="select * from authors";
$result=mysql_query($sql);
$result=mysql_num_rows($result);
echo"Es gibt $result Autoren";
?>
<?php
$i = 0;

// Dateinamen der Bilder aus der datenbank holen
$query = "SELECT medium_Screen_URI FROM templates LIMIT 0, 10";
$result = mysql_query($query, $link);
if (!$result)
{
    print mysql_error();
    die("Query $query ist ungültiges SQL.");
}


//TempID ermitteln
$TempID = "SELECT CatID FROM templates LIMIT 0, 10";
$result1 = mysql_query($TempID);
$zeile = mysql_fetch_array($result1);


// tabelle mit 450 pixel breite
echo"<table width=\"450\" border=\"0\"><tr>";

while ($daten = mysql_fetch_array($result))
{

// eine spalte 150 pixel breit und ein bild drin
echo"<td width=\"150\"><img src=\"$daten[medium_Screen_URI]\" alt=\"$zeile[CatID]\"></td>";


// die 3 bedeutet, dass er 3 spalten pro zeile macht, dann eine zeile weiter springt

    if ( !( ( $i + 1 ) % 3) )


                {echo "</tr><tr><td></td><td></td><td></td><td></td></tr><tr>";}


    $i++;

}
echo"</table>";

?>

Aber die "alt" Funktion/Tag der Bilder steht immer nur auf 1.
Er zeigt also nicht die fortlaufenden ThumbID`s an.

Was mache ich flasch?

:FLAmE:
 
-

PHP:
$query = "SELECT medium_Screen_URI, CatID FROM templates LIMIT 0, 10";
Benutz nur einen Query, dann brauchst du auch nur eine Schleife, um die Daten aus dem Record-Set rauszuholen.

Und bevor du fragst, du musst die Angaben bei deiner Limit Anweisung dynamisch errechnen. Siehe dir dazu bitte das Tutorial von Dunsti "GB Daten auf mehreren Seiten verteilen" an.
 
Das Limit habe ich nur deswegen drin, da ich sonst jedesmal 2500 Thumbs lade.

Ich habe jetzt x1000 Varianten durch. Aber es klappt nit. :(
 
-

Wo ist jetzt das Problem?
Hast du das mit nur einem Query schon ausprobiert?

Dein Fehler war
PHP:
 $zeile = mysql_fetch_array($result1);
nicht in einer Schleife zu behandeln. So behälst du natürlich immer nur den Zugriff auf das erste Element im Record-Set.
 
PHP:
<?php
include("mysqlfunctions.inc.php");

$sql="select * from authors";
$result=mysql_query($sql);
$result=mysql_num_rows($result);
echo"Es gibt $result Autoren";
?>
<?php
$i = 0;

// Dateinamen der Bilder aus der datenbank holen
$query = "SELECT medium_Screen_URI, CatID FROM templates LIMIT 0, 10";
$result = mysql_db_query("Layouts", $query);

if (!$result)
{
    print mysql_error();
    die("Query $query ist ungültiges SQL.");
}


//TempID ermitteln


// tabelle mit 450 pixel breite
echo"<table width=\"450\" border=\"0\"><tr>";

while ($daten = mysql_fetch_array($result))
{

// eine spalte 150 pixel breit und ein bild drin
echo"<td width=\"150\"><img src=\"$daten[medium_Screen_URI]\" alt=\"$daten[CatID]\"></td>";


// die 3 bedeutet, dass er 3 spalten pro zeile macht, dann eine zeile weiter springt

    if ( !( ( $i + 1 ) % 3) )


                {echo "</tr><tr><td></td><td></td><td></td><td></td></tr><tr>";}


    $i++;

}
echo"</table>";

?>

So hab ich das jetzt dank ICQ Help gemacht.
 
Zurück