Hallo zusammen.
Ich habe ein seltsames Problem... und hoffe, es vernünftig genug beschreiben zu können.
Ersteinmal die Methode aus der Klasse 'user'
public function countUsernames($accid) {
$this->count = 0;
$query =
mysql_query("SELECT `user_id` FROM `ze_user` WHERE `user_acc_id` = '$accid'");
while($row = mysql_fetch_object($query)){
$this->count++;
}
return $this->count;
}
Die ist nicht mein Problem - sie funktioniert, habe es an anderer Stelle getestet.
Mein Problem ist viel eher beim AJAX updater, der via JSON antwortet.
Hier der Problempart:
if($ZE_USER->countUsernames($accid) >= $ZE_SETT->max_nicks){
$confirm_color = "#990000";
$confirm_state = "Maximale Anzahl Namen erreicht.";
unset($name_valid); }
und weiter unten dann
$json .= '"id": "1",
"color": "'.$confirm_color.'",
"state": "'.$confirm_state.'"
},';
Das Problem ist nun folgendes... offensichtlich, liefert countUsernames() keinen wert zurück, ist also null und die Abfrage trifft nie zu, selbst wenn sie zutreffen sollte.
Ich hatte dann aus Spaß an der Freude mir das mal direkt ausgeben lassen.
$json .= '"id": "1",
"color": "'.$confirm_color.'",
"state": "'.$ZE_USER->countUsernames($accid).'"
},';
liefert mir dann den korrekten Wert. Der Aufruf der Methode funktioniert also.
$test = $ZE_USER->countUsernames($accid);
if($test >= $ZE_SETT->max_nicks){
$confirm_color = "#990000";
$confirm_state = "Maximale Anzahl Namen erreicht.";
unset($name_valid); }
und
$json .= '"id": "1",
"color": "'.$confirm_color.'",
"state": "'.$test.'"
},';
bzw
$json .= '"id": "1",
"color": "'.$confirm_color.'",
"state": "'.$confirm_state.'"
},';
bleibt $test jedoch wieder null und damit funktioniert auch die Abfrage wieder nicht.
Ich bin mit meinem Latein am Ende und hoffe, jemand hat einen Tipp, der mir weiter hilft.
Danke schonmal.