Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pobieranie danych jako tablica(?)
Forum PHP.pl > Forum > Przedszkole
Mezir
Witam, nie bardzo wiedziałem jaki nadać tytuł tematu, bo mam dość nietypowy problem, dane w bazie przykładowo dla kanału ID 3 mam zapisywane w takiej formie:


Teraz chciałbym pobrać każdą informację z pola "value" wyświetlić i tu pojawia się problem, bo nie bardzo wiem jak, podejrzewam, że coś z tablicą.
Pozdrawiam.
Tomplus
Pobierasz tak jak do tej pory tylko w WHERE wskazujesz konkretną linię jaką chcesz odczytać np.:

Kod
SELECT * FROM tabela WHERE `id` = 3 AND `ident` = 'channel_password'


a potem w PHP wykazujesz np. echo $wynik['value'];
Mezir
I tak kilkanaście zapytań tworzyć?
Tomplus
Można zapytanie zmniejszyć i masz coś takiego

Kod
SELECT * FROM tabela WHERE `id` = 3


a potem
  1. while($wynik= mysql_fetch_array($resource)) $channel[$wynik['id']][$wynik['ident']] = $wynik['value'];
  2.  
  3.  
  4. echo $channel[3]['channel_password'];
  5. echo $channel[3]['channel_name'];


można nawet bez tego id=3 zrobić, pobierzesz do tablicy $channel całą tablicę którą pokazujesz na screenie, a potem dowolnie, możesz korzystać na poziomie PHP.
Mezir
Dzięki, a jeszcze jedno. Jak zrobić by było wyświetlane dla każdego ID kanału jakie mam w bazie, a nie tylko dla 3?
viking
Usunąć warunek WHERE id = 3
Tomplus
@Mezir
Ty dopiero zaczynasz przygodę z MySQL? Czy coś wiedziałeś wcześniej?

I jak coś, czytaj co piszę, bo napisałem to samo co przed chwilą Viking.
Mezir
Cytat(viking @ 7.10.2015, 19:22:19 ) *
Usunąć warunek WHERE id = 3


Nie mam warunku WHERE id = 3
Wygląda u mnie to tak:
  1. $kanaly = mysql_query('SELECT * FROM channel_properties')
  2. while($wynik= mysql_fetch_array($kanaly)) $channel[$wynik['id']][$wynik['ident']] = $wynik['value'];
  3. {
  4. echo $channel[3]['channel_name'];
  5. }


Chciałbym dla przykładu wyświetlić dla KAŻDEGO kanału w pętli: channel_name, channel_order, channel_topic
Tomplus
Pętla jest tylko w linii 2.

W 3 do 5 nie ma pętli. Ale zgodnie z tym co masz echo powinno wyświetlić ci channel_name, więc wystarczy wpisać pozostałe.

Jeżeli chcesz mieć listę kanałów 1,2,3,4,5...n to musisz wykonać inną pętle np. foreach

  1. foreach ($channel as $key=>$val)
  2. {
  3. echo "<br>{$channel[$k]['channel_name']},{$channel[$key]['channel_order']},{$channel[$key]['channel_topic']}";
  4. //lub
  5. echo "<br>{$val['channel_name']},{$val['channel_order']},{$val['channel_topic']}";
  6. }


To są podstawy.
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.