anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Di 10 Jun, 2025 10:41

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: foreach problem
BeitragVerfasst: So 20 Apr, 2008 20:34 
Offline
User
User

Registriert: Di 15 Apr, 2008 19:55
Beiträge: 14
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 :bash:
hoffe mir kann jemand helfen

mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: foreach problem
BeitragVerfasst: So 20 Apr, 2008 21:04 
Offline
Großmeister
Großmeister
Benutzeravatar

Registriert: Mo 24 Apr, 2006 18:21
Beiträge: 408
Geschlecht: Männlich
LoGD: http://localhost
$this->bbcode_second_pass_code('', 'global $session,$userbackup,$dbqueriesthishit,$REQUEST_URI;')

Sollte am Anfang von der saveuser-Funktion stehen.

_________________
Mal wieder da...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: foreach problem
BeitragVerfasst: So 20 Apr, 2008 21:05 
Offline
User
User

Registriert: Di 15 Apr, 2008 19:55
Beiträge: 14
danke aber das problem ist noch immer vorhanden :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: foreach problem
BeitragVerfasst: So 20 Apr, 2008 22:23 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 15 Okt, 2005 14:06
Beiträge: 864
Geschlecht: Männlich
LoGD: http://shinobilegends.com
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.

_________________
Entwicklung Lotgd 1.2.2 +nb
1.2.1 +nb ist final

Bugreports/Testing erwünscht, http://nb-core.org

Wichtige Info für Programmierersucher:
viewtopic.php?f=34&t=4285


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: foreach problem
BeitragVerfasst: Mo 21 Apr, 2008 08:21 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
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){
...
}
}

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: foreach problem
BeitragVerfasst: Mo 21 Apr, 2008 16:07 
Offline
User
User

Registriert: Di 15 Apr, 2008 19:55
Beiträge: 14
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 :D

mfg
Fargo


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: foreach problem
BeitragVerfasst: Mo 21 Apr, 2008 18:50 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Es funktioniert so wie es in der saveuser-Funktion von LotGD gemacht wird ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: foreach problem
BeitragVerfasst: Mo 21 Apr, 2008 19:16 
Offline
User
User

Registriert: Di 15 Apr, 2008 19:55
Beiträge: 14
ja ich mache aber ein eigenes spiel und dann habe ich nicht son ganzes zeugs-.-


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: foreach problem
BeitragVerfasst: Mo 21 Apr, 2008 19:38 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 01 Mai, 2007 13:57
Beiträge: 1634
Wohnort: Dortmund.
Geschlecht: Männlich
LoGD: Lokal.
Skype: josh.hoiul
Wenn du ein eigenes Games machst, verstehe ich nicht, warum du im einem LotGD Forum postest!

Ansonsten, uebernimmst du die Funktion einfach.

_________________
Never change a running system. Bullshit! ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: foreach problem
BeitragVerfasst: Mo 21 Apr, 2008 19:50 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: foreach problem
BeitragVerfasst: Mo 21 Apr, 2008 20:04 
Offline
User
User

Registriert: Di 15 Apr, 2008 19:55
Beiträge: 14
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^^


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum