Jan: Daten werden nicht in MYSQL eingefügt

Hi,

hab ein kleines Problem mit dem anlegen einer Tabelle:

Der SQL Befehl ist dieser hier:

CREATE TABLE message (
messageid INT( 10 ) NOT NULL AUTO_INCREMENT ,
senderid INT( 4 ) NOT NULL ,
empfangerid INT( 4 ) NOT NULL ,
message TEXT NOT NULL ,
PRIMARY KEY ( messageid )
);

Der dazu gehörige Befehl:

$empfaenger = mysql_fetch_array(mysql_query("SELECT id FROM user WHERE user='$_POST[empfaenger]'"));

mysql_query("INSERT INTO message SET senderid='$_POST[sender]', empfaengerid='$empfaenger', message='$_POST[message]'")

Das dazugehörige Form:

<form action="message.php" method="POST" enctype="multipart/form-data">
<table border="0" cellspacing="3" cellpadding="0">
 <tr>
  <td width="100"><b>Empf&auml;nger:</b></td>
  <td width="150"><input type="hidden" name="sender" value="<? $data[0] ?>"> <input type="text" name="empfaenger" value="" size="25"</td>
  <td width="50"><input type="button" onClick="search();" name="suche" value="Suchen"</td>
 <tr>
  <td colspan="3">&nbsp;</td>
 <tr>
  <td valign="top"><b>Dein Text</b></td>
  <td colspan="2"><textarea cols="25" rows="5" maxlenght="1000" name="message"></textarea></td>
 <tr>
  <td colspan="3" align="center"><input type="submit" value="Senden"></td>
 </tr>
</table>

Hier nebenbei noch ein anderes Problem:
Dies soll eine Formel zur Berrechnung des Alters sein, sie funktioniert auch eigentlich ganz gut, nur wenn jemand der noch Geburtstag hat schon ein Jahr älter gemacht d.H die Zahl wird schon jetzt dekrementiert, ist der Geburtstag schon gewesen stimmt es logischerweise..

$alter = date("Y")-$sdata[6];
if(($monat[5] > date("m")) || ($monat[5] == date("m") && $tag[4] < date("d"))) {
$alter--;
}

ich hoffe es hat jemand zumindest erstmal zu eins eine passende Hilfestelllung zu geben...

  1. Hi Jan,

    hab ein kleines Problem mit dem anlegen einer Tabelle:

    mysql_query("INSERT INTO message SET senderid='$_POST[sender]', empfaengerid='$empfaenger', message='$_POST[message]'")

    erstens musst du $_POST['message'] schreiben (immer) und zweitens {$_POST['message']} (nur in einem string)

    Hier nebenbei noch ein anderes Problem:
    Dies soll eine Formel zur Berrechnung des Alters sein, sie funktioniert auch eigentlich ganz gut, nur wenn jemand der noch Geburtstag hat schon ein Jahr älter gemacht d.H die Zahl wird schon jetzt dekrementiert, ist der Geburtstag schon gewesen stimmt es logischerweise..

    guck halt ob der geburtstag dieses jahr schon rum ist (date()) und wenn nein, ziehst du halt noch ein jahr vom alter ab.

    Gruß, Marian

  2. Hi,

    hab ein kleines Problem mit dem anlegen einer Tabelle:

    Der SQL Befehl ist dieser hier:

    und die fehlermeldung?

    Hier nebenbei noch ein anderes Problem:
    Dies soll eine Formel zur Berrechnung des Alters sein, sie funktioniert auch eigentlich ganz gut, nur wenn jemand der noch Geburtstag hat schon ein Jahr älter gemacht d.H die Zahl wird schon jetzt dekrementiert, ist der Geburtstag schon gewesen stimmt es logischerweise..

    also ich bin an meinem geburtstag schon ein jahr älter. ansonsten könnte <= helfen anstatt nur < bzw. >= anstatt nur >

    MfG

    1. Hi,
      und die fehlermeldung?

      also bevor Marin dass mit den Anführungszeichen erklärt hat, bekam ich keine Fehlermeldung es kam einfach nur der header Text...

      nun wo ich Marians Anweisung durchgeführt habe bekomme ich diese Fehlermeldung

      Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /srv/www/htdocs/web429/html/sites/message.php on line 8

      Gruß Jan

      1. Hi,

        also bevor Marin dass mit den Anführungszeichen erklärt hat, bekam ich keine Fehlermeldung es kam einfach nur der header Text...

        dann mach mal stell error_reporting auf E_ALL und mach nach jedem mysql_query ein "echo mysql_error()";

        nun wo ich Marians Anweisung durchgeführt habe bekomme ich diese Fehlermeldung

        das liegt daran das der hinweis an dieser stelle falsch war. in einem
        string wie du es hast "SELECT ... $_POST[name]" ansonsten
        $_POST['name']. es empfiehlt sich die post daten nicht direkt zu
        übernehmen sondern zuerst in eine variable zu schreiben und zu
        überprüfen.

        MfG