Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Pobieranie rekordów z bazy do tablicy dwuwymiarowej
Forum PHP.pl > Forum > Przedszkole
sebap123
Już przejrzałem parę tematów z forum tego i nie tylko i cały czas nie mogę znaleźć rozwiązania mojego problemu.

Tworzę skrypt, który pobiera dane z bazy MySQL, przypisuje je do zmiennej (dwuwymiarowej tablicy) a następnie wykonuje na nic różne operacje. Pierwszy wymiar tabeli to nr wiersza, a drugi to wartości z poszczególnych kolumn tabeli. Przykładowo bym wykonał to w sposób następujący gdybym robił to ręcznie:

  1. $tabela[1]=array('id'=>1,'nazwa'=>'NAZWA1');
  2. print $tabela[1]['nazwa'];
  3. //wyświetla napis NAZWA1


Miałem wiele koncepcji jak to napisać, ale aktualnie mam coś takiego (to tez nie działa niestety):
  1. $query = mysql_query('SELECT *FROM tabela ORDER BY nazwa');
  2. $i=0;
  3. while($result = mysql_fetch_row($query))
  4. {
  5. $array[$i]=$result;
  6. $i++;
  7. }

Dlatego mam pytanie, czy ktoś może mi podpowiedzieć, jak to wykonać, bo już brakuje mi pomysłów.
nospor
Masz błąd zapytania. Na przyszłość sprawdzaj czy wszystko się powiodło, a nie zakładasz że się powiodło...

NIe: *FROM
a: * FROM

Zapoznaj się z tematem:
Temat: Jak poprawnie zada pytanie
I zastosuj do porad tam podanych. Będziesz rzadziej zaglądał na forum
sebap123
Ok, zmieniłem zapytanie, ale i tak nic. Sprawdziłem temat do którego mnie skierowałeś i też nic. Tak na marginesie, tamten typ zapytani (czyli *FROM) działał w 100% we wszystkich wywołaniach, tak wiec, jaka jest różnica?

No ale jeśli chodzi o problem to nadal nierozwiązany.
foxbond
Na 100% działa:

  1. $query = mysql_query('SELECT * FROM tabela ORDER BY nazwa');
  2. $i=0;
  3. $arr = array();
  4.  
  5. while($res = mysql_fetch_row($query))
  6. {
  7. $arr[$i++]=$res;
  8. }
  9. print_r($arr);
sebap123
Działa, ale niestety nie na 100%. Wygląda jakby pobierał całą tablicę, bo gdy sprawdzam rozmiar to się wszystko zgadza, ale jak wywołuję:
  1. $tablica[1]['nazwa']

To nie zwraca pożądanego wyniku.
nospor
nie: mysql_fetch_row
a: mysql_fetch_array

a nastepnym razem zamknę ci temat, bo nie zastosowałeś się do wskazówek jakie były w temacie. Jakbyś się zastosował to:
1) miałbyś na ekranie błędy, a ty nam nic o błędach nie mówisz - błędów więc nie widzisz. nie widzisz bo nie zastosowałeś się do wskazówki o błędach
2) zrobiłbyś głupie print_r i byś wiedział czemu nie działa...
sebap123
Dobra ruszyło, dzięki. Co do błędów, to nic nie było. No ale mniejsza. Cały czas zastanawia mnie tylko jaka jest różnica miedzy *FROM, a * FROM (bo jak dla mnie to tylko w wyglądzie). Sprawdziłem też w phpMyAdmin i dla niego nie ma znaczenia czy spacja jest czy nie.
nospor
Nie wdziałeś błędów, bo nie włączyłeś ich wyświetlania. A w linku była o tym mowa.
Była też mowa o banalnym debugowaniu jakim jest print_r();
A ty nawet tego nie zrobiłeś choć podał ci to w swoim przykładzie autor poprzedniego posta.

zwracaj uwagę na to co ci ludzie piszą, zwracaj uwagę na tematy do jakich cię przekierowują. Uczciwie piszę, że takie tematy jak ten teraz, bedę zamykał. Nie po to jest przygotowany zestaw pewnych wskazówek by za każdym razem każdemu z osobna pisać: zrób to, zrób tamto, a teraz weź zrób to...
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.