Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Pobieranie danych jako tablica(?)
Mezir
post 7.10.2015, 17:22:01
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 17.05.2015

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


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.
Go to the top of the page
+Quote Post
Tomplus
post 7.10.2015, 17:47:05
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


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'];

Ten post edytował Tomplus 7.10.2015, 17:48:53
Go to the top of the page
+Quote Post
Mezir
post 7.10.2015, 17:58:36
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 17.05.2015

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


I tak kilkanaście zapytań tworzyć?
Go to the top of the page
+Quote Post
Tomplus
post 7.10.2015, 18:05:16
Post #4





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


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.

Ten post edytował Tomplus 7.10.2015, 18:06:45
Go to the top of the page
+Quote Post
Mezir
post 7.10.2015, 18:21:00
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 17.05.2015

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


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?
Go to the top of the page
+Quote Post
viking
post 7.10.2015, 18:22:19
Post #6





Grupa: Zarejestrowani
Postów: 6 377
Pomógł: 1116
Dołączył: 30.08.2006

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


Usunąć warunek WHERE id = 3


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 7.10.2015, 18:24:10
Post #7





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


@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.
Go to the top of the page
+Quote Post
Mezir
post 7.10.2015, 18:41:12
Post #8





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 17.05.2015

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


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
Go to the top of the page
+Quote Post
Tomplus
post 7.10.2015, 18:52:33
Post #9





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


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

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 09:04