#1 19. Februar 2007 MySQL Abfrage Problem Hallo an alle Progger hier im Board :tongue: Ich habe folgendes Problem. Nach einem erfolgreichem Login soll dem User ($User) die Nachrichten die an ihn gesendet worden angezeigt werden also ein PMS ^^ Aber bei Abfrage kommt folgender Fehler: Code: Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\pms\login.php on line 17 Hier nun der Code ich habe keine Ahnung warum der Fehler angezeigt wird. Ich hoffe jemand kann mir helfen... PHP: <? php include "inc/config.inc.php" ; include "inc/paths.inc.php" ; echo '<title>' . $Servicename . '</title>' ; echo '<body bgcolor="' . $Hintergrundfarbe . '" text="' . $Textfarbe . '">' ; $DatabasePointer = mysql_connect ( $SQL_Host , $SQL_USER , $SQL_PASS ); mysql_select_db ( $SQL_DB , $DatabasePointer ); if( mysql_num_rows ( mysql_query ( "SELECT * FROM `pms_user` WHERE Benutzername='" . $_POST [ 'Benutzer' ]. "' AND Passwort='" . md5 ( $_POST [ 'Passwort' ]). "'" , $DatabasePointer ))== 1 ) { $User = $_POST [ 'Benutzer' ]; echo '<center>' . "Willkommen $User im PMS Server." . '</center>' ; echo '<br>' ; $NewMail = mysql_result ( mysql_query ( "SELECT `titel` FROM `pms` WHERE `empfaenger`= $User " ), 0 ); echo $NewMail ; } else { echo "Der User und/oder das Passwort wurden nicht gefunden!" ; } ?> So long B30w0lf + Multi-Zitat Zitieren
#2 19. Februar 2007 AW: MySQL Abfrage Problem mein tipp: lass dir mal mit mysql_error den fehler ausgeben Code: SELECT `titel` FROM `pms` WHERE `empfaenger`= '$User' da fehlten anführungszeichen um $User wobei ich das system eh für doof halte, aber das wirst du dann merken falls die abfrage funktioniert + Multi-Zitat Zitieren
#3 19. Februar 2007 AW: MySQL Abfrage Problem Noch was anderes nicht direkt auf deine Frage bezogen: Code: echo [COLOR="Red"]'[/COLOR]<center>[COLOR="Red"]'[/COLOR].[COLOR="Red"]"[/COLOR]Willkommen $User im PMS Server.[COLOR="Red"]"[/COLOR].[COLOR="Red"]'[/COLOR]</center>[COLOR="Red"]'[/COLOR]; Wieso mischst du die Anführungszeichen? Geht das überhaupt? Und: Kontrollier deine $_POST[] Variablen. Willst ja nicht das sich da ne SQL-Injection einschleicht. Schreib dir ein paar Kontrollfunktionen. + Multi-Zitat Zitieren
#4 20. Februar 2007 AW: MySQL Abfrage Problem Ja man kann die Anfuehrungszeichen durchaus mischen. Und woher willst du wissen, ob er seine $_POST oder $_GET Daten nicht filtert? Nur weil es in dem Snippet nicht drin ist? + Multi-Zitat Zitieren
#5 21. Februar 2007 AW: MySQL Abfrage Problem PHP: <? php include "inc/config.inc.php" ;include "inc/paths.inc.php" ; echo '<title>' . $Servicename . '</title>' ;echo '<body bgcolor="' . $Hintergrundfarbe . '" text="' . $Textfarbe . '">' ; $sqlc = array( "host" => $SQL_Host , "user" => $SQL_user , "pass" => $SQL_PASS , "name" => $SQL_DB ); function db () { global $sqlc ; $con = mysql_connect ( $sqlc [ 'host' ], $sqlc [ 'user' ], $sqlc [ 'pass' ]); $sel = mysql_select_db ( $sqlc [ 'name' ]); if(! $con ) die( "Falsche Zugangdaten" . mysql_error ()); if(! $sel ) die( "Falscher Datenbankname" . mysql_error ()); } $password = md5 ( $_POST [ 'Passwort' ]); $username = mysql_escape_string ( $_POST [ 'Benutzer' ]); // $username = strip_tags($_POST['Benutzer']); $sql = "SELECT * FROM `pms_user` WHERE Benutzername= ' $username ' AND Passwort=' $password '" ; $query = mysql_query ( $sql ); db (); if(! $query ) echo "Der User und/oder das Passwort wurden nicht gefunden!" ;else { $num_rows = mysql_num_rows ( $query ); // für was auch immer... echo '<center> Willkommen ' . $username . ' im PMS Server</center> <br>' ; $query = mysql_query ( "SELECT `titel` FROM `pms` WHERE `empfaenger`= $username " ); // ORDER BY id DESC LIMIT 0, 1 if(! $query ) die( mysql_error ()); else { $num_rows = @ mysql_num_rows ( $query ); if( $num_rows == "" ) die( "Fehler!" ); $result = mysql_fetch_row ( $query ); for( $i = 0 ; $i < $num_rows ; $i ++) { echo $result [ $i ]; } } } ?> probier mal aus, ahbs ned getestet oder sonst was + Multi-Zitat Zitieren
#6 21. Februar 2007 AW: MySQL Abfrage Problem Code: SELECT `titel` FROM `pms` WHERE `empfaenger`=$User Du musst $User in Hochkommate bzw. Anführungszeichen setzen. + Multi-Zitat Zitieren
#7 22. Februar 2007 AW: MySQL Abfrage Problem so muss das aussehen: PHP: $NewMail = mysql_result ( mysql_query ( "SELECT `titel` FROM `pms` WHERE `empfaenger`=' " . $User . " '),0" ); MfG KlausTrofobie + Multi-Zitat Zitieren
#8 22. Februar 2007 AW: MySQL Abfrage Problem 1. Syntaxfehler (siehe Syntaxhighlighting) 2. Muss das so nicht aussehen. Das $User in Hochkommata zu setzen, wie dutziman bereits sagte, reicht voellig. + Multi-Zitat Zitieren