|
|
User gesamt
|
:
|
2400037
|
User online
|
:
|
2
|
|
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
|
|
|
|
MyWebsolution.de Foren » Workshops » Bildergalerie mit blätterfunktion
Seite:
|
1
|
Posts pro Seite: 5
10
20
|
Autor
|
Thread
|
27.05.2008 15:23 Uhr
|
Bildergalerie mit blätterfunktion
|
Rajan
|
User
|
|
registriert
|
06.05.2008
|
wohnt in
|
|
Beiträge
|
8
|
|
Guten Tag,
Erstmals muss ich wirklich loswerden das das eine super seite ist, richtig gute tutorials und workshops die mir sehr geholfen haben.
Habe nun folgendes Problem und zwar habe ich mir den Bildergalerie hier teilweise übernommen würde aber noch gerne in der Datei "galerie.php" und "overwiev.php" eine Blätterfunktion einbauen, habe auch hier auf der seite den Tutorial angeschaut und versucht einzubauen aber irgendwie klappt das nicht so wirklich.
Habe zwar etwas erfahrung in php und mysql aber leider noch nicht so viel.
Werde es weiterhin versuchen, wenn aber einer ein tipp hat oder helfen kann wäre ich überaus dankbar.
MfG
Rajan
|
|
|
27.05.2008 18:57 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Hey, danke für das Lob
Wäre super, wenn du mal etwas Quellcode posten könntest. Hab momentan leider nicht die technischen Mittel um konkret was zu basteln, deswegen kann ich nur versuchen dich in die richtige Richtung zu stubsen
Gruß
Flitze
|
|
|
27.05.2008 21:04 Uhr
|
|
Rajan
|
User
|
|
registriert
|
06.05.2008
|
wohnt in
|
|
Beiträge
|
8
|
|
Danke für die super schnelle antwort also hier 1mal der Code:
PHP:
<?php
error_reporting(E_ALL);
echo "<h1>Galerie</h1>\n";
$sql = "SELECT ID, Name, Beschreibung, DATE_FORMAT(Datum, '%d.%m.%Y') as Datum FROM Alben ORDER BY Datum DESC";
$result = mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
if(!mysql_num_rows($result))
{
echo "<p>\n".
"Es befinden sich keine Alben in der Datenbank\n".
"</p>\n";
}
while($row = mysql_fetch_assoc($result))
{
$sql = "SELECT COUNT(*) FROM Fotos WHERE Alben_ID = '".$row['ID']."' ";
$result_anzahl = mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
$anzahl_fotos = mysql_result($result_anzahl, 0);
echo "<dl>\n".
"<dt><a href=\"index.php?s=overview&id=".$row['ID']."\">".htmlentities($row['Name'], ENT_QUOTES)."</a> <br>(".$row['Datum']." - ".$anzahl_fotos." Fotos)</dt>\n".
"<dd>".htmlentities($row['Beschreibung'], ENT_QUOTES)."</dd>\n".
"</dl>\n";
}
$sql = "SELECT COUNT(*) FROM Alben ";
$anzahl = mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
// Festlegen der aktuellen Seite
$start = isset($_GET['page_number'])?(int)$_GET['page_number']:1;
// Festlegen der Anzahl der angezeigten Datensätze
$per_page = isset($_GET['per_page'])?(int)$_GET['per_page']:2;
// Berechnung der Seitenzahlen = Alle Datensätze geteilt durch Datensätze pro Seite
$num_pages = ceil($anzahl/$per_page);
// Überprüft, ob eine mögliche Seitenzahl übergeben wurde
if ($start < 1)
$start = 1;
if ($start > $num_pages)
$start = $num_pages;
// Seitenzahlen
echo "<table>\n";
echo " <tr>\n";
echo " <td style=\"width:50px;\">\n";
echo "Seite: \n";
echo " </td>\n";
echo " <td>\n";
// Prüft, ob die Anzeige von "<" sinnvoll ist
if ($start != 1)
echo "<a href=\"index.php?s=galerie?per_page=".$per_page."&page_number=".($start-1)."\"><</a> \n";
for($i=1; $i<=$num_pages; $i++)
{
// Für die aktuelle Seite wird kein Link erzeugt..
if ($i==$start)
echo $i."\n";
// Für alle anderen schon.
else
echo "<a href=\"index.php?s=galerie?per_page=".$per_page."&page_number=".$i."\">".$i."</a>\n";
}
// Prüft, ob die Anzeige von ">" sinnvoll ist
if ($start != $num_pages)
echo " <a href=\"index.php?s=galerie?per_page=".$per_page."&page_number=".($start+1)."\">></a> \n";
echo " </td>\n";
echo " </tr>\n";
echo "</table>\n";
?>
das ganze sieht so aus in Moment
Komischer weiße zeigt er mir 6 seiten an obwohl nur 3 ID's in der DB sind wenn ich diesen "SELECT COUNT(*) FROM Alben" SQL befehl so in phpmyadmin eingebe zeigt er mir als ergebniss auch 3 an deswegen weiß ich net woran das liegt.
Dann wenn ich auf eine der seiten zahl klicke lande ich auf die index seite.
Die URL sieht dann zb. so aus "index.php?s=galerie?per_page=2&page_number=2" aber komme auf die normale index seite.
Mittlerweile weiß ich nicht mehr weiter und bin um jeden denkhilfe dankbar.
MfG
Rajan
Dieser Beitrag wurde am 27.05.2008 um 21:06:12 Uhr von Rajan zum 1. Mal editiert.
|
|
|
28.05.2008 17:35 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Zitat: Komischer weiße zeigt er mir 6 seiten an obwohl nur 3 ID's in der DB sind wenn ich diesen "SELECT COUNT(*) FROM Alben" SQL befehl so in phpmyadmin eingebe zeigt er mir als ergebniss auch 3 an deswegen weiß ich net woran das liegt.
Das kann ich auch nicht ganz nachvollziehen, im Code kann ich zumindest ohne testen keinen Fehler erkennen 0o
Zitat:Dann wenn ich auf eine der seiten zahl klicke lande ich auf die index seite.
Die URL sieht dann zb. so aus "index.php?s=galerie?per_page=2&page_number=2" aber komme auf die normale index seite.
Also, zumindest das ist klar. In deinem Code fehler der wichtigste Teil für Seitenzahlen, der mit dem "Offset".
Du willst zwar nur eine bestimmte Anzahl Alben anzeigen, aber deine Ausgabe ist gänzlich unabhängig von der deiner Seitenzahl, oder ich bin zu blind um eine Verbindung zu erkennen
|
|
|
30.05.2008 14:06 Uhr
|
|
Rajan
|
User
|
|
registriert
|
06.05.2008
|
wohnt in
|
|
Beiträge
|
8
|
|
Danke habs jetzt alles hinbekommen also er liest jetzt die richtigen Daten aus und verlinkt mich auch bei den seitenanzahl richtig nur eine sache macht mich stutzig und zwar
PHP:
$sql = "SELECT ID, Name, Beschreibung, DATE_FORMAT(Datum, '%d.%m.%Y') as Datum FROM Alben ORDER BY Datum DESC LIMIT " .$offset. "," .$per_page ." ";
zeigt er mir nur die heutigen datum an und keine andere alben mit einem anderen Darum
entferne ich aber diesen PHP:
ORDER BY Datum DESC
teil vom Code zeigt er mir alle alben an auch die mit anderen Datum
Desweiteren egal welche der beiten befehle ich nehme er zeigt mir insgesamt nur 10 ergebnisse an, obwohl ich insgesamt 14 Daten in der DB habe... also der zeigt mir nie mehr als 2 seiten jetzt an...
hier noch mal der vollständige Code:
PHP:
<?php
error_reporting(E_ALL);
echo "<h1>Galerie</h1>\n";
$sql = "SELECT ID, Name, Beschreibung, DATE_FORMAT(Datum, '%d.%m.%Y') FROM Alben";
$result = mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
if(!mysql_num_rows($result))
{
echo "<p>\n".
"Es befinden sich keine Alben in der Datenbank\n".
"</p>\n";
}
else
{
$sql = "SELECT COUNT(*) FROM Alben";
$anzahl = mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
// Festlegen der aktuellen Seite
$start = isset($_GET['page_number'])?(int)$_GET['page_number']:1;
// Festlegen der Anzahl der angezeigten Datensätze
$per_page = isset($_GET['per_page'])?(int)$_GET['per_page']:10;
if ($per_page != 5 AND $per_page != 10 AND $per_page != 20)
$per_page = 10;
// Berechnung der Seitenzahlen = Alle Datensätze geteilt durch Datensätze pro Seite
$num_pages = ceil($anzahl/$per_page);
// Überprüft, ob eine mögliche Seitenzahl übergeben wurde
if ($start < 1)
$start = 1;
if ($start > $num_pages)
$start = $num_pages;
// Seitenzahlen
echo "<table>\n";
echo " <tr>\n";
echo " <td style=\"width:50px;\">\n";
echo "Seite: \n";
echo " </td>\n";
echo " <td>\n";
// Prüft, ob die Anzeige von "<" sinnvoll ist
if ($start != 1)
echo "<a href=\"index.php?s=galerie&per_page=".$per_page."&page_number=".($start-1)."\"><</a> \n";
for($i=1; $i<=$num_pages; $i++)
{
// Für die aktuelle Seite wird kein Link erzeugt..
if ($i==$start)
echo $i."\n";
// Für alle anderen schon.
else
echo "<a href=\"index.php?s=galerie&per_page=".$per_page."&page_number=".$i."\">".$i."</a>\n";
}
// Prüft, ob die Anzeige von ">" sinnvoll ist
if ($start != $num_pages)
echo " <a href=\"index.php?s=galerie&per_page=".$per_page."&page_number=".($start+1)."\">></a> \n";
echo " </td>\n";
echo " </tr>\n";
echo "</table>\n";
$offset = ($start-1)*$per_page;
[b]$sql = "SELECT ID, Name, Beschreibung, DATE_FORMAT(Datum, '%d.%m.%Y') as Datum FROM Alben ORDER BY Datum DESC LIMIT " .$offset. "," .$per_page ." ";[/b]
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
while($row = mysql_fetch_assoc($result))
{
$sql = "SELECT COUNT(*) FROM Fotos WHERE Alben_ID = '".$row['ID']."' ";
$result_anzahl = mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
$anzahl_fotos = mysql_result($result_anzahl, 0);
echo "<dl>\n".
"<dt><a href=\"index.php?s=overview&id=".$row['ID']."\">".htmlentities($row['Name'], ENT_QUOTES)."</a> <br>(".$row['Datum']." - ".$anzahl_fotos." Fotos)</dt>\n".
"<dd>".htmlentities($row['Beschreibung'], ENT_QUOTES)."</dd>\n".
"</dl>\n";
}
}
?>
Ist wahrscheinlich nur etwas kleines, hoff ich mal...
Danke an allen
Gruß
Rajan
Dieser Beitrag wurde am 30.05.2008 um 14:22:14 Uhr von Rajan zum 1. Mal editiert.
|
|
|
03.06.2008 10:19 Uhr
|
|
Rajan
|
User
|
|
registriert
|
06.05.2008
|
wohnt in
|
|
Beiträge
|
8
|
|
Morgen
habe es selbst hinbekommen aber nun habe ich nur noch 1 Problem und zwar bei der overview.php datei fehler meldung gibt es keine und seiten anzahl wird auch richtig angezeigt nur wie kann ich hier:
PHP:
echo " <a href=\"index.php?s=overview&id=".$row['ID']."&seite=$b\">$b</a> ";
die aktuelle ID übergeben???
seite eins wird richtig angezeigt und hat diese url: index.php?s=overview&id=7
auf seite zwei erscheint diese url: index.php?s=overview&id=&seite=2
und hier fehlt nacht ....&id= ... die id nummer damit die 2te seite richtig angezeigt werden kann.
Wenn ich dann aber in der url manuel nach der &id= die ID eingebe dann zeigt er mir die 2 seite auch korrekt an.
Danke an allen.
MfG
Rajan
Dieser Beitrag wurde am 03.06.2008 um 10:25:42 Uhr von Rajan zum 1. Mal editiert.
|
|
|
03.06.2008 10:32 Uhr
|
|
Rajan
|
User
|
|
registriert
|
06.05.2008
|
wohnt in
|
|
Beiträge
|
8
|
|
Hi,
sry habe es gerade selbst herraus gefunden
man sollte doch wirklich manchmal nicht so voreilig aufgeben anstatt ".$row['ID']." muss da ".$_GET['ID']." hin...
aber danke an allen
|
|
|
Seite:
|
1
|
|
|
Powered by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
Designed by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
|
|
|
|
|