dedlfix: if / else anweisung fehlerhaft

Beitrag lesen

Hi!

<?php $Ergebnis = mysql_query("SELECT COUNT(T%) FROM tabelle");

Die Funktion COUNT() wird üblicherweise mit einem * als Argument aufgerufen, wenn alle Datensätze gezählt werden sollen. Ansonsten kann man auch einen Feldnamen übergeben, wenn nur Datensätze ohne NULL-Werte in diesme Feld gezählt werden sollen. Du solltest dir COUNT(*) merken, das ist meistens das was man will. Die Suchbedingung hattest du schon richtig und die kommt immer in die WHERE-Klausel: ... WHERE feld LIKE 'muster'. Beim Suchen mit regulären Ausdrücken ist das genauso: ... WHERE feld RLIKE 'muster'. Statt RLIKE geht auch REGEXP.

if (mysql_fetch_row($Ergebnis) == 0) {

Die für das Auslesen der Ergebnismenge einer Query relevanten Funktionen mysql_fetch_array/assoc/row/object geben immer ein Array oder Objekt zurück und keine Einzelwerte. Man kann auch nicht das Ergebnis einer Funktion direkt als Array ansprechen

mysql_fetch_row($Ergebnis)[0]

geht nicht. Man benötigt immer eine Variable:

$row = mysql_fetch_row($Ergebnis);

Wenn du dir jetzt anschaust, was in $row enthalten ist

var_dump($row);

wirst du ein Element mit dem Schlüssel 0 sehen:

echo $row[0]; // Rückgabe von COUNT(*)

So kann man beispielsweise das Zählergebnis ansehen.

Lo!