Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeilenlimit setzten

Einklappen

Neue Werbung 2019

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

  • Zeilenlimit setzten

    Hi ich habe mir jetzt ein Script zum Ausgeben von Bildern eines Albums geschrieben, das folgendermaßen aussieht.

    PHP-Code:
    PHP-Code:
    <?php
    // Include-Dateien hinzufügen
    include('inc/config.php');
        
    // Verbindung zum MySQL-Server
    $db mysql_connect ($db_host$db_username$db_passwd)
        or die(
    "Keine Verbindung möglich: " mysql_error());
    mysql_select_db ($db_db$db);

    // Datensatz-Ausgabe festlegen
    $anfrage "SELECT * FROM test_thumbs WHERE thumb_pruef=1 AND photo_cat_id=".$_GET['cat'];
    $result mysql_query($anfrage);
    // Anzahl der Datensätze in eine Variable schreiben
    $anz mysql_num_rows($result);

    // Datensatz-Ausgabe festlegen
    $sql_1 "SELECT * FROM test_photo_cats WHERE cat_pruef=1 AND cat_id=".$_GET['cat'];
    $result_1 mysql_db_query($db_db$sql_1);

    // Datensatz-Ausgabe festlegen
    $sql_2 "SELECT * FROM test_thumbs WHERE thumb_pruef=1 AND photo_cat_id=".$_GET['cat']." ORDER BY thumb_id DESC";
    $result_2 mysql_db_query($db_db$sql_2);

    // Verbindung zur Datenbank beenden
    mysql_close($db);
    ?>
    Dieses erste Script wird am Amfang der Seite zum Abfragen aller Daten verwendet (Ich weiß, dass es etwas veraltet ist )

    Zum Ausgeben für das erste Ergebniss wird dann folgendes Script verwendet
    PHP-Code:
    PHP-Code:
    <?php
    while($row1 mysql_fetch_array($result_1)) {
        
    extract($row1);
        
    $datum date("d.m.Y"strtotime($cat_datum));
        echo 
    "  <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"649\">\n";
        echo 
    "  <tbody><tr>\n";
        echo 
    "  <td class=\"table_title_bg\" height=\"19\" valign=\"bottom\">\n";
        echo 
    "  <table border=\"0\" cellpadding=\"0\" cellspacing=\"3\" height=\"18\" width=\"100%\">\n";
        echo 
    "  <tbody><tr>\n";
        echo 
    "  <td class=\"table_title\">‹Album›</td>\n";
        echo 
    "  <td class=\"table_title_info\" width=\"220\">$datum | Bilder</td>\n";
        echo 
    "  </tr></tbody>\n";
        echo 
    "  </table>\n";
        echo 
    "  </td>\n";
        echo 
    "  </tr>";
        echo 
    "  <tr>";
        echo 
    "  <td>";
        echo 
    "  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\n";
        echo 
    "  <tbody><tr>\n";
        echo 
    "  <td align=\"center\" valign=\"top\">\n";
        echo 
    "  <table style=\"border: solid #CCC; border-width: 0 1px 1px 1px;\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" width=\"100%\">\n";
        echo 
    "  <tbody><tr class=\"bg_td\">\n";
        echo 
    "  <td class=\"bg_td\" align=\"center\" height=\"88\" valign=\"middle\" width=\"110\"><img alt=\"$cat_name\" src=\"$cat_pfad\" class=\"picture\" title=\"$cat_name\" height=\"56\" width=\"75\"></td>\n";
        echo 
    "  <td style=\"border: solid #CCC; border-width: 0 1px;\" height=\"88\" valign=\"top\" width=\"180\">\n";
        echo 
    "  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\n";
        echo 
    "  <tbody><tr>\n";
        echo 
    "  <td class=\"normal_file_title\" style=\"text-transform: capitalize;\">[b]$cat_name[/b]</td>\n";
        echo 
    "  </tr>\n";
        echo 
    "  <tr>\n";
        echo 
    "  <td>
    \n"
    ;
        echo 
    "  › $cat_cat
    \n"
    ;
        echo 
    "  › $datum
    \n"
    ;
        echo 
    "  › $anzahl_pictures</td>\n";
        echo 
    "  </tr>\n";
        echo 
    "  <tr>\n";
        echo 
    "  <td>\n";
        echo 
    "  <table border=\"0\" cellpadding=\"0\" cellspacing=\"5\" width=\"100%\">\n";
        echo 
    "  <tbody><tr>\n";
        echo 
    "  <td><a href=\"?p=photos\">zurück zu den Alben</a></td>\n";
        echo 
    "  </tr></tbody>\n";
        echo 
    "  </table>\n";
        echo 
    "  </td>\n";
        echo 
    "  </tr></tbody>\n";
        echo 
    "  </table>\n";
        echo 
    "  </td>\n";
        echo 
    "  <td class=\"bg_td\" height=\"88\" valign=\"top\">\n";
        echo 
    "  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\n";
        echo 
    "  <tbody><tr>\n";
        echo 
    "  <td align=\"justify\">$cat_text</td>\n";
        echo 
    "  </tr></tbody>\n";
        echo 
    "  </table>\n";
        echo 
    "  </td>\n";
        echo 
    "  </tr></tbody>\n";
        echo 
    "  </table>\n";
        echo 
    "  </td>\n";
        echo 
    "  </tr></tbody>\n";
        echo 
    "  </table>\n";
        echo 
    "  </td>\n";
        echo 
    "  </tr>\n";
        echo 
    "  </tbody>\n";
        echo 
    "  </table>\n";
    }
    ?>
    Und zum ausgeben der Thumbs dieses Script
    PHP-Code:
    PHP-Code:
    <?php
    while($row2 mysql_fetch_array($result_2)) {
        
    extract($row2);
        echo 
    "  <td align=\"center\" height=\"80\"><a href=\"\"><img src=\"$thumb_pfad\" title=\"$thumb_pfad\" alt=\"$thumb_pfad\" class=\"picture\" height=\"75\" width=\"100\"></a>
    </td>\n"
    ;
    }
    ?>
    Im Grunde geht es nur um das letzte Script. Im Moment gibt das Script alle Thumbs in einer Tabellenzeile aus. Wie kann ich das begrenzen und sagen, dass nach jedem 5. Bild eine neue Zeile angefangen werden soll?

    Mfg, winKi

  • #2
    Re: Zeilenlimit setzten

    Tach auch...

    Zitat von winki
    Und zum ausgeben der Thumbs dieses Script
    PHP-Code:
    PHP-Code:
    <?php
    while($row2 mysql_fetch_array($result_2)) {
        
    extract($row2);
        echo 
    "  <td align=\"center\" height=\"80\"><a href=\"\"><img src=\"$thumb_pfad\" title=\"$thumb_pfad\" alt=\"$thumb_pfad\" class=\"picture\" height=\"75\" width=\"100\"></a>
    </td>\n"
    ;
    }
    ?>
    Im Grunde geht es nur um das letzte Script. Im Moment gibt das Script alle Thumbs in einer Tabellenzeile aus. Wie kann ich das begrenzen und sagen, dass nach jedem 5. Bild eine neue Zeile angefangen werden soll?

    Mfg, winKi
    Mach einfach mal folgendes:

    PHP-Code:
    PHP-Code:
    <?php
    $i 
    0;
    while(
    $row2 mysql_fetch_array($result_2)) {
        
    extract($row2);
        echo 
    "  <td align=\"center\" height=\"80\"><a href=\"\"><img src=\"$thumb_pfad\" title=\"$thumb_pfad\" alt=\"$thumb_pfad\" class=\"picture\" height=\"75\" width=\"100\"></a>
    </td>\n"
    ;
        if ((
    $i == 3) || ($i == 5) || ($i == 8)) {
            echo 
    "</TR><TR>\n";
        }
        
    $i = ++$i;
    }
    ?>

    Ggf. musst Du nur noch die Anzahl in der If-Schleife berichtigen und erweitern. Die Lösung ist zwar nicht gerade "sauber", aber für wenige Trumbs einsetzbar. Falls Du eine flexible Anzahl von Trubs hast, dann sag' bescheid, dann kann ich Dir da noch ein wenig mehr helfen. Z.H. habe ich mir da schon was, bin aber z.Zt. auf der Arbeit.

    Gruß Micro

    Kommentar


    • #3
      Ich habe mehrere Alben. Ich benutze immer diese Seite um den Inhalt bzw. die Thumbs eines Albums auszugeben, aber danke erstmal für dieses Script. Aber das andere nehme ich natürlich auch einmal zum Ausprobieren!

      Kommentar


      • #4
        Hi auch...

        Zitat von winki
        Ich habe mehrere Alben. Ich benutze immer diese Seite um den Inhalt bzw. die Thumbs eines Albums auszugeben, aber danke erstmal für dieses Script. Aber das andere nehme ich natürlich auch einmal zum Ausprobieren!
        Kein Thema, hier mal angepasst:


        PHP-Code:
        <?php 
        $i 
        0
        while(
        $row2 mysql_fetch_array($result_2)) { 
            
        extract($row2); 
            echo 
        "  <td align=\"center\" height=\"80\"><a href=\"\"><img src=\"$thumb_pfad\" title=\"$thumb_pfad\" alt=\"$thumb_pfad\" class=\"picture\" height=\"75\" width=\"100\"></a>
        </td>\n"

            
        $i = ++$i
            if (
        $i == 5) { 
                echo 
        "</TR><TR>\n";
                
        $i 0;
            } 

        ?>
        Wie Du siehst, ist da nicht sehr viel anders.
        Der Zähler $i ist nur vor der IF-Schleife gerutscht.
        Innerhalb der IF-Schleife wird nun beim erreichen der VAR ($i = 5) der Zähler wieder auf "0" gesetzt und der Umbruch innerhalb der Tabelle plaziert.
        Das wars....

        Viele Grüße

        Micro

        Kommentar


        • #5
          Danke dir für die schnelle und vorallem gute Hilfe!!! :P

          Kommentar


          • #6
            57 echo's, das ist grauenhaft! Man kann sich das Leben auch extrem schwer machen, wo hast du so einen Quatsch her?
            PHP-Code:
            <?
                  echo "<table align='center' border='0' cellpadding='0' cellspacing='0' width='649'>
                         <tbody>
                           <tr>
                            <td class='table_title_bg' height='19' valign='bottom'>
                             <table border='0' cellpadding='0' cellspacing='3' height='18' width='100%'>
                              <tbody>
                               <tr>
                                <td class='table_title'>‹Album›</td>
                                <td class='table_title_info' width='220'>$datum | Bilder</td>
                               </tr>
                              </tbody>
                             </table>
                            </td>
                           </tr>
                           <tr>
                            <td>
                             <table border='0' cellpadding='0' cellspacing='0' width='100%'>
                              <tbody>
                               <tr>
                           :
                           :
                           :               
                        </table>\n";
            ?>
            Ich behaupte mal, das läßt sich besser lesen!

            Und deine Mischerei zwischen Formatangaben und CSS ist auch Käse.

            Gruß
            phpfan

            Kommentar


            • #7
              Ok, danke habe ich jetzt mal alles soweit geändert, aber wie gesagt es ist nur eine Test-Seite.

              Noch eine Frage. Ich habe jetzt die Seite, auf der die Thumbs ausgegeben werden. Ich habe mir jetzt ausßerdem noch eine Seite erstellt, die angezeigt wird, wenn man auf ein Thumb klickt. Auf dieser Seite wird das Thumb einfach nur groß angezeigt.

              Wie kann ich es jetzt machen, dass wenn ich das Bild vergrößert habe, ich unter dem Bild einen Vor- und Zurück-Link stehen habe, mit dem ich zwischen den Thumbs hin und her wechseln kann?

              Kommentar


              • #8
                Zitat von winki
                Wie kann ich es jetzt machen, dass wenn ich das Bild vergrößert habe, ich unter dem Bild einen Vor- und Zurück-Link stehen habe, mit dem ich zwischen den Thumbs hin und her wechseln kann?
                17.10. Ich habe eine Tabelle mit n Einträgen und möchte auf jeder Seite m davon anzeigen
                http://www.php-faq.de/q/q-mysql-seitenweise.html

                Kommentar


                • #9
                  Nein ich meine, wie ich die IDs des vorherigen bzw. des nächsten Bildes abrufen kann!

                  Kommentar


                  • #10
                    Alternativ könntest auch noch das einbauen:

                    PHP-Code:
                      $perrow 3;
                    // ...
                      
                    if($i $perrow == 0){
                        print 
                    "</tr><tr>";
                      }

                    //... 
                    Find ich persönlich besser.. ist aber subjektiv!

                    mfg
                    Andi

                    Kommentar


                    • #11
                      Zitat von phpfan
                      57 echo's, das ist grauenhaft! Man kann sich das Leben auch extrem schwer machen, wo hast du so einen Quatsch her?

                      [...]

                      Ich behaupte mal, das läßt sich besser lesen!
                      OT:
                      Ich persönlich mache auch in jeder Zeile einer Ausgabe ein echo, anstatt so ein Block. Aber nur weil ichs mir noch nicht abgewöhnt hab und ich wirklich die Variante mit mehr echos besser lesen kann und dort den Fehler schneller find

                      Mehr echos ist auch langsamer als nur eins oder? Oder wo liegt der Nachteil bei mehreren echos, sonst brauch ichs mir ja nicht unbedingt allzu schnell oder überhaupt abzugewöhnen

                      MFG

                      Kommentar


                      • #12
                        Ok, ist zwar noch keine Antwort auf meine Frage, aber naja.
                        Ich habe mir hier jetzt mal zwei Querys erstellt. Der eine ist dafür gedacht, das man zum Nächsten Bild kommt (z.b. Man ist bei Bild 50 und kommt mit einem Klick auf weiter zu Bild 51)

                        Hier kurz die zwei Scripts (Query + Link)
                        PHP-Code:
                        $id $_GET['id'];
                        $cat $_GET['cat'];
                        $result_next mysql_query ("SELECT photo_id FROM bero_photos WHERE photo_id>'$id' AND photo_cat_id='$cat' LIMIT 1"); 
                        PHP-Code:
                        <?php 
                        while ($row_next mysql_fetch_array($result_next)) {
                           
                        extract ($row_next);
                           echo 
                        "<a href=\"index.php?p=photo|display&id=$photo_id&cat=$photo_cat_id\">next</a></td>\n";
                        }
                        ?>
                        Und hier stimmt jetzt was nicht - der Zurück-Link. Der Code folgt unten.
                        Das Problem: Angenommen ich bin bei Bild 50 und will zu Bild 49, dann klicke ich einfach auf zurück. Mein Problem wenn ich auf zurück klicke komme ich nicht zum vorherigen Bild, sondern zum ersten Bild des Albums.
                        Code (Query + Link)
                        PHP-Code:
                        $result_prev mysql_query ("SELECT photo_id FROM bero_photos WHERE photo_id<'$id' AND photo_cat_id='$cat' LIMIT 1"); 
                        PHP-Code:
                        <?php
                        while ($row_prev mysql_fetch_array($result_prev)) {
                           
                        extract ($row_prev);
                           echo 
                        "<td align=\"center\"><a href=\"index.php?p=photo|display&id=$photo_id&cat=$photo_cat_id\">prev</a>";
                        }
                        ?>

                        Kommentar


                        • #13
                          ist doch klar...


                          schau mal,.. deine tabelle


                          [ID | name]
                          1|test.jpg
                          2|blub.jpg
                          ...
                          49|next.jpg
                          50|current.jpg
                          51|forward.jpg
                          ...


                          wenn du jetzt von current.jpg ausgehst, so hat dies die id 50
                          in deinem query überprüfst du nur, ob die photo_id kleiner ist als 50, sprich: du gehst die tabelle wieder von anfang an durch...

                          1 - XX

                          nachdem du aber limit 1 verwendest, wird nur ein datensatz ausgespuckt (DER ERSTE!)

                          mach lieber:

                          $nextid = $id - 1
                          WHERE photo_id = '$nextid'



                          mfg
                          Andi

                          Kommentar


                          • #14
                            Zitat von DER_Brain
                            mach lieber:

                            $nextid = $id - 1
                            WHERE photo_id = '$nextid'
                            Spätestens wenn es durch Löschen von Datensätzen zu "Lücken" bei den IDs kommt, hilft dir dieser Weg auch nicht mehr weiter.

                            Die Lösung ist, hier explizit absteigend zu sortieren. Lässt man die ORDER BY-Klausel weg, sortiert MySQL selbstständig aufsteigend, was dann zu dem von DER_Brain beschriebenen Problem führt.

                            Kommentar

                            Lädt...
                            X