Problem bei einem 5 min of Fame ...

sonnySTAR

Erfahrenes Mitglied
Guten Tag alle miteinander ;)! So ich arbeite momentan an einem "5 Minutes of Fame" Script ... Habe aber leider einige Probleme :-/ ... ich hoffe hier von euch die Antworten zu bekommen ;) so nun erstmal zu dem script ... in meiner mysql datenbank hab ich folgende tabellen:
- v6_fame (Hier wird der aktuelle "Fame" User eingetragen und ausgelesen)
- v6_user (Hier sind alle User eingetragen)
Hier das Script
Code:
<?
$sql_cms = 'SELECT starttime, pic FROM v6_fame WHERE id=1';
$sql_query = mysql_query($sql_cms);
$sql_fetch = mysql_fetch_assoc($sql_query);


if($sql_fetch['starttime'] + 15 > time())
{
 // aktuelles Bild wird ausgegeben
echo '<img src="'.$sql_fetch['pic'].'" width="90" height="120" border="1">';
}
else
{
 // neues Bild
srand ((double)microtime()*1000000);
								  
$max_query = "SELECT count(*) FROM v6_user";
$max_result = mysql_query($max_query);
$max_arrResult = mysql_fetch_array($max_result);
$max = $max_arrResult[0];

$neuesZufallsBild = 'SELECT userpic,
					   username,
				           uservname,
					   usernname,
				           userid FROM v6_user WHERE userid = '. rand(0, $max).' LIMIT 0,1'; // Hier neues Zufallsbild generieren

 $ergebnis = mysql_query($neuesZufallsBild);
$sql_cmd = 'UPDATE v6_fame Set starttime = \''.time().'\', pic = \''.$row["userpic"].'\', nick = \''.$row["username"].'\', vname = \''.$row["uservname"].'\', nname = \''.$row["usernname"].'\', userid = \''.$row["userid"].'\' WHERE id = 1';
mysql_query($sql_cmd);
$row = mysql_fetch_object($ergebnis);
 echo '<img src="'.$row['userpic'].'" width="90" height="120" border="1">';
} 
?>

So sieht mein Script aus ... das Problem ist, das er nachd en 15 sekunden nichts macht! ER Updated die datenbank nicht, somit wird immer nur dder 1 user angezeigt :-/ ... und das userbild wird seid neuestem auch nicht mehr angezeigt :-(

Vielleicht könnt ihr mir helfen ;)

Danke im Vorraus
MFG
Tim
 
Kann es sein, dass bei deinem Statement

$sql_cmd = 'UPDATE v6_fame Set starttime ....

die Variablen $row["userpic"] und $row["username"] nicht gesetzt sind?

Marcus
 
PHP:
$neuesZufallsBild = 'SELECT userpic,
					   username,
				           uservname,
					   usernname,
				           userid FROM v6_user WHERE userid = '. rand(0, $max).' LIMIT 0,1';

$ergebnis = mysql_query($neuesZufallsBild);

$row = mysql_fetch_object($ergebnis);
Doch eigentlich schon xD ... weissjetzt nicht genau wie du das meinst, bzw. wie ich das machen soll ... aber wäre nett wenn mir jemand helfen könnte ;)
 
Du verwendest mysql_fetch_object(). Meines wissens greíft man auf die enstehenden Objekte mit $row->OBJEKT zu und nicht mit $row['OBJEKT']. Willst du auf diese Weiße drauf zugreifen, müsstest du mysql_fetch_array() oder mysql_fetch_assoc() nehmen.
Außerdem fehlt vor der Zeile mit dem UPDATE-Query ein mysql_fetch_assoc(). Woher kommt sonst die Variable $row, die du da verwendest? (siehe shockshell)
 
Zuletzt bearbeitet:
Vielen Dank schonmal soweit funktioniert auch alles ;)! aber ich habe noch ein Problem ... wie amche ich es, das wenn ein user in seinem profil kein bild angegeben hat (spalte userpic ist dann leer) das er ein bild nimmt das auf meinem space liegt (nopic.gif) ?!

wäre nett wenn du / ihr mir helfen könntet ;)

MFG Tim
 
Probier es mal mit empty(). In etwa so.
PHP:
if(empty($row->userpic))
{
   $row->userpic = "nopic.gif";
}
 
hmm wenn ich jetzt noch wüsste wo das hinkommt, biste mein held ;P
ich habs nun mal so versucht:
PHP:
<?
							 $sql_cms = 'SELECT starttime, pic FROM v6_fame WHERE id=1';
$sql_query = mysql_query($sql_cms);
$sql_fetch = mysql_fetch_assoc($sql_query);


if($sql_fetch['starttime'] + 300 > time())
{
 // aktuelles Bild wird ausgegeben
echo '<img src="'.$sql_fetch['pic'].'" width="90" height="120" border="1">';
}
else
{
 // neues Bild
srand ((double)microtime()*1000000);
								  
$max_query = "SELECT count(*) FROM v6_user";
$max_result = mysql_query($max_query);
$max_arrResult = mysql_fetch_array($max_result);
$max = $max_arrResult[0];

$neuesZufallsBild = 'SELECT userpic,
								  username,
								  uservname,
								  usernname,
								  userid FROM v6_user WHERE userid = '. rand(1, $max).' LIMIT 0,1'; // Hier neues Zufallsbild generieren

 $ergebnis = mysql_query($neuesZufallsBild);
$row = mysql_fetch_assoc($ergebnis);
$sql_cmd = 'UPDATE v6_fame Set starttime = \''.time().'\', pic = \''.$row["userpic"].'\', nick = \''.$row["username"].'\', vname = \''.$row["uservname"].'\', nname = \''.$row["usernname"].'\', userid = \''.$row["userid"].'\' WHERE id = 1';
mysql_query($sql_cmd);
echo '<img src="'.$row["userpic"].'" width="90" height="120" border="1">';
} 
if(empty($row["userpic"]))
{
   $row["userpic"] = "http://www.e-doggz.de/kashiro/Bilder/nopic.jpg";
} 
?>

aber so funktioniert es nicht, d.h: das es an der falschen stelle ist, aber ich wüsste nicht wo ich es sonst hintun soll :-/

MFG Tim
 
Wenn das mit in das Update reinsoll, musst du es vor den Update query machen. Wenn nicht danach.
 
Zurück