Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MSSQL]Pobieranie id użytkowników z bazy danych, wszystkie rekordy w tablicy
Siela
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 1
Dołączył: 28.02.2005
Skąd: Gdańsk

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


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... :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Grzyw
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


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.
Go to the top of the page
+Quote Post
Siela
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 1
Dołączył: 28.02.2005
Skąd: Gdańsk

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


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óż(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzięki! (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
vtuner
post
Post #4





Grupa: Zarejestrowani
Postów: 220
Pomógł: 10
Dołączył: 23.08.2005
Skąd: Łódź

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


Grzyw, mówisz, że zmienna $i jest zbędna, a sam ją w kodzie umieszczasz (IMG:http://forum.php.pl/style_emoticons/default/mellow.gif) . Wywal tą zmienną $i i wtedy będzie optymalniej
Go to the top of the page
+Quote Post
Siela
post
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 1
Dołączył: 28.02.2005
Skąd: Gdańsk

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


Eee szczegóły (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zrozumiałem zamysł (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
phpion
post
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post
vtuner
post
Post #7





Grupa: Zarejestrowani
Postów: 220
Pomógł: 10
Dołączył: 23.08.2005
Skąd: Łódź

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


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
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: 22.08.2025 - 17:19