Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pobieranie danych z tebeli, pobiera tylko 1 wiersz
mefistofeles
post
Post #1





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


Witam,

W tabeli 'kolory' (id_koloru, nazwa) przechowuje nazwy kolorów.
Chciałbym je wszystkie pobrać do zmiennej:

  1. <?php
  2. $wszystkie[] = mysql_fetch_row(mysql_query("SELECT `nazwa` FROM `kolory` WHERE id_koloru > 0"));
  3. //echo $wszystkie[0];
  4. echo '<pre>';
  5.    print_r($wszystkie);
  6.    echo '</pre>';
  7. ?>


W $wszystkie zapisuje mi się tylko jeden, pierwszy kolor (id = 1)
Jak pobrać wszystkie nazwy do tej zmiennej (tablicy) ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lis3k
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.03.2009

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


Temat stary, ale kolega się uczy z tego forum i się na niego natknął, a to może oznaczać że i inni się natykają. Tak więc troszkę wyjaśnień.
Plan jest taki, że mysql_query łączy się z bazą, ściąga wszystkie pasujące rekordy i ustawia tak zwany kursor (czyli po prostu wybiera sobie z listy jeden rekord który aktualnie "obrabia") na sam początek.
wywoływana kilka razy zawsze (albo i nie, ale w przykładzie podanym w wątku zawsze) zwróci to samo.

zadaniem funkcji mysql_fetch_***** jest pobrać "aktualny" rekord ze źródła wszystkich rekordów jakie mysql_query wypluło, i ustawić w tej liście ("źródle") kursor na następny, tak żeby przy następnym wywołaniu funkcji mysql_fetch_***** mogła pobrać kolejny rekord i znowu przygotować sobie następny. Kiedy się skończą, zwraca false.

Jeśli pętla wygląda tak: while($row=mysql_fetch_array(mysql_query(...)))
to mysql_query zwróci listę wszystkich rekordów z kursorem na pierwszym, mysql_fetch_array pobierze ten pierwszy rekord, zwróci i ustawi kursor na liście zwróconej przez mysql_query, na drugi. W kolejnym przebiegu znowu wykona się mysql_query (bo jej wynik nie był składowany w żadnej zmiennej), i znowu zwróci listę wszystkich rekordów, z kursorem ZNOWU ustawionym na pierwszy, który mysql_fetch_array znowu ustawi na drugi, ale jakie to ma znaczenie skoro za chwilę dostanie znowu świeżą listę z kursorem znowu ustawionym na pierwszy.
Tyle "znowu" sugeruje pętlę nieskończoną.
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: 8.10.2025 - 13:54