Bilder aus eine MySql-Db in Spalten und Reihen anordnen

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

  • Bilder aus eine MySql-Db in Spalten und Reihen anordnen

    Hallo erstmal.
    Ich habe eine Datenbank in der Links für Bilder liegen. Diese lese ich aus und stelle sie auf die Seite mit dem Namen des jeweiligen Bildes daneben. Untereinander ist das kein Problem das schaut das etwa so aus:
    PHP-Code:
    while ($row mysql_fetch_array($this->res))
        {
        echo 
    "<tr>
        <td><img src='"
    .$row[3]."' alt='".$row[2]."'></td>
        <td><a href='te.php?t="
    .$row[0]."'>".$row[1]."</a></td></tr>";
        } 
    Ich will die Bilder aber nicht nur einfach untereinander, sondern zuerst 3 nebeneinander und die nächsten 3 dann darunter un so fort. Mit eine zusätzlichen while-counterSchleife funktioniert das aber nicht, weil die Schleife wenn sie außen ist sich ja nicht auf die Anzahl der Bilder bezieht, und wenn sie innen ist das ganze ja pro Bild erwartet wird.

    Any solutions?
    Merc
    Zuletzt geändert von Mercynary; 25.03.2005, 14:38.

  • #2
    welcome,

    da hast du direkt ein thema erwischt, nach dem man gut suchen kann.

    such mal nach "spaltenweise".

    Ist übrigens ein PHP-Problem und hat nichts mit SQL zu tun. *verschieb*

    Als kleine Einführung ins Forum empfehle ich dir noch http://www.php-resource.de/forum/sho...hreadid=50454. Und jetzt viel Erfolg!

    Kommentar


    • #3
      Okay ich habe nach 'spaltenweise' und nach 'gruppenwechsel' gesucht, aber nichts, sinnvoll zu verwendtes, gefunden.
      Warum? Weil alle diese threads davon ausgehen, das es sich um die Ausgabe in einer Tabelle oder einer ganzen Tabelle handelt, nicht aber um einen Teil der Tabelle.
      Deshalb nochmal und diesmal genauer meine Frage bzw. das Problem:

      Ich will ein Foto und daneben einen Link haben. Im Quelltext ganz einfach so (zuerst nur einmal untereinander).

      PHP-Code:
      <table>
        <
      tr>
          <
      td>Foto</td>
          <
      td>Link</td>
        </
      tr>
        <
      tr>
          <
      td>Foto</td>
          <
      td>Link</td>
        </
      tr>
      </
      table
      Mit einer Datenbankabfrage verbunden ist das noch immer sehr einfach und sieht das dann so aus:

      PHP-Code:
      //Anzeigen der verschiedenen eingetragenen Nationen
      function show_nationen()
      {
                      
      //Suche die Nation und die zugehörige Flagge
          
      $sql "SELECT nationid, nationname, alt, source FROM nation, bild WHERE nation.nationid=";
                      
      $sql .= "bild.nation_id AND bild.bildtitel LIKE '%gross'";

                      
      //Anfrage an die Datenbank senden            
          
      $this->res mysql_query($sql,$this->currDB);
          
          
      $anzahl mysql_num_rows($this->res);
          
          
      //Überprüfen, ob Daten in der Tabelle vorhanden sind
          
      if ($anzahl>0) {
              echo 
      "<table><tbody>"
              
                                      
      //solange Daten vorhanden sind gib das Bild in der linken Spalte und den Link in der rechten aus
                                      
      while ($row mysql_fetch_array($this->res))
                  {
                  echo 
      "<tr>
                  <td><img src='"
      .$row[3]."' alt='".$row[2]."'></td>
                  <td><a href='team.php?team="
      .$row[0]."'>".$row[1]."</a></td></tr>";
                  }
                  echo 
      "</tbody></table>";
          }
          else {
              echo 
      "Keine Einträge vorhanden";
          }

      So insofern funktioniert das alles. Was ich jetzt für ein Tabelle will ist so eine:

      PHP-Code:
      <table>
        
      //Erste Zeile ausgeben
        
      <tr>
          <
      td>Foto</td>
          <
      td>Link</td>
          
      //Zweite Spalte ausgeben 
          
      <td>Foto2</td>
          <
      td>Link2</td>
        </
      tr>
        
      //Zweite Zeile ausgeben
        
      <tr>
          <
      td>Foto3</td>
          <
      td>Link3</td>
          
      //Zweite Splate der zweiten Zeile
          
      <td>Foto4</td>
          <
      td>Link4</td>
        </
      tr>
      </
      table
      Das ist jetzt nicht mehr mit modolo, for oder einer zweiten while zu lösen sofern ich nicht irre, weil die Ausgabe ja in einem <tr>-tag erscheinen muss den ich aber auch in die while-Schleife reinkriegen muss da sonst die Sachen nur in einer Zeile ausgegeben werden.

      Any solutions??
      Merc

      Kommentar


      • #4
        Hier wäre eine ganz simple Lösung...

        PHP-Code:
        //Anzeigen der verschiedenen eingetragenen Nationen
        function show_nationen()  {
          
        //Suche die Nation und die zugehörige Flagge
          
        $sql "SELECT nationid, nationname, alt, source FROM nation, bild WHERE nation.nationid=";
          
        $sql .= "bild.nation_id AND bild.bildtitel LIKE '%gross'";
          
        //Anfrage an die Datenbank senden
          
        $this->res mysql_query($sql,$this->currDB);
          
        $anzahl mysql_num_rows($this->res);
          
        //Überprüfen, ob Daten in der Tabelle vorhanden sind
          
        if ($anzahl>0) {
            echo 
        "<table><tbody>";
            
        //solange Daten vorhanden sind gib das Bild in der linken Spalte und den Link in der rechten aus
            
        while ($row mysql_fetch_array($this->res)){
               echo 
        "<tr>
                     <td><img src='"
        .$row[3]."' alt='".$row[2]."'></td>
                     <td><a href='team.php?team="
        .$row[0]."'>".$row[1]."</a></td></tr>";
               
               
        $row mysql_fetch_array($this->res);
               echo 
        "<tr>
                     <td><img src='"
        .$row[3]."' alt='".$row[2]."'></td>
                     <td><a href='team.php?team="
        .$row[0]."'>".$row[1]."</a></td></tr>";
            }
            echo 
        "</tbody></table>";
          }else{
              echo 
        "Keine Einträge vorhanden";
          }

        Kommentar


        • #5
          Danke für deine Lösung. Funktioniert auch wirklich so ähnlich. Einzige kleine Änderung:

          PHP-Code:
          echo "<tr>
                  <td><img src='"
          .$row[3]."' alt='".$row[2]."' ></td>
                  <td><a href='team.php?team="
          .$row[0]."'>".$row[1]."</a></td>[B][COLOR=red]</tr>[/COLOR] [/B]";
                     
              
          $row mysql_fetch_array($this->res);
              echo 
          "[B][COLOR=red]<tr>[/COLOR][/B] 
                  <td><img src='"
          .$row[3]."' alt='".$row[2]."'></td>
                  <td><a href='team.php?team="
          .$row[0]."'>".$row[1]."</a></td></tr>"
          Merc

          Kommentar

          Lädt...
          X