Logo - MyWebsolution.de
User gesamt  :  2316575
User online  :  3
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

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
Profil ansehen
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


Profil ansehen Mail senden
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_anzahl0);        
        
        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)."\">&lt;</a>&nbsp\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 
"&nbsp<a href=\"index.php?s=galerie?per_page=".$per_page."&page_number=".($start+1)."\">&gt;</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.
Profil ansehen
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 ;)


Profil ansehen Mail senden
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 != 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)."\">&lt;</a>&nbsp\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 
"&nbsp<a href=\"index.php?s=galerie&per_page=".$per_page."&page_number=".($start+1)."\">&gt;</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_anzahl0);
        
            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.
Profil ansehen
03.06.2008 10:19 Uhr
Rajan
User
 
registriert 06.05.2008
wohnt in
Beiträge 8
Morgen xD

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.
Profil ansehen
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 :D
man sollte doch wirklich manchmal nicht so voreilig aufgeben anstatt ".$row['ID']." muss da ".$_GET['ID']." hin...:oops:

aber danke an allen
Profil ansehen
Seite: 1 no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik