Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] jak przekazać id do procedury, w przypadku gdy id jest wiele
fragles
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 14.12.2008

Ostrzeżenie: (0%)
-----


chodzi o coś takiego, że wybieram ileś tam typów i dla tych typów wywołuje procedurę
czyli po SQL-owemu byłoby to
WHERE id IN (1,2,3 itd)

przekazuję to jako tekst - '1,2,3' - w takiej formie
ale jest problem gdy wstawiam to bezpośrednio do zapytania mam błąd

Truncated incorrect DOUBLE value: '1,2,3'

a wynik jest pobierany tylko dla ID 1 (dokładniej dla pierwszego ID)

Jak to zrobić?


na razie robię tak
- zapytanie jako string
- na końcu w procedurze używam instrukcji

SET @dyn_sql=sqlQuery;
PREPARE s1 FROM @dyn_sql;
EXECUTE s1;
DEALLOCATE PREPARE s1;

ale czy można jakoś bezpośrednio do SQL - bez potrzeby tworzenia zapytania tekstu - przekazać wiele numerów ID?

Ten post edytował fragles 6.10.2009, 07:29:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Pytanie mam... Czy te numery id podajesz z POST lub GET, czy może także wyciągasz z bazy danych? Ja zazwyczaj mam ten drugi przypadek i wtedy ładnie się upraszcza problem, gdyż wtedy przekazujesz je jako podzapytanie przy IN tak jak sugerujesz na początku wedle schematu:
  1. SELECT coś_tam FROM tabelki WHERE id IN ( SELECT id FROM inna_tabela )

Jak sam widzisz w podzapytaniu tylko id przy select ustawiasz.
Przypadku pierwszego nie miałem okazji stosować z racji takiego rozpisania bazy, że rozwiązanie drugie mi wystarcza (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 19:27