-
interogare php
salut,
stiu ca pot sa fac o interogare pentru care sa aflu numarul total de randuri gasite in baza de date. intrebarea mea este: pot sa aflu al catelea rezultat este un anumit item? asadar, daca imi gaseste 200 de inregistrari pentru un anumit produs, pot sa aflu a cata inregistrare din acestea 200 este produsul cu id-ul x?
p.s. imi trebuie pentru un sistem de paginare.
multumesc.
-
Trebuie sa folosesti un subquery in care sa incrementezi o variabila setata anterior pentru fiecare inregistrare gasita. Spre exemplu:
Cod:
SET @num = 0;
SET @result = 0;
SELECT id, number, nume
FROM (
SELECT @num := @num + 1 AS number, @result := if(anunturi.id = {$anunt['id']}, @num, @result) as result, anunturi.id, anunturi.nume
FROM anunturi
WHERE anunturi.id>1000
ORDER BY anunturi.time ASC) AS tbl
WHERE number >= @result-1
ORDER BY number ASC
LIMIT 10
id = id-ul obiectului din tabela
number = indexul obiectului din subsetul rezultat
Celelalte campuri (de exemplu cum e mai sus "nume") trebuie specificate si in subquery si in query-ul initial.