Ankündigung

Einklappen
Keine Ankündigung bisher.

Zusätzliche leere Spalte

Einklappen

Neue Werbung 2019

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

  • Zusätzliche leere Spalte


    Hallo,
    ich arbeite mich gerade in PHP und MySQL ein und habe einen komischen Fehler. Ich will einfach nur eine Tabelle aufrufen mit meinen Datensätzen. In der ersten Spalte ist ein Radio-Button, um den ausgewählten Datensatz später bearbeiten zu können. Ich weis nicht wieso aber bei mir taucht eine leere Spalte auf zwischen dem Radio-Button und der Spalte mit dem Namen.

    Hier ist mein Code:
    PHP-Code:
    <p>Treffen Sie Ihre Auswahl:</p> 
    <form action="db_einzel_b.php" method="post"> 
    <?php 
        $con 
    mysqli_connect("localhost""mysql""""firma"); 
        
    $res mysqli_query($con"SELECT * FROM personen"); 

        
    //Tabelle beginnt 
        
    echo "<table border='1'>"

        
    //ZEILE Überschrift 
        
    echo "<tr><td>Auswahl</td><td>Name</td><td>Vorname</td><td>P-Nr.</td><td>Gehalt</td><td>Geburtsdatum</td></tr>"

        
    //ZEILE Datensatz 
        
    while($dsatz mysqli_fetch_assoc($res)) 
        { 
            echo 
    "<tr>"
            echo 
    "<td><input type='radio' name='auswahl' value='" $dsatz["personalnummer"] . "'><td>"
            echo 
    "<td>" $dsatz["name"] . "</td>"
            echo 
    "<td>" $dsatz["vorname"] . "</td>"
            echo 
    "<td>" $dsatz["personalnummer"] . "</td>"
            echo 
    "<td>" $dsatz["gehalt"] . "</td>"
            echo 
    "<td>" $dsatz["geburtsdatum"] . "</td>"
            echo 
    "</tr>"
        } 

        
    //Tabelle endet 
        
    echo "</table>"

        
    mysqli_close($con); 
    ?> 
    <p><input type="submit" value="Datensatz anzeigen"></p> 
    </form> 
    </body>
    Im Browser kriege ich noch eine leere <td></td> und ich verstehe nicht wieso.

    Kann mir das vielleicht jemand erklären?

    MFG Gaschi

  • #2
    Hallo Gaschi,

    hier fehlt das schließende TD-Tag am Ende:

    PHP-Code:
    echo "<td><input type='radio' name='auswahl' value='" $dsatz["personalnummer"] . "'><td>"
    Also </td> statt <td>

    Gruß
    sorry, shift-taste kaputt

    Kommentar


    • #3
      Oh ja, das habe ich ganz übersehen. Wieso macht PHP dann ein extra TD-Tag? Das verstehe ich nicht.

      MFG Gaschi

      Kommentar


      • #4
        Weil du das PHP das so gesagt hast, steht doch oben in deinem Code.
        [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

        Kommentar


        • #5
          Du solltest kein SELECT * verwenden, sondern im SELECT immer die Spalten angeben, die du im Ergebnis erwartest.

          Außerdem solltest du den Kontextwechsel nach HTML beachten und mit htmlspecialchars() behandeln, ansonsten produzierst du kaputten HTML-Code oder eventuell sogar eine Sicherheitslücke.

          Und Datenbankabfragen haben inmitten der Ausgabe, als dem HTML-Code, nichts verloren. Beachte das EVA-Prinzip.

          Kommentar

          Lädt...
          X