• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Private Nachrichten - Senden Script

ne, ich meine so:

PHP:
while($row = mysql_fetch_array($ergebnis)
    {
        $eintrag;
    }

Weil mysql_fetch_array durchsucht ja die Datenbank nach den Werten. Und während er durchsucht, findet er in der Datenbank dann die tabelle, wo er die nachricht einträgt. Oder?
 
Ja, das geht durchaus. Bei deinem Code fehlt nur noch eine schließende ).

ok, wie füge ich diese while-schleife jetzt wo am besten ein? Bräuchte da noch nen Rat. So funktioniert das script jetzt und schickt die Nachrichten weg. Aber bei mir funktioniert es nicht mehr, wenn ich dieses mysql_fetch_array einfüge. Egal wo ich es einfüge, geht das nicht mehr, dann stimmt direkt was mit der DB nicht :(

PHP:
$empfaenger = $_POST["empfaenger"]; 
$betreff = $_POST["betreff"];
$text = $_POST["text"];


$abfrage = "SELECT username FROM login WHERE username = '".mysql_real_escape_string($empfaenger)."'"; 
$ergebnis = mysql_query($abfrage) or die("SQL fehlerhaft: ".$abfrage);


if(!$ergebnis)
    {
    echo "etwas stimmte mit der DB nicht";
    exit;}


if($ergebnis['username'] != $empfaenger)
    { 
    echo "dieser Benutzername existiert nicht!";
    exit;}
    

$eintrag = "INSERT INTO `nachrichten` 
( `id` , `nach` , `von` , `betreff` , `text` , `read` , `datum` , `zeit` )
VALUES 
('', '".$empfaenger."', '".$_SESSION["username"]."', '".$betreff."', '".$text."', '0', '".$date."', '".$time."')";
    



if(!$eintrag)
    echo 'Fehler beim Senden';

else 
    $eintragen = mysql_query($eintrag) or die (mysql_error());


if($eintragen == true)
    {
    echo 'Deine Nachricht wurde erfolgreich an '.$empfaenger.' verschickt';
    }
else
    {
    echo 'Das Senden hat nicht geklappt';
    }
?>

Dieser Script hat keine Fehler mehr. Sobald ich aber fetch_array() einfüge, kommt wieder der Fehler.

Aber ich muss euch vielen vielen Dank sagen für eure Geduld und die Tipps.
 
ok, wie füge ich diese while-schleife jetzt wo am besten ein?

Du musst sie dort einfügen, wo Du die Daten brauchst. In deinem Code ist wiedermal nicht zu sehen wo Du sie einfügst.

Btw. ist

PHP:
if($ergebnis['username'] != $empfaenger)

nicht möglich. $ergebnis enthält nur eine Referenz auf die MySQL-Ergebnisse, ist aber kein Array mit diesen Daten.
 
Das Problem bei dir scheint zu sein, dass du keine Ahnung hast, was du machst bzw. machen musst.

$ergebnis ist hier im besten Fall ein result-set (mysql result-Resource) oder im schlimmsten Fall ein Boolean (bestimmt false).
Zum Debuggen, musst du mit var_dump($ergebnis) überprüfen, was es ist. Ist es ein resource, ist das Query gelungen, ist es ein boolean, hast du schonmal ein Problem mit der Datenbank (Struktur, falsch verbunden or what ever).

Und immer weiter so debuggen. Überlegen, was du eigentlich erwartest und dann überprüfen, was du in Wirklichkeit bekommst.

Wenn du Fehler in Querys hast, lass sie dir mit mysql_error() immer anzeigen, statt irgendwelche nichts aussagende Fehlermeldungen anzeigen zu lassen.

Und wenn du schon keine Ahnung hast, was nicht funktioniert, solltest du ausführliche Antworten geben und sagen, was genau angezeigt wird.
 
Zurück
Oben