Probleme mit Sessions

Hier ein Auszug aus meinem Script:

PHP:
	$result = mysql_query("SELECT `geld` FROM `users` WHERE `username`=".$_SESSION['user_nickname']."");
		$row = mysql_fetch_array($result);
		$vortstamp = mysql_query("SELECT `tstamp` FROM `users` WHERE `username`=".$_SESSION['user_nickname']."");
		$vstamp = mysql_fetch_array($vortstamp);
		$stufeg1 = mysql_query("SELECT `stufeg1` FROM `users` WHERE `username`=".$_SESSION['user_nickname']."");
		$stufeg1x = mysql_fetch_array($stufeg1);

Jetzt wird da die Fehlermeldung angezeigt:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/frankenstein007/ress.php on line 13

Das gleiche mit Linie 15 und 17, bzw. beim Ausschnitt die Linien 2, 4 und 6. Ich glaub ich hab da irgendwie etwas falsch formuliert... Sry, wenn es ein Anfängerfehler ist, bin bisschen eingerostet, hab ein halbes jahr gar nix mehr in PHP gemacht... Falls wer das ganze Script braucht, einfach melden. Ich glaub aber, dass der Fehler schon in diesen Linien liegt. Die Sessions wurden glaub ich schon richtig definiert.. Kann mir da wer helfen?

mfg frankenstein
 
Zeichenketten müssen auch in MySQL als solche gekennzeichnet werden. Du kannst zudem die drei Abfragen zu einer zusammenfassen, beispielsweise:
PHP:
$query = "SELECT `geld`, `tstamp`, `stufeg1` FROM `users` WHERE `username`='".mysql_real_escape_string($_SESSION['user_nickname'])."'";
if( !($result = mysql_query($query)) || !($row = mysql_fetch_assoc($result)) ) {
	echo mysql_error();
} else {
	$geld = $row['geld'];
	$tstamp = $row['tstamp'];
	$stufeg1 = $row['stufeg1'];
}
 
Bau bei der MySQL abfrage folgendes rein:

$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

Dann sagt dir der MySQL-Error-Code schon was da falsch ist ;)
 
Bei Gumbos Lösung kommt tatsächlich keine Fehlermeldung mehr. Allerdings funktioniert es noch immer nicht, wie ich will. Vielleicht sollte ich kurz erläutern um was es geht: Ich habe ein kleines Browsergame, aus der SQL-Datenbank werden jeweils die Daten des Benutzers gelesen. Bisher hab ich einfach einen Namen genommen der in der DB steht, um das jeweilige Script zu testen (also jeweils, where username = "testname"). Nun probier ich in die Seite ein Login System zu integrieren, und statt des Testnamens sollen jeweils die Daten des eingeloggten Benutzers erscheinen. Das Login System hab ich übrigens nach einem Tut von dieser Seite gemacht. Aber das ganze t noch nicht. Es werden nicht die Daten des eingeloggten Benutzers abgerufen, sondern was anderes. Ne Fehlermeldung kommt wie gesagt nicht mehr, aber funktionieren tuts noch nicht.. Ich glaube aber den Fehler gefunden zu haben, darum mal die Frage folgender Teil:
PHP:
<?php
    		$time = time();
    		$timestamp = "update users set tstamp = $time";
    		mysql_query($timestamp);
   		?>
Ich möcht aber, dass das ganze nur beim angemeldeten Benutzer geschieht. Kann ich da einfach ein Where einsetzen? Wenn ja, wo genau?

mfg frankenstein
 
Hi,

Ich möcht aber, dass das ganze nur beim angemeldeten Benutzer geschieht. Kann ich da einfach ein Where einsetzen? Wenn ja, wo genau?

Einfach dahinter... ;)

PHP:
$timestamp = "update users set tstamp = $time where user_id = $_SESSION['user_id']";

Musst halt noch die Namen anpassen.

LG
 
Zurück