MySQL-Statement in PHP

therock99

Grünschnabel
Moin Moin,

ich habe hier ein SQL-Statement das mir das Ergebnis mit zusätzlich einer durchnummerierten Spalte liefert.
Code:
SET @row = 0; 
SELECT Row, idz
FROM (SELECT @row := @row + 1 AS Row, idz AS idz FROM tebelle1) As tabNeu  
WHERE Row < 3;

Das Statement funktioniert auch wenn ich es in PHPMyAdmin ausführe.
Jedoch nicht wenn ich es in PHP ausführen will.
Soll heißen:
PHP:
$query = "
SET @row = 0; 
SELECT Row, idz
FROM (SELECT @row := @row + 1 AS Row, idz AS idz FROM tebelle1) As tabNeu  
WHERE Row < 3
";
$zeile = mysql_fetch_array( mysql_query($query)  );
bringt folgenden Fehler:
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... "

Weiß Jemand wie dieser Query aussehen sollte damit es in PHP zu keinen Fehlern kommt?

Vielen Dank in vorraus
 
Ich würde mal sagen so. Wobei ich nicht ganz verstehe was dieses "SET @row=0;" soll bzw, kann?!

PHP:
SET @row = 0; 

$query = "
SELECT Row, idz
FROM (SELECT @row := @row + 1 AS Row, idz AS idz FROM tebelle1) As tabNeu  
WHERE Row < 3
";
$zeile = mysql_fetch_array( mysql_query($query)  );
 
@ Matthias Reitinger
Jep, jetzt klappt es. Danke.
Hab es jetzt in zwei Abfragen gepackt und es funktioniert.
PHP:
mysql_query("SET @row = 0 ");
$query = "
SELECT Row, idz
FROM (SELECT @row := @row + 1 AS Row, idz AS idz FROM tebelle1) As tabNeu  
WHERE Row < 3 ";
$zeile = mysql_fetch_array( mysql_query($query)  );

@ seltsammithut

"SET @row=0;"
erstellt eine Variable die dann bei jeder Zeile inkrementiert wird, so kann man sich seine Ergebnisse durchnummerieren.
 
Also wenn du das Beispiel genau so verwendest (mit den SELECT-Anweisungen und der 3 als Bedingung) kannst du das auch einfacher haben:
Code:
SELECT idz FROM tabelle1 LIMIT 2
Dann fehlt dir zwar die "Row"-Spalte, aber da du ja weißt, dass dort "1" und "2" drin steht, könntest du die Abfrage so verwenden

SELECT mit LIMIT
 
Zurück