Datenbank auslesen und in HTML wiedergeben
Airis
- datenbank
Hallo Zusammen,
kann mir jemand sagen in welcher Form ich ein Wiedergabe in HTML gestalte, wenn meinen DB-Daten z.B. wie folgt vorliegen:
"echo $row->NAME;".
Wie schreibe ich dann in HTML?
<?php echo ????????? ?>
Kann mir jemand helfen?
Airis
Hallo Airis,
kann mir jemand sagen in welcher Form ich ein Wiedergabe in HTML gestalte, wenn meinen DB-Daten z.B. wie folgt vorliegen:
"echo $row->NAME;".
Wie schreibe ich dann in HTML?
<?php echo ????????? ?>
Ich verstehe dein Problem nicht. Kannst du es bitte genauer beschreiben?
Bis dann!
Marc Reichelt || http://www.marcreichelt.de/
Hallo Marc,
mein Problem ist, ich weis nicht wie ich mein Datenbankabfrage ( Daten werden ohne Problem per "echo" ausgegeben) später im HTML-Teil ausgeben kann.
Habe es so versucht:
<?php echo $_POST['NAME']; ?>
<?php echo $['NAME']; ?>
<?php echo $row->NAME; ?>
funzt aber alles nicht, was mache ich falsch?
Airis
Hello,
mein Problem ist, ich weis nicht wie ich mein Datenbankabfrage ( Daten werden ohne Problem per "echo" ausgegeben) später im HTML-Teil ausgeben kann.
Habe es so versucht:
<?php echo $_POST['NAME']; ?>
<?php echo $['NAME']; ?>
<?php echo $row->NAME; ?>
funzt aber alles nicht, was mache ich falsch?
Du bentuzt die falsche Funzel.
Vielleicht solltest Du uns mal Deine Datenbankabfrage zeigen.
Ich ahne Deinen Fehler.
Wenn Du die Datenbankabfrage nur dazu benutzt, die Daten z.B. bei MySQL mittels mysql_fetch_assoc() oder mysql_fetch_oject() zu holen und gleich gleich auszugeben, ist der Zeiger im resultset am Ende der Abfrageschleife natürlich am Ende angekommen, und echo $row->NAME kann dann nichts mehr ausgeben.
Außerdem sollte man sich da eine Funktion oder Methode erstellen, die die Daten mundgerecht in einen String verpackt. Will man eine Tabelle haben, so muss / kann man die Tabellen-Tags gleich mit in den String generieren lassen.
Und im HTNL-Teil sagt man dann nur noch
...
<?php echo $_table[1]; ?>
Wenn man dann eben im Array-Element $_table[1] bis $_table[$n] seine ganzen Tabellen für die Ausgabe vorbereitet hat.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo nochmal,
das ist mein Abfrage-Statement in verkürzter Form:
<?php
$abfrage1 ="SELECT count(nickname) AS anzahl, nickname, dauer
FROM wait
GROUP BY nickname, dauer
HAVING nickname='".$_SESSION["nickname"]."'";
$ergebnis1 = mysql_query($abfrage1) or die (mysql_error());
while($row = mysql_fetch_object($ergebnis1))
{
echo $row->anzahl;
echo $row->nickname;
echo $row->dauer;
if ($row->anzahl =='2' && $row->dauer =='2')
{
$abfrage2 ="SELECT NAME, TEXT
FROM position
WHERE POSITIONID = 1 ";
$ergebnis2 = mysql_query($abfrage2) or die (mysql_error());
while($row = mysql_fetch_object($ergebnis2))
{
echo $row->NAME;
echo $row->TEXT;
}
}
else
{
echo " FALSCH";
}
}
?>
Muss ich hier etwas ändern?
Airis
Hello,
das ist mein Abfrage-Statement in verkürzter Form:
<?php
$abfrage1 ="SELECT count(nickname) AS anzahl, nickname, dauer
FROM wait
GROUP BY nickname, dauer
HAVING nickname='".$_SESSION["nickname"]."'";
$ergebnis1 = mysql_query($abfrage1) or die (mysql_error());
while($row = mysql_fetch_object($ergebnis1))
{
echo $row->anzahl;
echo $row->nickname;
echo $row->dauer;
}
Den Rest lassen wir erstmal beiseite.
Wenn man Variablen oder Objekte für ein Abfrageergebnis mehrfach benutzt, muss man nch andere Dinge beachten.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
vieleicht stehe ich heute Abend auf dem Schlauch, es funzt einfach nicht.
Ich habe
if (!$ergebnis) echo "<p class="error">Fehler bei der Abfrage: ".mysql_error($con)."</p>";
eingebaut, allerdings mit einer 1 hinter !ergebnis.
Ich bekomme alle echo's wie zuvor, allerdings kein echo in HTML.
Irgendetwas mache ich noch falsch, weis allerdings nicht was?
Airis
Hello,
kann mir jemand sagen in welcher Form ich ein Wiedergabe in HTML gestalte, wenn meinen DB-Daten z.B. wie folgt vorliegen:
"echo $row->NAME;".
Wie schreibe ich dann in HTML?
<?php echo ????????? ?>
z.B.:
<td class="links rot"><?php echo nl2br(htlmentities(wordwrap($row->NAME),$spaltenbreite,NEWLINE,1))); ?></td>
von innen nach außen:
Mit wordwrap()http://de3.php.net/manual/de/function.wordwrap.php werden lange Ausdrücke ohne Trennzeichen gewaltsam nach $spaltenbreite Zeichen mittels NEWLINE "umgebrochen". Beide Werte ($spaltenbreite und auch die Konstante NEWLINE) musst Du Dir an geeigneter Stelle festlegen.
Mit htmlentities() http://de3.php.net/manual/de/function.htmlentities.php werden alle HTML-eigenen Zeichen im String durch Entitäten (Bsp: ') ersetzt Das einfache Häkchen habe ich hier als Beispiel zur besonderen Beachtung ausgewählt. LIes Dir bitte das Manual durch.
Mit nl2br() werden dann alle NEWLINE-Zeichen im Text durch vorausgehendes ein <br> bzw <br /> ergänzt. Das geht natülich nur NACH dem htmlentities(), denn sonst würden die eingefügten Breakes gleich wieder in Entitäten verwandelt werden.
Wordwrap() und nl2br() benötigt man aber nur, wenn man in einem HTML-Bereich ausgeben will, nicht aber in einer <Textarea> oder einem <input>-Element.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
besten Dank für Deine sehr umfangreiche Antwort auf meinen Tread.
Ich denke mein Problem liegt ein kleinwenig anders.
Ich habe folgende Varianten ausprobiert, die allerdings alle nicht funzen.
<?php echo $_POST['NAME']; ?>
<?php echo $['NAME']; ?>
<?php echo $row->NAME; ?>
Kannst Du mir sagen was ich anders machen muss um zu einer Ausgabe zu kommen?
Airis
Hello,
<?php echo $row->NAME; ?>
Kannst Du mir sagen was ich anders machen muss um zu einer Ausgabe zu kommen?
So leider nicht. Auch in meiner zweiten Antwort habe ich nur geraten, wo denn Dein Fehler stecken könnte. Da ich aber keinen Zugriff auf Deine Scripte habe (ich heiße ja nicht Billy), kann ich das nicht überprüfen.
Sag uns doch bitte (in kurzer Form), wie Du die Datanbankabfrage machst.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom