Nico: Kommentrfelder

hallo, es ist schon etwas länger her, aber da habe ich nach einem kommentarfeld/box, wie auch immer gefragt. ich habe die damaligen anweisungen angewendet: und es klappt (fast) alles, danke!!! nun muss ich noch die angezeigte dateien sortieren, damit es anch was aussieht. aber die kommentare kann ich schon eingeben und weerden auch angezeigt. ich habe folgendes:

...  (was davor), dann am schluss

mysql_select_db('h20poloplayer');
   $sql="SELECT * FROM ".$dbname;
   $ausgabe=mysql_query($sql);
   while($row=mysql_fetch_assoc($ausgabe)) {
         echo "<table border="0"><tr><th><p><u><b>Geschrieben von:</th></b></u><th>".$row['nickname']</th></tr>;
         echo "<br><u><b><tr><th>Kommentar:</th></b></u><th>".$row['text']."</th></tr></table><br><br></p>";
   }
}
?>

leider wird dies nicht angezeigt. weiß einer, warum bzw. hat noch jemand ne andere idee, wie man die kommentare+nicknames anordnen könnte ???

  1. Hallo!

    Ich verstehe zwar nicht ganz was du genau willst, allerdings habe ich in einer Zeile einige Fehler entdeckt:

    echo "<table border="0"><tr><th><p><u><b>Geschrieben von:</th></b></u><th>".$row['nickname']</th></tr>;

    1. Wenn du nach echo die ""-Zeichen verwendest, darfst du diese im HTML-Code nicht auch verwenden (bei border="0"), sonst kommt PHP natürlich nicht mehr nach, da davon ausgegegangen wird, dass nach dem zweiten " die String-Ausgabe beendet ist. Verwende deshalb bei HTML-Ausgaben jeweils die ''-Zeichen, da gibt es keine Probleme mit den HTML-Zeichen. Die ""-Zeichen benutzt aber zB bei SQL-Abfragen.

    2. Nach $row['nickname'] musst du mit . " wieder einen neuen String einleiten, sonst gibt es einen Error, da das ganze als Befehl $row['nickname']</th></tr> angesehen wird und dieser existiert ja nicht.

    3. Den String musst du am Schluss auch wieder mit einem " schliessen.

    Also die verbesserte Zeile sieht dann so aus:

    echo '<table border="0"><tr><th><p><u><b>Geschrieben von:</th></b></u><th>' . $row['nickname'] . '</th></tr>';

    Ich denke es zeigt dir deshalb nichts an, weil du diese Fehler drin hast.

    Achja; bezüglich des HTML-Codes: Du öffnest in der genannten Zeile <p> und schliesst es aber nicht mehr vor </tr>! Dies gibt dann einen Error im http://validator.w3.org/ .

    Lg

    1. hallo

      danke, jetzt zeigt mir der browser was an, leider aber nicht die gewünscht  unsichtbare "tabelle" am schluss. kann mir evtl. noch einer helfen..

      von hier auch nochmal danke an Thomas Schalch

      nico

      1. hallo

        danke, jetzt zeigt mir der browser was an, leider aber nicht die gewünscht  unsichtbare "tabelle" am schluss. kann mir evtl. noch einer helfen..

        Diese Zeile sieht auch verdächtig aus:

        $sql="SELECT * FROM ".$dbname;

        Ich weiss zwar nicht, was in der Variablen $dbname steht, der Name sieht nach Datenbank aus, es müsste aber eine Tabelle sein.

        Gruß, Kalle

  2. Moin,

    echo "<table border="0"><tr><th><p><u><b>Geschrieben von:</th></b></u><th>".$row['nickname']</th></tr>;
             echo "<br><u><b><tr><th>Kommentar:</th></b></u><th>".$row['text']."</th></tr></table><br><br></p>";

    das hier erzeugte HTML ist von der Struktur her grob falsch. Selbst wenn die Stringbegrenzer und die eingesetzten Variablen richtig wären, ergibt sich immer noch folgende Struktur:

    <table>
     <tr>
      <th><p><u><b>TEXT</th></b></u>
      <th>TEXT</th>
     </tr>
     <br><u><b>
     <tr>
      <th>TEXT</th>
      </b></u>
      <th>TEXT</th>
     </tr>
    </table>
    <br><br></p>

    In der ersten Zelle ist die Schachtelung der Elemente unzulässig, und weiter unten stehen auch verlorene Tags mitten in der Tabelle - teils innerhalb, teils außerhalb eines tr, aber auf jeden Fall an einer Stelle, wo sie nichts zu suchen haben. Ebenso falsch ist das schließende </p>, das ganz unvermittelt am Ende der Tabelle auftaucht und kein öffnendes Gegenstück hat. Validiere deinen HTML-Code!!

    Ganz abgesehen davon sehe ich keinen Grund, <b> oder <u> zu verwenden, für solche Sachen gibt es doch CSS. Dasselbe gilt für die br-Elemente, die mir verdächtig nach Abstandshaltern aussehen. Das ist Sache von CSS.
    Auch der Einsatz einer Tabelle ist hier schon grenzwertig, aber IMHO noch vertretbar. Eine Definitionsliste wäre aber genauso passend, vielleicht sogar passender.

    So long,
     Martin

    --
    Einer aktuellen Erhebung zufolge sind zehn von neun Ehefrauen eifersüchtig auf ihren Mann.