COUNT funktioniert nicht in php-Abfrage

DrEvil

Erfahrenes Mitglied
Hallo Leute,
ich habe einen komischen Fehler.

Wenn ich im SQL-Fenster meines phpMyAdmin folgendes eingebe,
Code:
SELECT COUNT(mail) FROM verteiler_info WHERE mail = 'Adresse'
, wird das richtige Ergebnis zurück geliefert.

Wenn ich dieselbe SQL-Abfrage aus meinem php-Script heraus tätige,
PHP:
$count = DB::DoSql("SELECT COUNT(mail) FROM verteiler_info WHERE mail = '$mail'");
, bekomme ich immer "1" als Ergebnis. Egal ob nun eigentlich "0" oder mehr richtig wäre...

Wie kann das passieren? Alle anderen SQL-Abfragen tätigt das Script auch richtig.
Kann wer helfen?

Viele Grüße - Eric
 
PHP:
$count = DB::DoSql("SELECT COUNT(mail) FROM verteiler_info WHERE mail = '$mail'");

Wie sieht die Funktiojn DoSql() denn aus?
Eventuell bekommst du den Rückgabewert der Funktion wieder und nicht das Resultat des Query.
 
Hi,

was für eine Datenbankklasse verwendest Du denn da? Du müsstest schauen, was denn die Methode DoSql überhaupt zurückliefert. Ich würde normalerweise eine Ergebnis-Resource vermuten, aus der Du dann die Datensätze auslesen kannst.

LG
 
PHP:
	function DoSql($sql) {
	
		if(!$this->res = mysql_query($sql, $this->con)) {
			die("(SQL-Ausführung) Fehler: ".mysql_error())."<br>";
		} else return TRUE;


Ich hab das Problem jetzt mit
PHP:
mysql_num_rows(mysql_query("SELECT * FROM verteiler_info WHERE mail = '$mail'")
gelöst, aber ich verstehe nicht, warum es nicht auch anders ging.
 
Weil deine Funktion nirgendswo ein Resultat das Querys zurückgibt, sondern nur true (1), wenn das Query funktioniert hat.

Ein Ergebnis eines Queries muss man bei PHP mit [phpf]mysql_fetch_assoc[/phpf] oder einer der anderen Funktionen auslesen.
 
Zurück