Array mit Laufindex ausgeben

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

  • Array mit Laufindex ausgeben

    Hallo Leute,

    mein erster Post hier im Forum, suche jetzt schon drei Tage nach einer Lösung für mein Problem.

    Ich habe eine Tabelle, in der ich Links zu Bildern gespeichert habe. Diese möchte ich nun ausgeben, möglichst in einer angenehmen Form. Ähnlich wie bei den Galerie Scripten die es alle so gibt.
    Ich möchte gerne drei Bilder nebeneinander und dann N Zeilen untereinander ausgeben lassen. In einem Galerie Script habe ich dieses gefunden, das will aber nicht funzen. Es werden immer 12 Bilder nebeneinander angezeigt. Das scheint das zu sein, was in die Tabelle aussen drum passt.
    Setze ich das $i=0 vor die while Schleife werden komischerweise nur 16 der 48 vorhandenen Einträge angezeigt. Verstehe nicht so ganz wo mein NEWBIE Denkfehler ist.

    Danke.

    Mein Script:

    PHP-Code:
        $picture $mysqli->query("select pic_link, thumb_link FROM competition order BY sn desc");
        { 
            while(
    $zeile1 $picture->fetch_array()) 
                {
                
    $i 0;
                    
    //Reihe mit je drei Bildern
                        
    if ($i == 0
                        echo 
                         
    "<tr><td id='tableww'>"  "<a rel='mylightbox' class='navi' href='" 
                         
    htmlspecialchars($zeile1["pic_link"]) . "' target='_blank'><img src='" 
                         
    htmlspecialchars($zeile1["thumb_link"]). "' width='60px'  border='none'></a>" 
                         
    "</td></tr>";
                        
    $i ++;
                }            
        } 

  • #2
    Zuerst schmeisst du mal das id='tableww' raus. Eine ID darf pro Seite nur einmal vorkommen. Dann setze du Bedingung einfach so um:
    PHP-Code:
    if ($i == 0) {
      echo 
    '<tr>';
    }
    echo 
    '<td id="tableww">....</td>';
    if ((
    $i 1)% == 0) {
      echo 
    '<tr>';

    Und das $i = 0 gehört über die while-Schleife.
    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo Peter, erstmal danke für den Hinweis mit der ID="tableww", das habe ich entfernt.
      Mein Script sind nun so aus:
      PHP-Code:
      $picture $mysqli->query("select pic_link, thumb_link FROM competition order BY sn desc");
          { 
              
      $i 0;
              while(
      $zeile1 $picture->fetch_array()) 
                  {
                  
                      if (
      $i == 0) {
                          echo 
      '<tr>';
                          }
                              echo 
                              
      '<td>' '<a rel="mylightbox" class="navi" href="'htmlspecialchars($zeile1["pic_link"]) . '" target="_blank">
                              <img src="'
      htmlspecialchars($zeile1["thumb_link"]). '" width="60px" border="none"></a>' '</td>';
                              if ((
      $i 1)% == 0) {
                                echo 
      '<tr>';
                              } 
                      
                          
                  }            
          } 
      Liege ich damit richtig?
      Denn die Anzeige ( 12 Bilder nebeneinander ) ist immer noch die gleiche.

      Kommentar


      • #4
        Sollte eigentlich nicht sein. Hast du mal ein Online-Beispiel verfügbar? Oder schau dir mal den erzeugten HTML-Quellcode an. Ist der valide? Oder gibt es da Unstimmigkeiten?

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

        Kommentar


        • #5
          Hallo Peter,

          nein ich habe leider kein Online Beispiel, entwickle hier auf meinem iMac unter Xampp und Dreamweaver.
          Hm so weit ich das sehen kann ist von den Rahmen Bedingungen her alles gut, nur die Ausgabe des Bilder Teils sieht nicht korrekt aus.

          PHP-Code:
          <a rel="mylightbox" class="navi" href="http://www.php-resource.de/forum/vollbild/2407-05-Silvina.jpg" target="_blank">
          <
          img src="http://www.php-resource.de/forum/vorschaubild/2407-05-Silvina.jpg" width="60px" border="none"></a></td><tr><td>
          <
          a rel="mylightbox" class="navi" href="http://www.php-resource.de/forum/vollbild/2407-04-Silvina.jpg" target="_blank">
          <
          img src="http://www.php-resource.de/forum/vorschaubild/2407-04-Silvina.jpg" width="60px" border="none"></a></td><tr><td>
          <
          a rel="mylightbox" class="navi" href="http://www.php-resource.de/forum/vollbild/2407-02-Silvina.jpg" target="_blank">
          <
          img src="http://www.php-resource.de/forum/vorschaubild/2407-02-Silvina.jpg" width="60px" border="none"></a></td><tr><td>
          <
          a rel="mylightbox" class="navi" href="http://www.php-resource.de/forum/vollbild/2407-06-Silvina.jpg" target="_blank">
          <
          img src="http://www.php-resource.de/forum/vorschaubild/2407-06-Silvina.jpg" width="60px" border="none"></a></td><tr><td>
          <
          a rel="mylightbox" class="navi" href="http://www.php-resource.de/forum/vollbild/2407-12-Silvina.jpg" target="_blank">
          <
          img src="http://www.php-resource.de/forum/vorschaubild/2407-12-Silvina.jpg" width="60px" border="none"></a></td><tr><td>
          <
          a rel="mylightbox" class="navi" href="http://www.php-resource.de/forum/vollbild/2407-11-Silvina.jpg" target="_blank">
          <
          img src="http://www.php-resource.de/forum/vorschaubild/2407-11-Silvina.jpg" width="60px" border="none"></a></td><tr><td>
          <
          a rel="mylightbox" class="navi" href="http://www.php-resource.de/forum/vollbild/2407-08-Silvina.jpg" target="_blank"
          Habe hier noch einen Slash hinzugefügt hat aber nix geändert:
          PHP-Code:
          if (($i 1)% == 0) {
            echo 
          '</tr>';
              } 
          Zuletzt geändert von sascha_h; 12.11.2010, 22:18.

          Kommentar


          • #6
            Zuerst mal, was sollen die umschliessenden {} (ganz aussen)?
            und in deinem letzten beispiel fehlt das $i++;
            PHP-Code:
            $picture $mysqli->query("select pic_link, thumb_link FROM competition order BY sn desc"); 
                    
            $i 0
                    while(
            $zeile1 $picture->fetch_array())  
                        { 
                         
                            if (
            $i == 0) { 
                                echo 
            '<tr>'
                                } 
                                    echo  
                                    
            '<td>' '<a rel="mylightbox" class="navi" href="'htmlspecialchars($zeile1["pic_link"]) . '" target="_blank"> 
                                    <img src="'
            htmlspecialchars($zeile1["thumb_link"]). '" width="60px" border="none"></a>' '</td>'
                                    if ((
            $i 1)% == 0) { 
                                      echo 
            '</tr>'
                                    }  
                             
                
            $i++;                       
                        } 
            sollte gehen (ungetestet)

            edit: da sehe ich gerade, das ich das untere </tr> falsch hatte... geändert

            und bitte mal den post anpassen, ich muss auf 22" scrollen
            Zuletzt geändert von ; 12.11.2010, 21:55. Grund: sorry ein / vergessen

            Kommentar


            • #7
              Code:
              $i=1;
              $str='';
              while($zeile1 = $picture->fetch_array()) 
              {
                    $str.='<td>'.'gewuenschter Inhalt'.'</td>';
                    if($i%3==0)
                    {
              	    $str='<tr>'.$str.'</tr>'."\n";
              	    echo $str;
              	    $str='';
                    }
                    $i++;
              }
              $add='';
              if(($i-1)%3!=0) # Letzte Zeile
              {
                    for($j=($i-1)%3+1;$j<=3;$j++)
                    $add.='<td></td>';
                    $str='<tr>'.$str.$add.'</tr>'."\n";
                    echo $str;
              }

              Kommentar


              • #8
                morgen,
                leider hatten beide Ansätze keinen Erfolg. Den Code von Peacie habe ich so integriert:
                PHP-Code:
                <?php

                include "../includes/db_daten.php";
                    
                $picture $mysqli->query("select 
                                              pic_link, thumb_link 
                                              FROM competition order 
                                              BY sn desc"
                );
                        
                $i 0;
                            while(
                $zeile1 $picture->fetch_array()) 
                            {
                                if (
                $i == 0) {
                                    echo 
                '<tr>';
                                    }
                                        echo 
                                        
                '<td>' '<a rel="mylightbox" class="navi" href="'
                                        
                htmlspecialchars($zeile1["pic_link"]) 
                                        . 
                '" target="_blank">
                                        <img src="'
                htmlspecialchars($zeile1["thumb_link"])
                                        . 
                '" width="60px" border="none"></a>' '</td>';    
                                        if ((
                $i 1)% == 0) {
                                          echo 
                '</tr>';
                                        } 
                            
                $i++;
                            }            
                ?>
                Und den Code von Mephisto habe ich so umgesetzt:
                PHP-Code:
                <?php
                include "../includes/db_daten.php";
                    
                $picture $mysqli->query("select 
                                              pic_link, thumb_link 
                                              FROM competition order 
                                              BY sn desc"
                );
                $i=1;
                $str='';
                while(
                $zeile1 $picture->fetch_array()) 
                {
                      
                $str.='<td>'.'<a rel="mylightbox" class="navi" href="'
                                        
                htmlspecialchars($zeile1["pic_link"]) 
                                        . 
                '" target="_blank">
                                        <img src="'
                htmlspecialchars($zeile1["thumb_link"])
                                        . 
                '" width="60px" border="none"></a>'.'</td>';
                      if(
                $i%3==0)
                      {
                        
                $str='<tr>'.$str.'</tr>'."\n";
                        echo 
                $str;
                        
                $str='';
                      }
                      
                $i++;
                }
                $add='';
                if((
                $i-1)%3!=0# Letzte Zeile
                {
                      for(
                $j=($i-1)%3+1;$j<=3;$j++)
                      
                $add.='<td></td>';
                      
                $str='<tr>'.$str.$add.'</tr>'."\n";
                      echo 
                $str;
                }



                ?>
                beides hat leider den gleichen Effekt das soviel wie möglich Bilder pro Zeile angezeigt werden. Bis anscheinend die Tabelle voll ist und dann geht es in die nächste Zeile.

                Kommentar


                • #9
                  Warum missbrauchst du HTML-Tabellen fürs Layout?

                  Kommentar


                  • #10
                    Sorry falsch ausgedrückt.
                    Keine Tabelle die, die breite der Seite vorgibt sondern das Box Modell.

                    Kommentar


                    • #11
                      The W3C Markup Validation Service

                      Kommentar


                      • #12
                        Mephisto, das hat den Fehler aufgedeckt:

                        PHP-Code:
                        {
                                
                        $str='<table><tr>'.$str.'</tr></table>'."\n";
                                echo 
                        $str;
                                
                        $str='';
                              } 
                        Es fehlte die Angabe das es sich um eine Table handelt.

                        Problem gelöst, vielen Dank an alle!!!

                        Kommentar

                        Lädt...
                        X