Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Zapytanie
pajaa1981
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.01.2011

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


Mam tabelę z dużą ilością danych. Mam zamiar wyciągać z niej około 30 sprecyzowanych rekordów. Każde wyciągam osobno, ale w jednym zapytaniu (UNION SELECT). I teraz, jeśli któryś z tych rekordów nie istniał, to po prostu go nie wyciągnęło, a cała reszta jest. Problem polega na tym, że chciałbym, aby w przypadku braku rekordu zwracało mi chociaż tabele 'error' z wartością 1 (przykład, chce obojętnie jaki znak, że akurat tego nie dało się wyciągnąć, bo nie istnieje).
Go to the top of the page
+Quote Post
.radex
post
Post #2





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


A nie możesz po prostu sprawdzić tego sobie w PHP? Nie ma sensu nadmiernie komplikować zapytań.

PS. Jeśli przez "30 sprecyzowanych rekordów" masz na myśli 30 rekordów o danych ID, to możesz łatwiej to zrobić za pomocą "SELECT * FROM x WHERE id IN(1,2,3, ...)" (chyba, że czegoś nie zrozumiałem?)

Ten post edytował .radex 21.04.2011, 19:27:08
Go to the top of the page
+Quote Post
pajaa1981
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.01.2011

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


Nie mogę tego zrobić za pomocą PHP, bo będę musiał każdy rekord pobierać osobno (30 zapytań).
Go to the top of the page
+Quote Post
.radex
post
Post #4





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Dlaczego?

Masz 30 ID, tak? (nie zaprzeczyłeś, więc przypuszczam, że tak)

Pobierasz je w jednym zapytaniu, a później przejeżdżasz pętlą i sprawdzasz, czego brakuje.

Mógłbyś sprecyzować problem, bo chyba czegoś nie rozumiem.

Ten post edytował .radex 21.04.2011, 19:33:37
Go to the top of the page
+Quote Post
pajaa1981
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.01.2011

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


Nie, rekordy pobieram według nie 2 wartości, nie po ID.
Go to the top of the page
+Quote Post
.radex
post
Post #6





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Cytat(pajaa1981 @ 21.04.2011, 20:32:22 ) *
Nie, rekordy pobieram według nie 2 wartości, nie po ID.


Według czego?

Pozwól, że powtórzę moją prośbę: wytłumacz lepiej swój problem, w zrozumiały sposób, bez skrótów myślowych. Wybacz, ale naprawdę ciężko Cię zrozumieć.
Go to the top of the page
+Quote Post
hieroshima
post
Post #7





Grupa: Zarejestrowani
Postów: 83
Pomógł: 6
Dołączył: 4.04.2010

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


pobieraj zapytanie w petli co za problem? Wypisujesz zapytnie id $id zaczynasz od 1 i w petli np for

for($id=1; $id<=30; $id++)
{
$zapytanie = "SELECT * FROM x WHERE id=$id";
...
...
}
Go to the top of the page
+Quote Post
pajaa1981
post
Post #8





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.01.2011

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


Ale to prymitywne rozwiązuje mój problem, bo będę wykonywał 25 zapytań zamiast jednego.

Tłumacze drugi raz: mam tabele z dużą ilością danych. Pobieram z niej LOSOWE rekordy o wybranych 2 parametrach z rekordu. Chcę, aby w przypadku jego braku był jakiś ślad. Bo tak to zwróci tablice tylko mniejszą o brakującą liczbę. Dalej nie rozumiesz?
Go to the top of the page
+Quote Post
pmir13
post
Post #9





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

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


Ale co to są za parametry? Zdecyduj się co chcesz osiągnąć?
Chcesz wyciągnąć 25 losowych rekordów spełniających dwa warunki?
Chcesz wyciągnąć 30 sprecyzowanych rekordów?
Podaj dokładne warunki jakie muszą te rekordy spełniać.
Go to the top of the page
+Quote Post

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: 18.09.2025 - 01:15