Thumbnails mit Blätterfunktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Thumbnails mit Blätterfunktion

    Hi, ich habe eine kleine Galerie entwickelt. Und zwar hänge ich jetzt bei der Blätterfunktion fest und weiß nicht genau wie ich das bewerkstelligen soll.

    Hier die Seite wie die Thumbnails angezeigt werden. Dort soll es eine Blätterfunktion geben, das z.B. nur 10 Bilder angezeigt werden und dann auf "weiter" bzw. "zurück" gedrückt werden kann.

    PHP-Code:

    <?php

    if (isset ($_GET['SID'])) 
        {    
            
    session_id($_GET['SID']);
        }

    session_start();
    $SID session_id();

    include 
    'config.inc.php';

    ?>
    <br>
    <h4 align="center">Bilder</h4>
    <br>
    <table width="70%" border="0" align="center" cellpadding="0" cellspacing="0">

    <?php
            $cat2_id 
    = ($_GET['cat2_id']);
            
            
    $res=mysql_query("SELECT * FROM pictures WHERE cat2_id = $cat2_id ORDER BY pic_id");
            
            
    $num=mysql_num_rows($res);
            for(
    $i=0;$i<$num;$i++)
            {
            
    $row=mysql_fetch_array($res);
            
    $pic_path $row['pic_path'];
            
    $pic_filename $row['pic_filename'];
            
            
            
    $PicPathIn="Pictures/$pic_path/"
            
    $PicPathOut="Pictures/$pic_path/out/"

    // Orginalbild 
            
    $bild="$pic_filename"

    // Bilddaten ermitteln 
            
    $size=getimagesize("$PicPathIn"."$bild"); 
            
    $breite=$size[0]; 
            
    $hoehe=$size[1]; 
            
    $neueBreite=250
            
    $neueHoehe=intval($hoehe*$neueBreite/$breite); 

            if(
    $size[2]==1) { 
    // GIF 
            
    $altesBild=ImageCreateFromGIF("$PicPathIn"."$bild"); 
            
    $neuesBild=imageCreate($neueBreite,$neueHoehe); 
            
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
            
    imageGIF($neuesBild,"$PicPathOut"."TN"."$bild"); 
            } 

            if(
    $size[2]==2) { 
    // JPG 
            
    $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild"); 
            
    $neuesBild=imageCreatetrueColor($neueBreite,$neueHoehe); 
            
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
            
    ImageJPEG($neuesBild,"$PicPathOut"."TN"."$bild"); 
            } 

            if(
    $size[2]==3) { 
    // PNG 
            
    $altesBild=ImageCreateFromPNG("$PicPathIn"."$bild"); 
            
    $neuesBild=imageCreate($neueBreite,$neueHoehe); 
            
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
            
    ImagePNG($neuesBild,"$PicPathOut"."TN"."$bild"); 
            } 

            
    $Thumbnail=$PicPathOut."TN".$bild
            
            print 
    "<tr>";
            print 
    "<td align=\"left\" valign=\"top\">" $row['pic_name']."<br>
    <br>" 
    $row['pic_descr'] . "</td>";
            print 
    '<td align=\"center\"><a href="?go=Show/pic_show2&pic_id='$row['pic_id'] .'">' "
    <IMG src=\"
    $Thumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\">" ."</a></td>";
            print 
    "</tr>";
            print 
    "<tr>";
            print 
    "<td height=\"20\"></td>";
            print 
    "</tr>";
            
            
            }
            
    ?>
    </table>

    Ich hoffe ihr könnt mir bei dem Problem helfen.

    Mfg, Gabi.
    Zuletzt geändert von DieGabi; 07.04.2006, 12:30.

  • #2
    arbeite bei deinem query mit limit, und übergib in den weiterführenden links die gewünschten werte. ansonsten such hier im forum mal blättern, das thema hatten wir schon haufenweise.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Habe mir schon ein paar Threads dazu angesehen und muss dazu sagen das manche das wohl komplizierter machen als es wohl ist.

      Das mit dem LIMIT habe ich mir mal angesehen, funktioniert aber auch nicht wirklich. Vielleicht gehe ich es auch nur falsch an.

      Könntest du es anhand meines Quelltextes erläutern?

      Kommentar


      • #4
        PHP-Code:
        if (!$_GET['step']) $_GET['step'] = 0;
        $query "SELECT * FROM pictures WHERE cat2_id = $cat2_id LIMIT $_GET['step]',10"
        und die varialbe $_GET['step'] mußt du einfach nur rauf- bzw. runterzählen und als parameter im link übergeben.

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Wie meinst du das mit dem rauf- und runterzählen?

          Könntest du das im Zusammenhang schreiben? Wäre echt lieb von dir
          Zuletzt geändert von DieGabi; 07.04.2006, 13:17.

          Kommentar


          • #6
            Hi,
            also folgende reihenfolge würde ich dir vorschlagen um es zu verstehen:
            - per $_GET aus der url die angefragte seite holen, wenn 0 oder leer ist die seite logischer weise == 1
            - bilder pro seite festlegen (z.B. 15)
            - den "anfang" festlegen für das query, z.B. sowas:
            $anfang = $_GET['seite'] * $bilder_pro_seite - $bilder_pro_seite
            - im query dann "LIMIT $anfang, $bilder_pro_seite"
            - für die berechnung für die anzahl der seiten liest du dir alle aus der datenbank aus und teilst dann das ergebnis von mysql_num_rows durch $bilder_pro_seite
            - dann noch mit einer for-schleife die seiten ausgeben mit link z.B. "showpic.php?seite=$bla&cat=wasweisich

            ...fertig

            Kommentar


            • #7
              Habe das mal versucht, doch irgendwie haut das nicht hin.

              Könnte mir das jemand in den Quelltext einarbeiten so wie "perfi" es geschrieben hat?

              Ich habe es übers ganze Wochenende versucht, aber es kommt nichts gescheites bei raus

              Kommentar


              • #8
                zeig doch mal wie du versucht hast die einzelnen Schritte zu coden...

                Dann kann ich dir auch sagen wo es hinkommen muss und wie es richtig wäre

                Kommentar


                • #9
                  Ich hatte ja mal übers WE was probiert. Nur er zeigt unten Seite 1 und 2 an. Aber keine Fotos mehr.

                  Wie ich es oben gepostet hatte funktioniert alles. Nur halt die Blätterfunktion nicht.

                  PHP-Code:

                  <?php

                  if (isset ($_GET['SID'])) 
                      {    
                          
                  session_id($_GET['SID']);
                      }

                  session_start();
                  $SID session_id();


                  $seite $_GET["seite"];

                  if(!isset(
                  $seite)) 
                     { 
                     
                  $seite 1
                     } 

                  include 
                  'config.inc.php';

                  $eintraege_pro_seite 2

                  $start $seite $eintraege_pro_seite $eintraege_pro_seite

                  ?>
                  <br>
                  <h4 align="center">Bilder</h4>
                  <br>
                  <table width="70%" border="0" align="center" cellpadding="0" cellspacing="0">

                  <?php
                          $cat2_id 
                  = ($_GET['cat2_id']);
                          
                          
                  $res=mysql_query("SELECT * FROM pictures WHERE cat2_id = $cat2_id 
                  LIMIT 
                  $start$eintraege_pro_seite ORDER BY pic_id");
                          
                          
                          
                  $num=mysql_num_rows($res);
                          
                          while(
                  $row mysql_fetch_object($num)) 
                          { 
                          
                          for(
                  $i=0;$i<$num;$i++)
                          {
                          
                  $row=mysql_fetch_array($res);
                          
                  $pic_path $row['pic_path'];
                          
                  $pic_filename $row['pic_filename'];
                          
                          
                          
                  $PicPathIn="Pictures/$pic_path/"
                          
                  $PicPathOut="Pictures/$pic_path/out/"

                  // Orginalbild 
                          
                  $bild="$pic_filename"

                  // Bilddaten ermitteln 
                          
                  $size=getimagesize("$PicPathIn"."$bild"); 
                          
                  $breite=$size[0]; 
                          
                  $hoehe=$size[1]; 
                          
                  $neueBreite=250
                          
                  $neueHoehe=intval($hoehe*$neueBreite/$breite); 

                          if(
                  $size[2]==1) { 
                  // GIF 
                          
                  $altesBild=ImageCreateFromGIF("$PicPathIn"."$bild"); 
                          
                  $neuesBild=imageCreate($neueBreite,$neueHoehe); 
                          
                  imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
                          
                  imageGIF($neuesBild,"$PicPathOut"."TN"."$bild"); 
                          } 

                          if(
                  $size[2]==2) { 
                  // JPG 
                          
                  $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild"); 
                          
                  $neuesBild=imageCreatetrueColor($neueBreite,$neueHoehe); 
                          
                  imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
                          
                  ImageJPEG($neuesBild,"$PicPathOut"."TN"."$bild"); 
                          } 

                          if(
                  $size[2]==3) { 
                  // PNG 
                          
                  $altesBild=ImageCreateFromPNG("$PicPathIn"."$bild"); 
                          
                  $neuesBild=imageCreate($neueBreite,$neueHoehe); 
                          
                  imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
                          
                  ImagePNG($neuesBild,"$PicPathOut"."TN"."$bild"); 
                          } 

                          
                  $Thumbnail=$PicPathOut."TN".$bild
                          
                          print 
                  "<tr>";
                          print 
                  "<td align=\"left\" valign=\"top\">" $row['pic_name']."<br>
                  <br>" 
                  $row['pic_descr'] . "</td>";
                          print 
                  '<td align=\"center\"><a href="?go=Show/pic_show2&pic_id='$row['pic_id'] .'">' "
                  <IMG src=\"
                  $Thumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\">" ."</a></td>";
                          print 
                  "</tr>";
                          print 
                  "<tr>";
                          print 
                  "<td height=\"20\"></td>";
                          print 
                  "</tr>";
                          
                          
                          }
                          
                          }
                          
                          
                  $res=mysql_query("SELECT * FROM pictures WHERE cat2_id = $cat2_id ORDER BY pic_id");
                          
                          
                  $menge mysql_num_rows($res);
                          
                          
                  $wieviel_seiten $menge $eintraege_pro_seite
                          
                          
                          echo 
                  "<div align=\"center\">"
                          echo 
                  "<b>Seite:</b> "
                          
                          for(
                  $a=0$a $wieviel_seiten$a++) 
                          { 
                          
                  $b $a 1

                          if(
                  $seite == $b
                          { 
                          echo 
                  "  <b>$b</b> "
                          } 

                          else 
                          { 
                          echo 
                  "  <a href=\"?seite=$b\">$b</a> "
                          } 
                          } 
                          echo 
                  "</div>"
                          
                  ?>
                  </table>

                  Kommentar


                  • #10
                    Original geschrieben von DieGabi
                    PHP-Code:
                    ...
                            if(
                    $seite == $b)  { 
                            echo 
                    "  <b>$b</b> "
                            } else { 
                            echo 
                    "  <a href=\"?seite=$b\">$b</a> "
                            } 
                    ... 
                    [/B]
                    der href stimmt nicht. Dort musst du schon reinschreiben das er die datei (dateiname bzw php_self) mit seite=$b aufrufen soll.

                    Kommentar


                    • #11
                      Der Link ist ja erstmal egal, das kann ich nachher gleich ändern.

                      Aber die Bilder sollten wenigstens angezeigt werden. Doch das tut er nicht.

                      Ist die Ausgabe vielleicht an nem Falschen Ort? Oder was anderes?

                      Kommentar


                      • #12
                        die While-Schleife brauchst du eigentlich nicht wirklich...

                        Kommentar


                        • #13
                          Die While Schleife habe ich jetzt rausgenommen.

                          Er zeigt die Bilder aber immernoch nicht an.

                          Habe echt keine Ahnung was da nicht stimmt.

                          den Link habe ich aber schon gefixt:

                          PHP-Code:
                          ...

                          echo 
                          "  <a href=\"?go=Show/pic_show&cat2_id=46&seite=$b\">$b</a> "

                          ... 
                          Zuletzt geändert von DieGabi; 10.04.2006, 10:49.

                          Kommentar


                          • #14
                            Ok, Thread kann geschlossen werden! Das Ergebnis wurde gefunden!

                            Das query war falsch:


                            PHP-Code:
                            ...

                            $res mysql_query("SELECT * FROM pictures WHERE cat2_id = $cat2_id 
                            ORDER BY pic_id LIMIT 
                            $start$eintraege_pro_seite");

                            ... 

                            Das Limit kommt immer ans ENDE einer Query wurde mir gesagt


                            Danke trotzdem an alle die geholfen haben.
                            Zuletzt geändert von DieGabi; 10.04.2006, 11:16.

                            Kommentar


                            • #15
                              Beim include fehlen noch die Klammer
                              include('bla.php');

                              Ansonsten würd ich dir raten das du dir einzelne Werte mal ausgeben lässt (in der schleife) ob überhaupt was drinsteht...

                              Kommentar

                              Lädt...
                              X