Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/MySQL] Jak wyświetlić pełny wpis z bazy mysql?, nie znam ilości kolum, a chce wyświetlić je wszystkie
Sky_walker
post
Post #1





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


Jak wyświetlić pełny wpis z bazy mysql?
Znam wartość tylko jednego pola i chciałbym wyświetlić zawartość wszystkich kolumn z tabeli dla danego rekordu nie znając ich ilości.

Np. wybieram sobie nick:
  1. <?php
  2. $zapytanie="SELECT * FROM users WHERE nick=$nick";
  3. $wykonaj=mysql_query($zapytanie);
  4. $wynik=mysql_fetch_array($wykonaj);
  5. ?>

I teraz chciałbym wyświetlić wszystkie rekordy z kolumn (eg. echo "kolumna$n = $wynik_z_kolumny_n"; ), a są to np. a1 | a2 | a3 | a4 | a5
podejżewam, że można to zrobić jakąś pętlą... albo w samym zapytaniu MySql...


--------------------
Pomogłem? Kliknij poniżej.
Dzięki! :D
Go to the top of the page
+Quote Post
cornholio666
post
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


  1. <?php
  2. $zapytanie="SELECT * FROM users WHERE nick=$nick";
  3.  $wykonaj=mysql_query($zapytanie);
  4.  while( $row = mysql_fetch_array($wykonaj)){
  5.  
  6. echo $row["a1"]. "<br>";
  7. echo $row["a2"]. "<br>";
  8. echo $row["a3"]. "<br>";
  9.  
  10.  }
  11. ?>

Tutaj w przykładzie jest napisane co i jak http://php.net.pl/manual/pl/function.mysql-fetch-array.php" title="Zobacz w manualu php" target="_manual

Ten post edytował cornholio666 11.11.2006, 17:54:23


--------------------
I need TP for my bunghole!!!

Mój nowy przyjaciel - tytanowa płytka na stałe
------------------------------------------------------
AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz
Go to the top of the page
+Quote Post
skowron-line
post
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. <?php
  2. $zapytanie="SELECT * FROM users WHERE nick=$nick";
  3. $wykonaj=mysql_query($zapytanie);
  4. while($wynik=mysql_fetch_array($wykonaj)){
  5. echo $wynik['nazwa_kolumny'];
  6. }
  7. ?>


edit: za pozno

Ten post edytował skowron-line 11.11.2006, 17:52:37


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Sky_walker
post
Post #4





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


spoko, wiem jak się wyświetla konkretne kolumny, ale jak wyświetlić wyniki z WSZYSTKICH kolumn nie znając ich nazw?


--------------------
Pomogłem? Kliknij poniżej.
Dzięki! :D
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. print_r($wynik);
  3. ?>
tongue.gif

A na powaznie: foreach, for i wiele innych do biegania po tablicy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Sky_walker
post
Post #6





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


Dobra, a jak to zapisać do zmiennej? chciałbym mieć zmienną zawierającą tekst z kolumn tabeli.
A co do foreach - nie wiem jak to zastosować na wyniku z tabeli sad.gif jakiś przykład?


--------------------
Pomogłem? Kliknij poniżej.
Dzięki! :D
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Dobra, a jak to zapisać do zmiennej? chciałbym mieć zmienną zawierającą tekst z kolumn tabeli.

http://pl.php.net/manual/pl/function.implode.php

Cytat
A co do foreach - nie wiem jak to zastosować na wyniku z tabeli jakiś przykład?

zaprzyjaźnij sie z manualem...
http://pl.php.net/manual/pl/control-structures.foreach.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Sky_walker
post
Post #8





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


o_O teraz to mnie zatkało... kod:
  1. <?php
  2. $zapytanie="SELECT * FROM users WHERE nick='$nick'";
  3. $wykonaj=mysql_query($zapytanie);
  4. $wynik=mysql_fetch_array($wykonaj);
  5.  
  6. echo implode(",", $wynik);
  7. ?>

daje w efekcie coś takiego:
Cytat
4,4,Sky_walker,Sky_walker

o_O Wszystkie wyniki są wyświetlane dwa razy o_O
Ktoś wie czemu tak jest?

Dobra, mam. Kod ma być:
  1. <?php
  2. $zapytanie="SELECT * FROM users WHERE nick='$nick'";
  3. $wykonaj=mysql_query($zapytanie);
  4. $wynik=mysql_fetch_array($wykonaj, MYSQL_ASSOC);
  5. echo implode(",", $wynik);
  6. ?>


Ten post edytował Sky_walker 11.11.2006, 18:27:40


--------------------
Pomogłem? Kliknij poniżej.
Dzięki! :D
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




pomietasz jak w poprzednim poscie ci napisalem bys zaprzyjaznil sie z manualem?

http://pl.php.net/manual/pl/function.mysql-fetch-array.php
zobacz co ta funkcja zwraca i doczytaj co zrobic by zwracala tylko raz tudziez doczytaj jaki jest jej odpowiednik co zwraca tylko raz

edit: brawo smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Sky_walker
post
Post #10





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


Dobra, gotowy kod <dla mniej cierpliwych winksmiley.jpg > :

  1. <?php
  2. $tresc="";
  3. echo "$nick - nick<br>";
  4.  
  5. $zapytanie="SELECT * FROM users WHERE nick='$nick'";
  6. $wykonaj=mysql_query($zapytanie);
  7. $wynik=mysql_fetch_array($wykonaj, MYSQL_ASSOC);
  8.  
  9. foreach ($wynik as $wynik) {
  10.  $tresc=$tresc."'".$wynik."', ";
  11. }
  12. echo $tresc;
  13. ?>

Zwraca on np.:
Cytat
'4', 'Sky_walker', 'pwd', 'mail',

czyli wartości wszystkich kolumn dla konkretnego nicka zamknięte w ' ' (pojedyńcze uszy) i oddzielone przecinkami.
Mam nadzieję, że się komuś przyda winksmiley.jpg


--------------------
Pomogłem? Kliknij poniżej.
Dzięki! :D
Go to the top of the page
+Quote Post
rozny
post
Post #11





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


Cytat(Sky_walker @ 11.11.2006, 20:50:34 ) *
  1. <?php
  2.  foreach ($wynik as $wynik) {
  3.  $tresc=$tresc."'".$wynik."', ";
  4. }
  5. echo $tresc;
  6. ?>


A mi ta petelka zwraca taki oto error: Warning: Invalid argument supplied for foreach() in C:\Program Files\VertrigoServ\www\engine\add_product.php on line 30

  1. <?php
  2.  
  3. $TOWARY = $_GET['TOWARY'];
  4. $ID_DZIALY = $_GET['ID_DZIALY'];
  5. $KOD = $_GET['KOD'];
  6. $CENA = $GET_['CENA'];
  7. $connect = mysql_connect('localhost', '***', '***)
  8.  
  9. or die('Brak polaczenia z serwerem mySQL.<br />Błąd: '.mysql_error());
  10.  
  11. echo ("Polaczenie z serwerem jest aktywne.<br/>");
  12.  
  13. $db = mysql_select_db('sklep', $connect)
  14.  
  15. or die('Brak polaczenia z baza danych<br />Blad: '.mysql_error());
  16.  
  17. echo ("Polaczenie z baza danych jest aktywe.<br />");
  18.  
  19. $add = mysql_query("INSERT INTO `magazyn` (`ID` , `TOWARY` , `ID_DZIAL` , `KOD` , `CENA`)
  20.  
  21. VALUES (NULL, '$TOWARY' , '$ID_DZIALY' , '$KOD' , '$CENA' ) ");
  22.  
  23. if ($add) echo ("Towar dodany poprawnie");
  24. else echo ("Nie dodano towaru");
  25.  
  26. $show = "SELECT * FROM magazyn WHERE towary='$towary'";
  27. $wykonaj = mysql_query("$show");
  28. $wynik = mysql_fetch_array($wykonaj, MYSQL_ASSOC);
  29.  
  30. foreach ($wynik as $wynik) {
  31. $tresc = $tresc."'".$wynik."', ";
  32. }
  33. echo $tresc;
  34. ?>


Skrypcik chodzi fajnie, dodaje co chce, ale jakos na koncu wywala mi ta petle. Pisze dopiero pierwszy skrypt php+mySQL wiec jestem strasznym noobem w tym temacie. Manual mi niebardzo pomogl :/

Nie widze powodu dla ktorego to mi sie wysypuje sad.gif

pomozcie jak mozecie smile.gif (a wiem ze mozecie winksmiley.jpg )

Ten post edytował rozny 20.11.2006, 16:32:25
Go to the top of the page
+Quote Post
radziowi
post
Post #12





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 9.10.2006
Skąd: Brzozów

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


Zamiast pętli foreach zastosuj:
  1. <?php
  2. while($wynik=mysql_fetch_array($wykonaj)){
  3. echo $wynik['nazwa'];
  4. }
  5. ?>


Ten post edytował radziowi 21.11.2006, 00:04:53


--------------------
Go to the top of the page
+Quote Post
rozny
post
Post #13





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


Dobra wymiekam... Zmienilem Tak jak sugerowales jednak dalej nie zwracalo nic, zamienilem echo (""); na print_r(""); i poprawilem tez zapytanie do bazy danych bo bylo nie prawidlowe i teraz kod wyglada tak:

  1. <?php
  2. $show = 'SELECT * FROM `magazyn` ORDER BY `magazyn` . `TOWARY` ASC LIMIT 0, 30 ';
  3. $wykonaj = mysql_query("$show");
  4.  
  5. while($wynik=mysql_fetch_array($wykonaj)){
  6. print_r ("$wynik"). mysql_error;
  7. }
  8. ?>


A co mi zwraca? Prosze:

Cytat
ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
ArrayArrayArrayArray


No i nie wiem, zwraca mi tablice... ale jakos nie dzieki za taka tablice winksmiley.jpg

pomozcie winksmiley.jpg

Ten post edytował rozny 21.11.2006, 10:41:13
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie print_r ("$wynik")
a print_r ($wynik).
Wielka roznica.
Dostaniesz zawartosc tablicy tongue.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rozny
post
Post #15





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


dzieki dzieki smile.gif tylko zwraca mi wartosci tablicy w takiej formie:

  1. Array ( [0] => 1 [ID] => 1 [1] => 23423rfas [TOWARY] => 23423rfas [2] => 1 [ID_DZIAL] => 1 [3] => 1234 [KOD] => 1234 [4] => 0 [CENA] => 0 ) Array ( [0] => 8 [ID] => 8 [1] => bemar [TOWARY] => bemar [2] => 1 [ID_DZIAL] => 1 [3] => dmp0901 [KOD] => dmp0901 [4] => 0 [CENA] => 0 ) Array ( [0] => 9 [ID] => 9 [1] => bemar [TOWARY] => bemar [2] => 1 [ID_DZIAL] => 1 [3] => DM-S-1230 [KOD] => DM-S-1230 [4] => 0 [CENA] => 0 ) Array ( [0] => 7 [ID] => 7 [1] => janek [TOWARY] => janek [2] => 6 [ID_DZIAL] => 6 [3] => jan-121-ek [KOD] => jan-121-ek [4] => 0 [CENA] => 0 ) Array ( [0] => 10 [ID] => 10 [1] => sadasd [TOWARY] => sadasd [2] => 1 [ID_DZIAL] => 1 [3] => sad12412 [KOD] => sad12412 [4] => 0 [CENA] => 0 ) Array ( [0] => 11 [ID] => 11 [1] => sadasd [TOWARY] => sadasd [2] => ...


pewno w manuali musze pogrzebac? Nie wiem... Zwaraca mi cala tablice a nie same jej wartosci? Dobrze rozumuje?
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://pl.php.net/manual/pl/language.types.array.php
tam masz napisane co i jak


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rozny
post
Post #17





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


Szczerze mowiac to zglupialem juz zupelnie sad.gif Rozumiem ze musze niejako sformatowac ta tablice do odpowiedniego wyswietlenia samych danych, ale jak?

  1. <?php
  2. $show = 'SELECT * FROM `magazyn` ORDER BY `magazyn` . `ID` ASC LIMIT 0, 30 ';
  3.  
  4. $wykonaj = mysql_query("$show");
  5.  
  6. $wynik=mysql_fetch_array($wykonaj);
  7.  
  8. $tablica = array($wynik);
  9.  
  10.  print_r ($tablica). mysql_error;
  11.  
  12. ?>


Jakos nie wydaje mi sie zeby to mialo zadzialac :/

Ten post edytował rozny 21.11.2006, 14:04:31
Go to the top of the page
+Quote Post
nospor
post
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tablica sklada sie z klucza i wartosci. chcac wyswietlic dana wartosc z klucza robisz $tab['klucz'], czyli dla towarow u ciebie:

  1. <?php
  2. while($wynik=mysql_fetch_array($wykonaj)){
  3.  echo 'Towary: '.$wynik['TOWARY'];
  4. //analogicznie inne pozycje z tablicy
  5. }
  6. ?>

ale to bylo w linku co ci podalem. trzeba bylo sie troche nad tym zastanowic tongue.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rozny
post
Post #19





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


Dzieki wielkie smile.gif O to mi wlasnie chodzilo, ale nie ogarnalem tego winksmiley.jpg

Jeszcze na maaaaaaaaaaaaaaksa duzo nauki i cwiczen przede mna smile.gif

dzieki jeszcze raz i pozdrawiam smile.gif

EDIT: Jest jeszcze tylko maly problem przy zapisywaniu danych do bazy. Zapisuje mi prawidlowo wszystkie dane ktore podam w formularzu, oprocz ceny.. Nie wiem gdzie moze lezec blad. Oto kod:

  1. <?php
  2. $TOWARY = $_GET['TOWARY'];
  3. $ID_DZIALY = $_GET['ID_DZIALY'];
  4. $KOD = $_GET['KOD'];
  5. $CENA = $GET_['CENA'];
  6. $connect = mysql_connect('localhost', '***', '***')
  7.  
  8. or die('Brak polaczenia z serwerem mySQL.<br />Błąd: '.mysql_error());
  9.  
  10. echo ("Polaczenie z serwerem jest aktywne.<br/>");
  11.  
  12. $db = mysql_select_db('sklep', $connect)
  13.  
  14. or die('Brak polaczenia z baza danych<br />Blad: '.mysql_error());
  15.  
  16. echo ("Polaczenie z baza danych jest aktywe.<br />");
  17.  
  18. $add = mysql_query("INSERT INTO `magazyn` (`ID` , `TOWARY` , `ID_DZIAL` , `KOD` , `CENA`)
  19.  
  20. VALUES (NULL, '$TOWARY' , '$ID_DZIALY' , '$KOD' , '$CENA' ) ");
  21.  
  22. if ($add) echo ("Towar dodany poprawnie");
  23. else echo ("Nie dodano towaru");
  24.  
  25. ?>


Pole 'cena' ma wlasciwosc: int(255), wiec powinien przyjmowac liczby, a zapisuje zawsze 0. Nie wiem czy jest blad w skrypcie zapisujacym (wg. mnie tam bledu nie ma), czy moze problem tkwi w nieodpowiednim ustawieniu wlasciwosci pola 'cena'

...

EDIIE(T): Dobra juz sobie poradzilem smile.gif tnx anyway smile.gif

Ten post edytował rozny 21.11.2006, 16:15:19
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 Aktualny czas: 19.08.2025 - 10:20