Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie nazwy kolumn z mysql
Forum PHP.pl > Forum > PHP
piorac
Mam pytanko,
w jaki sposób pobrać z poziomu php nazwy kolumn z okreslonej tabeli w bazie mysql i wyswietlic te nazwy na stronie??
Denver
Skorzystaj z polecenia SHOW COLUMNS: http://dev.mysql.com/doc/refman/5.0/en/show-columns.html
m72
No tak, ale mi chodzi o to zeby odpowiedzią na poszukiwane pytanie do bazy był wynik ->
Id, Name, Country, District, Population z przykładu który jest w dokumentacji którą podałeś.
Jak takie zapytanie sformułować. Reasumując chodzi mi o to zeby w wyniku dostać same nazwy kolumn w tabeli.
Greg0
No i tym wynikiem właśnie będą nazwy które chcesz. W PHP wyświetlasz w pętli wartości tablicy z kluczem 'Field'
mmmmmmm
Tylko, że SHOW COLUMNS działa tylko dla tabel. Jeśli chcesz uzyskać taki sam efakt, ale z dowolnego zapytania, to popatrz na mysql_field_type. Tam jest przykład
biedronpl
Wybaczcie moją zabawę w małego archeologa, ale nie chciałem nowego wątku zakładać.

Otóż jak wykorzystuję polecenie mysqla SHOW COLUMNS to jest wszystko cacy, pobiera mi dobry wynik, tylko jeśli ktoś by mógł, to niech mi wytłumaczy łopatologicznie jak zczytać po kolei wiersze z tej tabeli 2-wymiarowej?
Struktura:
FIELD | Type itd <=nazwy kolumn
ID
klient
data

I teraz jak po kolei wyświetlić tylko komórki pod FIELD? Żebym miał wynik na ekranie "ID", "klient", "data" itd.

CODE
$sql =mysql_query( "SHOW FIELDS FROM sklep_zamowienia") or die("Blad sql".mysql_errno());
$row = mysql_fetch_array($sql, MYSQL_ASSOC);
for($i=0; $i< 4; $i++)
{
echo $row['Field'][$i];
}

Na chwilę obecną utknąłem z czymś takim, co oczywiście nie działa, wyświetla jedynie "ID".
walkie
  1. while($item = mysql_fetch_array($sql))
  2. {
  3. echo $item['Field'];
  4. }


Radzę zupdate'ować informacje nt. aktualnych trendów zapytań do baz :-P
biedronpl
Whoah! Działa. Dzięki wielkie ;-)

Ano trzeba będzie :]
DDaviDD
Witam,
odświeżę troszkę wątek.

Jeśli chodzi o zczytywanie i wypisywanie nazw kolumn to wszystko ładnie śmiga poza tym, że indeksuje mi te nazwy od 1 a nie od 0.
Tzn nie wyświetla pierwszej kolumny z ID tylko zaczyna od kolejnej po niej następującej.
Jak to rozwiązać aby indeks zerowy czyli ID też był wyświetlany?

  1. $sql = mysql_query("SHOW FIELDS FROM".$nazwa_tabeli) or die("Blad sql".mysql_errno());
  2. $row = mysql_fetch_array($sql, MYSQL_ASSOC);
  3. while($item = mysql_fetch_array($sql))
  4. {
  5. echo $item['Field'];
  6. }
franki01
  1. $row = mysql_fetch_array($sql, MYSQL_ASSOC);

Tę drugą linijkę wyrzuć zupełnie, bo właśnie ona zabiera Ci ten indeks 0.

EDIT:
Poza tym nie wiem czy w pętli nie powinieneś użyc mysql_fetch_assoc, końcówka _array bodajże zwraca klucze indeksowane od 0 numerycznie w górę.

Druga rzecz - przerzucaj się powoli na bibliotekę MySQLi albo PDO. mysql_* jest powoli wycofywana.
DDaviDD
Wystarczyło usunięcie wspomianej wyżej przez Ciebie jednej linii. Dzieki wielkie za wskazówkę.

Co do MySQLi zdaję sobie z tego sprawę, niestety zmuszony bylem pracować na PHP4 i stąd starsze rozwiązanie.
Dzięki wielkie smile.gif
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.