Vergleichen geht nicht =-O

Kalma

Erfahrenes Mitglied
Hey,

ich schreibe grade ein kleines "Bewerten-Script", wo jeder User nur einmal am Tag werten kann.

Dazu hab ich eine Tabelle.
id (int, auto-blabla)
band_id (int)
ip (varchar)
date (varchar)

und die tabelle der bands, die bewertet werden sollen
id
name
points

So, jetzt habe ich die Abfrage, die folgendes abfragt, (aus der werten tabelle)
  • Die ID der Band
  • Die Ip des Bewerters
  • Das Datum

So, wenn ich folgenden Query ausführe, kommt ein Fehler:
PHP:
$actual_ip	= $_SERVER['REMOTE_ADDR'];
$actual_date  = date('d.m.Y');
$rate_query    = 'select * from rate_band where `band_id`='.$band_id.' and `ip`='.$actual_ip.' and `date`='.$actual_date.'';
$rate_result	= mysql_query($rate_query);
$r 		= mysql_fetch_array($rate_result);

die fehlermeldung
dfmusik.de?section=band_lesen&band_id=1 hat gesagt.:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/web245/html/bands.php on line 107


Warum?
Hoffe ihr könnt mir helfen :)
David
 
Versuchs mal so:
PHP:
$rate_query    = 'select * from rate_band where `band_id`='.$band_id.' and `ip`=`'.$actual_ip.'` and `date`=`'.$actual_date.'`';
 
oder so ^^

PHP:
$rate_query    = "SELECT * FROM rate_band WHERE `band_id` = $band_id AND `ip` = '$actual_ip' AND `date` = '$actual_date'";
 
Versuche es einmal so:
PHP:
$rate_query = 'SELECT
                      * 
               FROM 
                      `rate_band` 
               WHERE
                      `band_id`= "'.$band_id.'" 
               AND
                      `ip`= "'.$actual_ip.'" 
               AND
                      `date` = "'.$actual_date.'"
               ';
 
Das gibts doch wohl nicht :-|

Schon wieder will er nicht vergleichen.

Hab ne Tabelle "user".
id
nickname
passwort

Will vergleichen so:
PHP:
	function check_login() {
		//definiere variable für zeilenumbruch
		$n	= "\n";
		
		//poste die zu übergebenen dateien
		$nickname				= $_POST['nickname'];
		$passwort				= sha1($_POST['passwort']);
		$submit					= $_POST['submit'];
		$check_machine	= $_POST['check_machine'];
		
		
		//prüfen, ob das hidden feld ausgefüllt wurde.
		if (!empty($check_machine)) {
			login_form();
			exit;
		}
		
		//prüfen, ob der user alle felder ausgefüllt hat
		if ((empty($nickname)) || (empty($passwort))) {
			header ('location: ?section=login&fill_in=1');
			exit;
		}
		
		//prüfen, ob diese seite über den button submit aufgerufen wurde
		if (isset($submit)) {
			//ok, den user auslesen
			$query	= 'select * from user where `nickname`="'.$nickname.'" and `passwort`="'.$passwort.'"';
			$result	= mysql_query($query);
			
			if (mysql_num_rows($result) > 0) {
				$data = mysql_fetch_assoc($result);
				
				//sessions festlegen
				$_SESSION['user_id']			= $data->id;
				
				echo '<b>korrekt</b>';
			} else {
				echo '<b>nicht korrekt</b>';
			}
		} else {
			header ('location: ?section=login');
		}
	}


Die Stelle bei dem Query. Da hater immer Probleme. Es kommt immer wieder der Fehler:
bla.dfmusik.de hat gesagt.:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web245/html/sites/bla/fns/html_fns.php on line 146 nicht korrekt


MfG
David
 
mach mal um user `` also `user` denn das haste bei den andren Angaben auch den fehler hatte ich auch mal so :)

Weiß aber net ob es daran liegt...probier einfach mal ;-)

Der fehler sagt ja eigentlich nur aus...dass bei dem mysql_result nix enthalten ist also bekommt MYSQL bei der Abfrage keine Ausgabe...

MFG Niels
 
Hey,

ne, das wars nicht. Ich hab das Problem nicht, wenn ich folgendes schreibe
PHP:
'select * from user where `nickname`="'.$nickname.'"';

aber mit dem passwort dahinter gehts nicht mehr
 
Hallo!

Deine MySQL Anfrage passt nicht.

So kannst Du die MySQL Fehler ausgeben lassen:

PHP:
$result    = mysql_query($query) or die(mysql_error());

Es liegt denke ich an den " und ' Zeichen in

PHP:
 $query   = 'select * from user where `nickname`="'.$nickname.'" and `passwort`="'.$passwort.'"';

Wenn Du Dir die oberen Lösungen zu Deiner ersten Frage ansiehst, solltest Du den Fehler schnell finden :)

Grüße

Martin
 
Zuletzt bearbeitet:
Zurück