textarea-Feld in DB schreiben

lano

Grünschnabel
Moin.

Versuche innerhalb eines Formulars ein <textarea>-Feld in eine DB zu schreiben.
Beim Schreiben bekomme ich immer den Fehler "Query was empty".
Nehme ich das <textarea>-Feld aus der Speicherung raus, läuft das Schreiben in die DB fehlerfrei.
Das Formular wird vor dem Speichern als Seite neu geladen
Code:
(action="<? $_POST['PHP_SELF']; ?>)
und die Werte mit
Code:
$_REQUEST['Feldname']
zurückgelesen.

Wie schaffe ich es, ein <textarea>-Feld in eine DB zu schreiben?


Grüssle

LaNo
 
Erstmal steht PHP_SELF nicht in $_POST (ausser Du uebergibst es selbst, was aber wenig Sinn macht) sondern in $_SERVER.

Und dann waere es nicht schlecht den kompletten Quellcode sehen zu koennen, denn meine Glaskugel ist grad zur Reinigung.
 
Hallo Dennis.
Also es ist ja erbärmlich, dass mann heutzutage keine Leihkugel mehr bekommt, wenn mann seine eigene abgibt. Bevor ich mir die Selbstreinigende leisten konnte habe ich während der Reinigungszeit immer eine (kleinere) Ersatzkugel bekommen:-).

Also es ist schon richtig, dass ich die Seite beim Submit wieder aufrufe, da Teile nachgeladen werden müssen, die von vorhergehenden Eingaben resultieren.
Das laden ist soweit kein Problem und alle anderen Felder werden auch fehlerfrei übernommen, soweit ich sie bis jetzt zum Test habe in die DB schreiben lassen.
Nur halt das <textarea>-Feld macht Probleme.
So, hier nun der (noch etwas chaotische) Quellcode.

Code:
<HTML>
 <head>
 
 
 <link href="../stylesheet.css" rel=stylesheet type="text/css">
 
 <!-- Stylesheet und JavaScript für den Kalender einbinden -->
 
   <link href="gscalendar.css" rel="stylesheet" type="text/css" />
   <script src="gscalendar.js" type="text/javascript">
 
   <!-- Einen Kalender erzeugen und nach Belieben konfigurieren -->
   <script type="text/javascript">
 	var cal3 = new gsCalendar('cal3', 'besuchsdatum');
 	cal3.disableFuture(true)
 	cal3.enableFooter(false);
 	cal3.setDateFormat('dd.mm.yyyy');
 	cal3.enableAutoHide(true);
 	cal3.enableMonthNavigation(true);
 	cal3.setButtonText('Datum ändern')
 	
   </script>
 
 
 <?
 session_start();
 
 if (!$_SESSION['login_okay'])
 {
 	header("Location: login.php");
 }
 
 include ("logout.php");
 include ("menu.php");
 include ("sql_config.php");
 
 
 $anfrage = mysql_query("SELECT * FROM aerzte WHERE besitzer=".$_SESSION['uid']."",$dbverbindung);
 
 if(mysql_affected_rows($dbverbindung)<1)
 {
 	echo "Sie haben noch keinen Praxisdatensatz angelegt!<br>";
 	exit;
 }
 
 if (isset($_REQUEST['memo']))
 {
 	$sql_query = "INSERT INTO `besuchshistorie` (uid,aid,memo) VALUES ('".$_SESSION['uid']."','".$_REQUEST['Praxisname']."'.'".$_REQUEST['memo']."')";
 		$absenden = mysql_query($sql_query,$dbverbindung);
 		echo "Daten geschrieben.<br>";
 
 		if(mysql_query($absenden))
 		{
 		echo('Query ausgeführt, Datensatz geschrieben');
 		}
 		else
 		{
 		echo('MYSQL Fehlernummer: '.mysql_errno().'<br />');
 		echo('MYSQL Fehlertext: '.mysql_error());
 		}
 
 		exit;
 	}
 
 ?>
 <form action="
 <table border="0">
 <tr>
 <td>
 Praxis
 </td>
 <td>
 <select name="Praxisname" size="1"  class="normal" tabindex="10" value="
 <?
 if (isset($_REQUEST['Praxisname']))
 {
 	if ($_REQUEST['Praxisname']>-1)
 	{
 	  ?> disabled="yes" <?
 	}
 }
 ?>
 >
 
 
 <?
 $anfrage = mysql_query("SELECT A.*, B.* FROM aerzte AS A INNER JOIN Strassen AS B ON A.ort = B.hid WHERE A.besitzer=".$_SESSION['uid']." ORDER BY A.praxisname",$dbverbindung);
 
 if(mysql_affected_rows($dbverbindung)>1)
 {
 	echo "<option value=-1>Bitte Auswählen";
 }
   while($row = mysql_fetch_array($anfrage))
 	{
 	echo"<option value=".$row[id];
 
 	if (isset ($_REQUEST['Praxisname']))
 	{
 		if ($row[id]==$_REQUEST['Praxisname'])
 		{
 			echo " selected";
 		}
 	}
 	echo">".$row[praxisname]." ,".$row[City]." ,".$row[anschrift]." ".$row[hausnummer]."</option>";
 	}
 ?>
 </select>
 </td>
 </tr>
 <?
 if (isset($_REQUEST['Praxisname']))
 {
 	if ($_REQUEST['Praxisname']<>NULL)
 	{
 		?>
 
 <tr>
 <td>
 Datum
 </td>
 <td>
 <input type="text" align="center" size="7" readonly id="besuchsdatum" name="besuchsdatum" value="
 		  <script type="text/javascript">
 			// den Kalender hier einfügen
 			cal3.insertCalendar();
 		  </script>
 </td>
 </tr>
 <tr>
 <td>
 Zeit
 </td>
 <td>
 <input type="text" align="center" size="5" id="beginzeit" name="beginzeit" class="normal">
 bis
 <input type="text" align="center" size="5" id="endzeit" name="endzeit" class="normal">
 ....Format: <b>hh:mm
 </td>
 </tr>
 <tr>
 <td>
 Gesprächspartner
 </td>
 <td>
 <input type="text" align="left" size="80" id="gespraechspartner" name="gespraechspartner" class="normal">
 </td>
 </tr>
 <tr>
 <td>
 Memo
 </td>
 <td>
 <input name="memo" cols="80" rows="5" class="normal">
 </td>
 </tr>
 
 <?
 }
 }
 ?>
 
 </table>
 
 
 <input type="submit" value="Senden" name="SendenButton" class="button_g1">
 
 </form>
 </html>

Viel Glück...


LaNo
 
Hi

sorry

ich habe mich jetzt mal kurz durch den Quellcode "gegruselt", aber da ist nirgends ein <textarea> zu finden :confused:

Weisst Du denn, was Du da machen möchtest ;)
 
Zuletzt bearbeitet:
Hallo Luzi.

Grr, sorry. Hatte das Textareafeld kurz mal in ein Input-Feld umbenannt.
Ich poste den Code jetzt mal nicht komplett neu.
Das letzte input-Feld namens "memo" ist das eigentliche textarea-Feld:

Code:
<textarea name="memo" cols="80" rows="5" class="normal"></textarea>
So, jetzt sollte es dann stimmen...:-(


Gruss

LaNo
 
Hi

mir fallen da nur 3 Dinge (wenn die anderen Felder eingetragen werden und nur memo nicht!)

1. Spalte in DB heißt nicht memo sondern nemo oder meno oder noch anders (Tippfehler)
2. Groß- und Kleinschreibung wurde nicht berücksichtigt.
3. memo ist ein Schlüsselwort (in Access wäre es das).

Einfach mal nachsehen ob alles korrekt geschrieben, notfalls die Spalte umbenennen.
 
Beim Formular würde ich noche eine "echo" vor dem $_SERVER['PHP_SELF'] setzen... Sowas passiert mir andauernd...
 
Hallo Luzi.

Leider haben Deine Ideen auch nicht gefruchtet.
Darauf hin habe ich nun mal die komplette betreffende Passage gelöscht und neu geschrieben.
Kurioser Weise funktioniert es nun. Wenn ich beide Versionen nebeneinander lege, ist kein Unterschied zu sehen...
Naja, hauptsache jetzt läuft es erstamal.

Allerdings zeigt er mir jetzt nach dem Absenden und Schreiben in die DB folgenden Fehler:

MYSQL Fehlernummer: 1064
MYSQL Fehlertext: You have an error in your SQL syntax near '1' at line 1

Wohlbemerkt, er schreibt alles Fehlerfrei in die DB!

Hat wer eine Idee, woran das liegt?


Gruss

LaNo
 
Zurück