anpera.net https://anpera.dyndns.org/phpbb3/ |
|
foreach problem https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4485 |
Seite 1 von 1 |
Autor: | Fargo [ So 20 Apr, 2008 20:34 ] |
Betreff des Beitrags: | foreach problem |
ich habe ein problem der spuckt mir immer diesen fehler: Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\php\funktion.php on line 33 bei diesem code: PHP: function saveuser(){ foreach($session as $key => $value){ $sql1= "UPDATE users SET $key = $value WHERE id ='". $_SESSION['id'] ."'"; $query1 = @mysql_query($sql1); $session = @mysql_fetch_array($query1); } } function checkuser(){ global $session; $selectDB; $sql= "SELECT * FROM users WHERE id ='". $_SESSION['id'] ."'"; $query = mysql_query($sql); $session = mysql_fetch_assoc($query); } aber warum???? wenn ich: foreach($session as $key => $value){ $sql1= "UPDATE users SET $key = $value WHERE id ='". $_SESSION['id'] ."'"; $query1 = @mysql_query($sql1); $session = @mysql_fetch_array($query1); } einfach am ende meines codes setze spuckt der keine fehler aus aber als funktion (die in einer anderer datei ist)ja ![]() hoffe mir kann jemand helfen mfg |
Autor: | Montekar [ So 20 Apr, 2008 21:04 ] |
Betreff des Beitrags: | Re: foreach problem |
$this->bbcode_second_pass_code('', 'global $session,$userbackup,$dbqueriesthishit,$REQUEST_URI;') Sollte am Anfang von der saveuser-Funktion stehen. |
Autor: | Fargo [ So 20 Apr, 2008 21:05 ] |
Betreff des Beitrags: | Re: foreach problem |
danke aber das problem ist noch immer vorhanden ![]() |
Autor: | Nightborn [ So 20 Apr, 2008 22:23 ] |
Betreff des Beitrags: | Re: foreach problem |
wenn session kein array ist, kommt dieser fehler. warum session kein array ist... nun... wenn irgendwas unset($session) macht, dann ist es aus... $this->bbcode_second_pass_code('', 'if (!is_array($session)) $session=array();') vor der foreach hilft, aber du solltest sehen ob es *wirklich* die session irgendwo fehlerhaft setzt. edit: und bitte überlege, welche anderen wege es gibt, die werte upzudaten *ohne* für *jedes* feld eine query loszulassen. es geht durchaus eine mysql query: "update accounts set field1=1, field2=2, field3='muhaha';"; du belastest massiv deine db für nix. |
Autor: | -DoM [ Mo 21 Apr, 2008 08:21 ] |
Betreff des Beitrags: | Re: foreach problem |
Man sollte vor schon prüfen ob es ein Array ist, wenn man dies durchlaufen lassen möchte... PHP: if (isset($session) && is_array($session)){
foreach($session as $key => $value){ ... } } |
Autor: | Fargo [ Mo 21 Apr, 2008 16:07 ] |
Betreff des Beitrags: | Re: foreach problem |
Nightborn hat geschrieben: edit: und bitte überlege, welche anderen wege es gibt, die werte upzudaten *ohne* für *jedes* feld eine query loszulassen. es geht durchaus eine mysql query: "update accounts set field1=1, field2=2, field3='muhaha';"; du belastest massiv deine db für nix. und wie geht das ![]() mfg Fargo |
Autor: | Harthas [ Mo 21 Apr, 2008 18:50 ] |
Betreff des Beitrags: | Re: foreach problem |
Es funktioniert so wie es in der saveuser-Funktion von LotGD gemacht wird ;-) |
Autor: | Fargo [ Mo 21 Apr, 2008 19:16 ] |
Betreff des Beitrags: | Re: foreach problem |
ja ich mache aber ein eigenes spiel und dann habe ich nicht son ganzes zeugs-.- |
Autor: | MySql [ Mo 21 Apr, 2008 19:38 ] |
Betreff des Beitrags: | Re: foreach problem |
Wenn du ein eigenes Games machst, verstehe ich nicht, warum du im einem LotGD Forum postest! Ansonsten, uebernimmst du die Funktion einfach. |
Autor: | Eliwood [ Mo 21 Apr, 2008 19:50 ] |
Betreff des Beitrags: | Re: foreach problem |
Wie bereits erwähnt, das ist ein LoGD-Forum - kein PHP-Hilf-Forum. Wenn du Probleme mit PHP-Allgemein hast, kannst du hier im Offtopic posten - empfehlenswärt wäre allerdings ein Forum, das mehr auf normale PHP-Fragen spezialisiert ist. Kurz zu deinem Problem: Die folgenden 2 Funktionen müssten grösstenteils funktionieren: $this->bbcode_second_pass_code('', 'function checkuser() { global $session; $res = mysql_query('SELECT * FROM users WHERE id = '.intval($_SESSION['id'])); if(mysql_num_rows($res) > 0) { # Its all right - give $session the row from database and return true $session = mysql_fetch_assoc($res); return True; } else { # Something was wrong - give error and return False echo "Cannot find spezified user"; return False; } } function saveuser() { global $session; $arr = array(); foreach($session as $key => $val) { $val = mysql_real_escape_string($val); $key = mysql_real_escape_string($key); $arr[] = "`$key` = '$val'"; } $arr = implode(', ', $arr); $query = "UPDATE users SET ".$arr." WHERE id = ".$_SESSION['id']; $r = mysql_query($query); if($r !== false) { # Its all right - return true return True; } else { #Something was wrong - print error and return false echo "MySQL-Fehler #".mysql_errno().": ".mysql_error(); return False; } }') Syntax müsste stimmen, wenn nicht - das wurde nicht in nem Editor geschrieben. |
Autor: | Fargo [ Mo 21 Apr, 2008 20:04 ] |
Betreff des Beitrags: | Re: foreach problem |
ich habe sowas auch schon in anderen forum gefragt doch die verstehen mein problem nicht deswegen habe ich hier gefragt weil ich dass von LOGD habe^^ edit: habs gerade ausprobiert und funktioniert einwandfrei danke^^ |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |