Blätterfunktion mit Kategorienunterteilung und Bilder pro Seite auswählbar
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ansehen
anzahl
ausgabe
bild
display
eingestellten optionen
einstellung
ergebnis
extreme wallpaper
inhaltsverzeichnis
kategorie
limit
mengen
order
result
script
spalten
tabelle
target
validation
-
erstmal moin alle zusammen
Ich hab mir auch http://www.djtechnostyler.de.ms eine Kategorie "Pix ansehen" erstellt und die Pix wurden in einer Datenbank mit mehreren Kategorieen gespeichert. nun m?chte ich die Kategorieen einmal alle auslesen (alle Bilder anzeigen) und dann nochmal jede Kategorie einzelnt. au?erdem m?chte ich, dass der Besucer selbst entscheiden kann, wieviele Bilder pro seite angezeigt werden sollen. das hab ich in einem Formular mit Post gemacht. (siehe Homepage)
wenn ich mit der Bl?tterfunktion jetzt aber von Seite 1 auf eine andere Seite wechsele, habe ich nicht mehr die eingestellten Optionen, sondern die erste Einstellung, wenn man diese Kategorie "Pix ansehen" betritt. Ich hab das ganze so aufgebaut, dass alle Bilder angezeigt werden, wenn in den Optionen nichts steht.
schauts euch einfach mal auf http://www.djtechnostyler.de.ms an. Hier abe ich das Script dazu:
$kategorie = $_POST["kategorie"]; $anzahl = $_POST["anzahl"]; echo '<form method="POST" action="picshow.php"> <p align="left"><font size="2">Kategorie w?hlen:</font><select size="1" name="kategorie" style="font-family: Verdana; font-size: 7pt; color: #FFFFFF; border: 1px dotted #2A2A2A; background-color: #2A2A2A; font-weight:bold"> <option selected>'.$kategorie.'</option> <option>Fun</option> <option>Extreme</option> <option>Wallpaper</option> </select> <font size="2">Anzahl Bilder pro Seite:</font> <!--webbot bot="Validation" s-display-name="anzahl" s-data-type="Integer" s-number-separators="x" i-maximum-length="2" --> <input type="text" name="anzahl" size="7" style="font-family: Verdana; font-size: 7pt; color: #FFFFFF; font-weight: bold; border: 1px dotted #2A2A2A; background-color: #2A2A2A" maxlength="2" value="'.$anzahl.'"> <input type="submit" value="GO" name="B1" style="font-family: Verdana; font-size: 7pt; color: #FFFFFF; border: 1px dotted #2A2A2A; background-color: #2A2A2A; font-weight:bold"></p> </form>'; $seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1 if(!isset($seite)) { $seite = 1; } //Verbindung zu Datenbank aufbauen $link = mysql_connect("mysql.lima-city.de","USER","PASSWORT") or die ("Keine Verbindung moeglich"); mysql_select_db("DATENBANK") or die ("Die Datenbank existiert nicht"); //Eintr?ge pro Seite: Hier 15 pro Seite $anzahl = $_POST["anzahl"]; if($anzahl=="") { $eintraege_pro_seite = 10; } else { $eintraege_pro_seite = $anzahl ; } //Ausrechen welche Spalte man zuerst ausgeben muss: $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite; //Tabelle Abfragen //Tabelle heißt hier einfach: Tabelle if($kategorie=="") { $abfrage = "SELECT bild FROM uploadbilder ORDER BY bilderid DESC LIMIT $start, $eintraege_pro_seite"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo $row->bilderid.'<a title="'.$row->bild.'" target="_blank" href="uploadbilder/'.$row->bild.'"> <img border="0" src="uploadbilder/'.$row->bild.'" width="100" height="110"></a>'; // Hier die Ausgabe der Eintr?ge } } else { $abfrage = "SELECT bild FROM uploadbilder WHERE kategorie LIKE '$kategorie' ORDER BY bilderid DESC LIMIT $start, $eintraege_pro_seite"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo $row->bilderid.'<a title="'.$row->bild.'" target="_blank" href="uploadbilder/'.$row->bild.'"> <img border="0" src="uploadbilder/'.$row->bild.'" width="100" height="110"></a>'; // Hier die Ausgabe der Eintr?ge } } //Jetzt kommt das "Inhaltsverzeichnis", //sprich dort steht jetzt: Seite: 1 2 3 4 5 //Wieviele Eintr?ge gibt es ?berhaupt //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten //also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt //Sonst funktioniert die Bl?tterfunktion nicht richtig, //und hier kann nur 1 Feld abgefragt werden, also id if($kategorie=="") { $result = mysql_query("SELECT bilderid FROM uploadbilder ORDER BY bilderid DESC"); $menge = mysql_num_rows($result); } else { $result = mysql_query("SELECT bilderid FROM uploadbilder WHERE kategorie LIKE '$kategorie' ORDER BY bilderid DESC"); $menge = mysql_num_rows($result); } //Errechnen wieviele Seiten es geben wird $wieviel_seiten = $menge / $eintraege_pro_seite; //Ausgabe der Seitenlinks: echo "<div align=\"center\">"; echo "<b>Seite:</b> "; //Ausgabe der Links zu den Seiten for($a=0; $a < $wieviel_seiten; $a++) { $b = $a + 1; //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben if($seite == $b) { echo " <b>$b</b> "; } //Aus dieser Seite ist der User nicht, also einen Link ausgeben else { echo " <a href=\"?seite=$b\">$b</a> "; } } echo "</div>";
Die Datenbankangaben sind nat?rlich ge?ndert, also nicht wundern, wenn da bei euch ein MySQL-Fehler kommt. ^^ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hmmm,kann oder will mir keiner helfen?
ich versuch n?mlich die Dateimenge m?glichst klein zu halten... -
setzt mal am Anfang deines scripts folgendes:
error_reporting(E_ALL);
und schreibe hier mal die Ausgabe hin
Beitrag ge?ndert am 26.07.2006 17:37 von newwarrior -
also dieses E_ALL in der Klammer ersetzen oder wie?
-
tut mir sorry, das funzt iwie auch net so richtig.
-
speichere mal deinen ganzen Code von der Seite in einer .txt Datei und dann gib mal den Link her.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage