Ankündigung

Einklappen
Keine Ankündigung bisher.

Bilddarstellung in einer Tabelle mittels PHP inkorrekt

Einklappen

Neue Werbung 2019

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

  • Bilddarstellung in einer Tabelle mittels PHP inkorrekt

    Hallo Leute,
    lasse mir aus einer Datenbank diverse Daten auslesen, packe die in eine Tabelle und füge Bilder pro Spalte hinzu. Die Bilder entstammen einem Array.
    Seltsamerweise wird am Ende des Arrays die Alternativausgabe 'Larsen' ausgegeben, erst dann wird mit erneuter Ausgabe des Arrays begonnen. Warum???

    PHP-Code:
      if($anz) {
       echo 
    "<p>Es wurden $anz Datensätze gefunden</p>";
       
    $i=-1;
       
    $z=0;
        while(
    $data mysqli_fetch_assoc($result)) {
            if (
    $i=="12") {
            
    $i=-1;}
            
    $i=$i+1;
            
    $z=$z+1;
            
    $bilder=array('img/schach1.jpg','img/schach2.jpg','img/schach3.jpg','img/schach4.jpg','img/schach5.jpg','img/schach6.jpg','img/schach7.jpg','img/schach8.jpg','img/schach9.jpg','img/schach10.jpg','img/schach11.jpg','img/schach12.jpg','img/schach13.jpg');
            echo
    "<table border='3'>";
            echo
    "<tr>";      
          echo 
    "<td>$z</td><td width='160' bgcolor=red> Name: " .$data["spielername"] . "</td><td width='50' bgcolor=yellow> ELO:" $data["elo"] . "</td><td width='50' bgcolor=#dd00ee>Geburtsjahr: " $data["geburtsjahr"] . "</td><td width='50' bgcolor=#66bb33>Land: "$data["land"]."</td><td width='70' bgcolor=#cc6600>Titel:" .$data["titel"]."</td><td> <img src=$bilder[$i] width=70 height=70 alt='Larsen'></td></tr></table>";
        }
      } else { 
    Zusätzlich kommt: Notice: Undefined offset: 25 in C:\xampp\htdocs\php&sql\suchen_schach.php on line 131

  • #2
    Der Code ergibt für mich überhaupt keinen Sinn. Kann da weder ein Fehlverhalten noch das richtige Verhalten davon ableiten.

    Eine Code-Zeile sollte übrigens nicht länger als 80 Zeichen sein. Niemand scrollt gern kilometerweit nach rechts und links beim Lesen.

    Außerdem beachtest du den Kontextwechsel nach HTML nicht. Werte, die in HTML-Code eingefügt werden, sollten mit htmlspecialchars() maskiert werden.

    Kommentar


    • #3
      PHP-Code:
      if ($i=="12"
      Alles in Hochkommata ist string. Deine Zählvariable ist aber vom Typ wohl eher integer.
      Darunter hast du es wieder richtig gemacht
      PHP-Code:
      $i=-1
      N-B. Dein HTML ist veraltet. Angaben zur Darstellung wie Farben, Grössen, Schriftstyle usw. gehören in eine CSS-Datei und nicht als Attribut in ein HTML-Element.
      Das macht deinen HTML Code schlanker und deine Webseite schneller, da CSS Dateien dann vom Browser zwischengespeichert werden können.
      Auch sollte du deine Schleife mal überdenken, denn eine Zählvariable kann auch hinterher (nach Verwendung) erhöht werden, das erspart dir dann deine wilde Kontruktion mit dem Initialwert -1

      Kommentar


      • #4
        Warum baust du das Array für die Bilder in jedem Schleifendurchlauf neu?


        Kommentar

        Lädt...
        X