mit der Zeile
[php]$sql = „where ukat1 = ‚$ukat1‘“;[/php]
überschreibst du die Zuweisung von $sql zuvor. Somit fehlt der SELECT-Part im SQL-Statement und ein ungültiges Ergebnis wird zurückgegeben.
Versuche es mal mit:
[php]$sql = "select count (*) as amount from produkte ";
$sql .= „where ukat1 = ‚$ukat1‘“;[/php]
(der Punkt vor dem Gleichheitszeichen verknüpft die beiden Strings miteinander, sodass die eine Zuweisung nicht die andere überschreibt)
Du schickst ein SQL-Statement ab, welches in seinem Aufbau nicht korrekt ist. Das das in einem anderen „Programm“ so schonmal funktioniert hat bezweifel ich.
Der Fehler in dem Statement ist, dass Du versuchst etwas zu zählen ohne die Datensätze zu gruppieren:
$sql = "select count (*) as amount from produkte ";
$sql .= "where ukat1 = '$ukat1'";
[COLOR="red"]$sql .= "group by ukat1";
Btw. wenn Du nur die Anzahl der Einträge zählen willst, würde auch ein
lt.phpmyadmin o. k., es wird kein fehler angezeigt.
Der fehler tritt auch immer in verbindung mit where und group by auf.
Lasse ich where und group by weg, verschwindet auch das warning.
Beim warning
(Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\shop\shopstsuch.php on line 86)wird diese codezeile moniert:
$proseite = 1; //Anzahl Anzeigen pro Seite
$seitenzahl = ceil($anz/$proseite); //Anzahl Seitena aufrunden
include (‚shopseiten.php‘);
Moniert wird mit dem warning:
[SIZE=2][SIZE=2]$row[/SIZE][/SIZE][SIZE=2][SIZE=2] [/SIZE][/SIZE][SIZE=2]= mysql_fetch_array[/SIZE][SIZE=2]SIZE=2;[/SIZE][/SIZE]
[SIZE=2][SIZE=2][/SIZE][/SIZE]
[SIZE=2][SIZE=2]Und liefert auch kein Ergebnis ($anz = blank)
[/SIZE][/SIZE]
AUSGABE: select count(*) as amount from produktewhere hersteller_id ='1 '";
Man merkt ganz gut, dass zwischen „produkte“ und „where“ ein Leerzeichen sein sollte, aber keines da ist.
Ein weiterer Fehler ist, dass hersteller_id ganz sicher eine Ganzzahl ist. Also darfst (auch wenn es funktioniert) du keine Single Quotes (') benutzen um etwas damit zu vergleichen.
Ein anderer Fehler kann auch sein, dass es das Feld „hersteller_id“ nicht in der Tabelle „produkte“ gibt. Vielleicht heißt das Feld nur „hersteller“.
mysql_num_rows ist zum Zählen immer das Letzte, was man tun sollte, wenn man nur die Anzahl haben will.
Im Übrigen, wenn man dich fragt, welches das generiert SQL-Statement + mysql_error()-Resultat ist, solltest du es auch geben.