Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie działa w phpmyadmin, w PHP już nie
Forum PHP.pl > Forum > Bazy danych > MySQL
blady101
Witam, wykonuję sobie proste zapytanie:
CODE
SET @rownum := 0;
SELECT * FROM (SELECT @rownum := @rownum+1 AS rank, id, score FROM profiles ORDER BY score DESC) AS derived_table

Które daje prawidłowe wyniki w PhpMyAdmin. Ale już w PHP przy użyciu mysql_query daje oto taki efekt:
CODE
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM (SELECT @rownum := @rownum+1 AS rank, id, score FROM profiles ORDE' at line 1

Jak widać mysql_query urżnął zapytanie. O.o
Skąd takie cuda?
skowron-line
mysql_query pozwala na wykonanie tylko jednego zapytania także
  1. mysql_query('SET @rownum := 0;');
  2. mysql_query('SELECT * FROM (SELECT @rownum := @rownum+1 AS rank, id, score FROM profiles ORDER BY score DESC) AS derived_table');
blady101
Świetnie działa. Dzięki. Jeszcze jedno pytanie, w tej sekcji zapytania która jest w nawiasach:

(SELECT @rownum := @rownum+1 AS rank, id, score FROM profiles ORDER BY score DESC)

Da się zrobić, aby wykonywało to do momentu aż napotka rekord id=5? coś jak IF id=5 THEN STOP; Ale chodzi o zatrzymanie tylko tego co w nawiasie.
blady101
Okej, instrukcja warunkowa jest. Ale teraz aby zatrzymać wykonywanie nawiasu w momencie napotkania rekordu z id=5, potrzebujemy dostęp do każdego kroku wykonywania gdzie sprawdzalibyśmy obecnie pobierany rekord IF (id=5, Zatrzymaj wykonywanie nawiasu).

Możliwy jest dostęp do każdego kroku zapytania?
skowron-line
A nie możesz w podzapytaniu użyć where id <> 7 albo where id not in (7, 9, 12) czy jakie tam liczby chcesz ominąć
blady101
Tu nie chodzi właśnie o ominięcie. Te zapytanie sprawdza miejsce rekordu(id=5) w posortowanej tabeli, i jak już napotka ten rekord, ma już jego miejsce, więc nie musi dalej mielić.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.