Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql]Jak zrobic bardziej wydajne zapytanie
Forum PHP.pl > Forum > Przedszkole
Bojakki
Mam tablice (tablica moze miec max 3 obeikty, ale moze tez nie miec zadnego):
  1. $obiekt[0]='5';
  2. $obiekt[1]='56';
  3. $obiekt[2]='1567';


I teraz na podstawie tych id musze pobrac dane z tabeli

  1. $query = mysql_query("SELECT id, status, name FROM obiekty WHERE id = $obiekt[0] OR id = $obiekt[1] OR id = $obiekt[2]") OR die(mysql_error());
  2. while($lok=mysql_fetch_row($query)){
  3. echo $lok[2].'-'.$lok[1].'<br />';
  4. }


Jak to rozwiazac inaczej bo ORy sa bardzo malo wydajne, poza tym czasami moze byc tak, ze beda tylko 2 obiekty lub 1 lub wcale.
wookieb
google -> mysql IN
Dla połączenia tablicy w jeden string użyj
implode
nospor
  1. $query = mysql_query("SELECT id, status, name FROM obiekty WHERE id in (".implode(',',$obiekt).")") OR die(mysql_error());

Dorzuć tylko do tego warunek na pustą tablice.
zzeus
  1. IF(count($obiekt) > 0)
  2. $query = mysql_query("SELECT id, status, name FROM obiekty WHERE id IN (".implode(",", $obiekt).")") OR die(mysql_error());
  3. while($lok=mysql_fetch_row($query)){
  4. echo $lok[2].'-'.$lok[1].'<br />';
  5. }
  6. }
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.