Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MSSQL]Pobieranie id użytkowników z bazy danych
Forum PHP.pl > Forum > Przedszkole
Siela
Mam zamiar pobrać z bazy tylko i wyłącznie ID użytkowników spełniających jakieś tam zapytanie i wrzucić je do jednej zwykłej tablicy w prosty sposób. Tylko, że nic mi nie przychodzi do głowy.

Przykład:
  1. <?php
  2. $query='SELECT id_usera FROM baza GROUP BY id_usera ORDER BY id_usera';
  3. $result=mysql_query($query);
  4. $i=0;
  5. while($row=mysql_fetch_array($wynik)
  6. {
  7. $tablica[$i]=$row['id_usera'];
  8. $i++;
  9. }
  10. ?>


Ale to chyba, za długo będzie trwało... :/
Grzyw
Dlaczego? Jest to optymalne, chyba, że jesteś w stanie od razu w pętli wykonywać jakieś operacji na ID userów.
Poza tym zbędna jest zmienna $i, ponieważ PHP automatycznie wypełnia indeksy tablic kolejnymi liczbami naturalnymi.
  1. <?php
  2. $query='SELECT id_usera FROM baza GROUP BY id_usera ORDER BY id_usera';
  3. $result=mysql_query($query);
  4. while($row=mysql_fetch_array($wynik)
  5. {
  6. $tablica[]=$row['id_usera'];
  7. $i++;
  8. }
  9. ?>

Ten kod da taki sam efekt.
Siela
Wydawało mi się, że mało wydajny ten kod. Miałem nadzieję, że istnieje jakiś odpowiednik mysql_fetch_array() pozwalający zapytaniom o jeden element od razu ładować wszystko do takiej tablicy... No ale cóżsmile.gif Dzięki! biggrin.gif
vtuner
Grzyw, mówisz, że zmienna $i jest zbędna, a sam ją w kodzie umieszczasz mellow.gif . Wywal tą zmienną $i i wtedy będzie optymalniej
Siela
Eee szczegóły smile.gif Zrozumiałem zamysł tongue.gif
phpion
Jeśli bawisz się w optymalizację skryptu to:
1. Domyślam się, że GROUP BY w zapytaniu jest zbędne.
2. Zamiast mysql_fetch_array() skorzystaj z mysql_fetch_assoc() lub (najszybsze) mysql_fetch_row().
3. Dodaj warunek z mysql_num_rows() dopuszczający do pętli tylko jeśli znaleziono conajmniej 1 rekord.
vtuner
Jak już max. optymalizować to nie potrzebnie tworzyć zmienną $query tylko bezpośrednio wstawić jej wartość do mysql_query" title="Zobacz w manualu PHP" target="_manual
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.