Don Stefano
Erfahrenes Mitglied
Hallo zusammen,
leider habe ich ein kleines MySQL Problem:
Ich muss aus einer DB-Tabelle für einen bestimmten Nutzer die Anzahl der Felder/Spalten auszählen, in denen ein Wert steht (ansonsten sind die Felder leer, oder enthalten eine 0).
Das realisiere ich durch die weiter unten abgebildete Foreach-Schleife. Zuerst aber einmal die Query:
Nun ist das Problem, dass ich (vielmehr das Skript) vorher nicht weiß, ob dieser Nutzer überhaupt in der Tabelle steht. Wenn er nicht in der Tabelle steht, führt die Foreach Schleife logischerweise zur Fehlermeldung:
Ansonsten muss der Zählerwert einfach 0 betragen.
Dazu habe ich mir folgende IF / ELSE - Abfrage überlegt, was leider nicht funktioniert: Denn die Foreach-Schleife wird auch ausgeführt, wenn der User NICHT in der Tabelle steht.
Wie läßt es sich realisieren, dass Foreach nur ausgeführt wird, wenn der User auch in der Tabelle steht und dass ansonsten der Wert des Zählers einfach 0 beträgt?
Vielen Dank für jede Hilfe!
leider habe ich ein kleines MySQL Problem:
Ich muss aus einer DB-Tabelle für einen bestimmten Nutzer die Anzahl der Felder/Spalten auszählen, in denen ein Wert steht (ansonsten sind die Felder leer, oder enthalten eine 0).
Das realisiere ich durch die weiter unten abgebildete Foreach-Schleife. Zuerst aber einmal die Query:
PHP:
$result = mysql_query("select * from $tabelle where `nutzer_id`= '".intval($_SESSION["nutzer_id"])."'");
Also soll die Foreach-Schleife nur ausgeführt werden, wenn die SQL-Abfrage auch zu einem Ergebnis führte (wenn also der Nutzer anhand seiner Nutzer_ID in der Tabelle identifiziert werden konnte).Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\01_Vorgabesystem\vorgabe_index.php on line 303
Ansonsten muss der Zählerwert einfach 0 betragen.
Dazu habe ich mir folgende IF / ELSE - Abfrage überlegt, was leider nicht funktioniert: Denn die Foreach-Schleife wird auch ausgeführt, wenn der User NICHT in der Tabelle steht.
PHP:
IF(!isset($result)) { //Wird die User_ID NICHT gefunden?
$counter = 0;
} //Ende IF
ELSE { //Existiert die User_ID - FOREACH ausführen!
$counter = 0; // Counter initialisieren
$fetched = mysql_fetch_row($result);
foreach($fetched as $cell){
if($cell != 0 || !empty($cell)) {
$counter++;
} //Ende IF
} //Ende foreach
} //Ende ELSE
Vielen Dank für jede Hilfe!