Textfeld mit mehreren rows zu SQL

vsitor

Erfahrenes Mitglied
Hallo,

ich habe ein formular gebaut.

PHP:
<?
  include("db.php");
  $biografie = $HTTP_POST_VARS["biografie"];
?>

<form action="biodanke.php" method="post" name="eintrag">
<input TYPE="text" name="biografie"></input>
<input type="Submit" name="submit" value="speichern"></input>
</form>

Nachdem man in dem input-feld etwas eingegeben hat, kommt die datei "BIODANKE.PHP"

PHP:
  <?
  include("db.php");
  $eintrag = "UPDATE tabelle Set biografie = ('$biografie')";
  $eintragen = mysql_query($eintrag);
  ?>

DANKE

Meine Frage:

Ich möchte ein mehrzeiliges Textfeld haben (also kein Input sondern AREA)
welches den text aus der Datenbank liesst und im Feld bereits darstellt.
Wie mache ich das ?

Danke
 
Zuletzt bearbeitet:
  • Die Daten aus der DB holen
  • Die Daten in eine verabeitbare Form (array) packen
  • zwischen <textarea> und </textarea> die Daten ausgeben also so:
PHP:
<textarea>$row['Inhalt']</textarea>
  • Fertig

Allerdings ist das doch eher eine HTML Frage,wie du den Text bekommst ,weisst du ja anscheinend...
 
Original geschrieben von KristophS
Die Daten aus der DB holen

PHP:
 $abfrage = "SELECT biografie FROM tabelle";
  $inhalt = mysql_query($abfrage);
so in etwa sollte es klappen.


Die Daten in eine verabeitbare Form (array) packen
PHP:
 $feld = array( 
      "biografie" => "inhalt" );
Hmm, damit habe ich mich noch nicht befasst, in etwa so vielleicht?

zwischen <textarea> und </textarea> die Daten ausgeben also so:
PHP:
<textarea>$row['Inhalt']</textarea>
Fertig
Das klappt nicht, er zeigt im Textfeld leider nur
$row['feld']
an :-(

Vielleicht noch andere Ideen?
 
Zuletzt bearbeitet:
Hehe so war das nicht gedacht ,hätte ich dochmal so geschrieben wie ich zuerst wollte also nochmal:

Daten aus der DB:
PHP:
$abfrage = "SELECT biografie FROM tabelle";
  $inhalt = mysql_query($abfrage);

Verarbeitbare Form:
PHP:
$row = array();
$row = mysql_fetch_array($inhalt);

Ausgabe:
PHP:
<textarea>$row['biografie']</textarea>

Fertig!
 
:-)

Hallo Kristoph,

danke für den Hinweis mit den array.
Leider funktioniert es immernoch nicht.

Er zeigt mir im Textfeld:

$row['biografie']

an.
Ich habe schon probiert ein

<?
$row['biografie']
?>

zu machen, geht trotzdem nicht :-(
woran kann das liegen ?
 
Ach ich bin ein Witzbold.
Du musst natürlich <textarea><?php echo nl2br($row['biografie']) ?></textarea> in deinen HTML Code machen ,dachte aber eigentlich das ,dass klar wäre :-(
Das nl2br ist natürlich nur optional ,siehe [phpf]nl2br[/phpf] für mehr :-)
 
:-)

Hallo Kristoph,
danke für die schnelle Hilfe, es hat geklappt :-)

Er setzt sogar die nl2br um (ist beim editieren im Textfeld dann als <br />
zu sehen) aber beim ausgeben übernimmt er das nicht.

ich habe folgendes in der anzeige-datei:

PHP:
<?
  include("db.php");
  $abfrage = "SELECT biografie FROM tabelle";
  $ergebnis = mysql_query($abfrage);
  while
  ($row = mysql_fetch_object($ergebnis))
    {
    echo $row->nl2br(biografie);
    }
 ?>

klappte aber leider nicht
Das mit dem nl2br habe ich mir durchgelesen, aber noch nicht ganz kapiert ...
 
Zuletzt bearbeitet:
Ich hab die Lösung (endlich)

hier ist sie:

<?

while
($row = mysql_fetch_object($ergebnis))
{
echo nl2br($row->biografie);
}
?>

Danke nochmal Kristoph
 
Ok, jetzt wollte ich einen Schritt weiterspinnen..

Wenn ich das Formular aufrufe, dann zeigt er ja den Text an in dem Feld.
Die Zeilenümbrüche sind in dem Feld als <br /> abgebildet.
Es gibt doch eine Funktion br2nl oder so ?
Wie könnte man das einbauen, damit im Eingabefeld die <br /> wieder verschwinden und stattdessen Zeilenumbrüche angezeigt werden ?

Hier nochmal der gesamte Code der Eingabe-Datei:


PHP:
<?
  include("db.php");
  $biografie = $HTTP_POST_VARS["biografie"];

   $abfrage = "SELECT biografie FROM tabelle";
  $inhalt = mysql_query($abfrage);

$row = array();
$row = mysql_fetch_array($inhalt);

?>

<form action="biodanke.php" method="post" name="eintrag">
<textarea  name="biografie" COLS="70" ROWS="30">
<?php echo nl2br($row['biografie']) ?></textarea>
<input type="Submit" name="submit" value="speichern">
</input>
</form>
 
Original geschrieben von vsitor
Ok, jetzt wollte ich einen Schritt weiterspinnen..

Wenn ich das Formular aufrufe, dann zeigt er ja den Text an in dem Feld.
Die Zeilenümbrüche sind in dem Feld als <br /> abgebildet.
Es gibt doch eine Funktion br2nl oder so ?
Wie könnte man das einbauen, damit im Eingabefeld die <br /> wieder verschwinden und stattdessen Zeilenumbrüche angezeigt werden ?

Hier nochmal der gesamte Code der Eingabe-Datei:


PHP:
<?
  include("db.php");
  $biografie = $HTTP_POST_VARS["biografie"];

   $abfrage = "SELECT biografie FROM tabelle";
  $inhalt = mysql_query($abfrage);

$row = array();
$row = mysql_fetch_array($inhalt);

?>

<form action="biodanke.php" method="post" name="eintrag">
<textarea  name="biografie" COLS="70" ROWS="30">
<?php echo nl2br($row['biografie']) ?></textarea>
<input type="Submit" name="submit" value="speichern">
</input>
</form>

Bei sowas ist
$_1 = str_replace("<br />", "\n", $_1);
dein Freund.

Viele Grüße,

Stefan
 
Zurück