Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Dane z mysql do tablicy
Mayka
post 4.07.2012, 13:43:54
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Witam

Panowie bo walcze dzis cały dzień z tym i jakoś nie moge sobie poradzić z tym. Mogłby ktoś pomóc ?
Mam sobie tabele w mysql i pobieram to do php i chciałbym to 'posadzić' w tablicy wszystko pięknie tylko niewiem jak sie do tego dostać pozniej... Ew może coś zle robie...
  1. $war="SELECT nazwy FROM images WHERE id='$produkt'";
  2. $result=mysql_query($war);
  3. while($row=mysql_fetch_array($result)) {
  4. $return_tablica[] = $row;
  5. }

i przy print_r dostaje:
  1. Array ( [0] => Array ( [0] => 36070arag2 [nazwa] => 36070arag2 ) [1] => Array ( [0] => 89859ozdoby [nazwa] => 89859ozdoby ) )


A teraz chciałbym mieć każda nazwe w oddzielnej linijce, jak wpisze $return_tablica[1] to powinienym dostać 2 wynik (89859ozdoby) a dostaje 'Array'.. Mogłby mi ktoś to ogarnąć, bo ja juz niemam siły na to.. Ew. jak sie dobrać do tego ? Bo jakieś zaćmienie mnie dzis ogarnia..

Ten post edytował Mayka 4.07.2012, 13:44:35
Go to the top of the page
+Quote Post
Tajgeer
post 4.07.2012, 13:54:41
Post #2





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


  1. <?php
  2. $war="SELECT nazwy FROM images WHERE id='$produkt'";
  3. $result=mysql_query($war);
  4. $array = array();
  5.  
  6. while ($row = mysql_fetch_array($result))
  7. {
  8. array_push($array, $row['nazwy']);
  9. }
  10.  
  11. print_r($array);
  12. ?>


Ten post edytował Tajgeer 4.07.2012, 13:55:26
Go to the top of the page
+Quote Post
mikolaj51
post 4.07.2012, 13:57:58
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 13
Dołączył: 16.03.2012

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


Witaj

  1.  
  2. $war="SELECT nazwy FROM images WHERE id='$produkt'";
  3. $result=mysql_query($war);
  4. $tablica = mysql_fetch_array($result);
  5.  
  6. echo $tablica[1];
Go to the top of the page
+Quote Post
Rysh
post 4.07.2012, 13:59:54
Post #4





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Walnij sobie:
  1. echo "<pre>";
  2. print_r($return_tablica);
  3. echo "</pre>";

I zobaczysz że każda kolumna jest w oddzielnej linijce.


--------------------
Go to the top of the page
+Quote Post
Mayka
post 4.07.2012, 14:33:42
Post #5





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Tajgeer Dzieki, działa tak jak powinno wink.gif podziękowanie poszły wink.gif

A teraz mam jeszcze takie pytanie, jak mam w tabeli w mysqlu cos takiego:
|id|nazwa|typ|
1 | nazwa1 | typ1 |
2 | nazwa2 | typ1 |
3 | nazwa3 | typ1 |
4 | nazwa4 | typ2 |
5 | nazwa5| typ3|

I teraz żeby nie robić 3 zapytań można to jakoś wrzucić do tablicy i pozniej wyświetlać tylko te które mają np typ 2 z poziomu juz php ?

Jakieś pomysły ?

Ten post edytował Mayka 4.07.2012, 14:37:20
Go to the top of the page
+Quote Post
Tajgeer
post 4.07.2012, 14:40:18
Post #6





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Pobrać wszystkie rekordy do tablicy i później porównywać jedno z pól.

  1. <?php
  2. $query = mysql_query('SELECT * FROM tabela');
  3. $array = array();
  4. while ($row = mysql_fetch_array($query))
  5. {
  6. array_push($array, $row);
  7. }
  8.  
  9. foreach ($array as $row)
  10. {
  11. if ($row['typ'] == 'typ2')
  12. {
  13. // operacje
  14. }
  15. }
  16. ?>


Albo po prostu dodać warunek do zapytania SQL tak, aby wyciągnął tylko te rekordy, które mają 'typ' równy 'typ2'

Ten post edytował Tajgeer 4.07.2012, 14:43:43
Go to the top of the page
+Quote Post
Mayka
post 4.07.2012, 15:06:01
Post #7





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Dobra to już ostatnie pytanie obiecuje ;P
A jak teraz policzyć ile jest elementów danego typu ?

bo tak
foreach ($array as $row)
{
if ($row['typ'] == 'typ2')
{
$ile = cout(['typ']);
}
}

To pokazuje 1.. a jest ich 6.. Jak to policzyć ?
Go to the top of the page
+Quote Post
Tajgeer
post 4.07.2012, 15:11:09
Post #8





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


  1. <?php
  2. $ile = 0; // inicjalizacja licznika (iteratora)
  3. foreach ($array as $row)
  4. {
  5. if ($row['typ'] == 'typ2')
  6. {
  7. // operacje
  8.  
  9. $ile++; // zwiekszenie licznika
  10. }
  11. }
  12.  
  13. echo $ile;
  14. ?>


Ten post edytował Tajgeer 4.07.2012, 15:11:25
Go to the top of the page
+Quote Post
Mayka
post 4.07.2012, 15:12:14
Post #9





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Cytat(Tajgeer @ 4.07.2012, 16:11:09 ) *
  1. <?php
  2. $ile = 0; // inicjalizacja licznika (iteratora)
  3. foreach ($array as $row)
  4. {
  5. if ($row['typ'] == 'typ2')
  6. {
  7. // operacje
  8. ile++
  9. }
  10. }
  11.  
  12. echo $ile;
  13. ?>


Ja w momęcie ile++ już musze wiedzieć ile jest elementów wink.gif



Ten post edytował Mayka 4.07.2012, 15:31:04
Go to the top of the page
+Quote Post
mikolaj51
post 4.07.2012, 15:41:09
Post #10





Grupa: Zarejestrowani
Postów: 59
Pomógł: 13
Dołączył: 16.03.2012

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


Najlepiej zrobić tak jak pisał ~Tajgeer. A dlaczego musisz mieć już te dane w tamtym momencie?

Ten post edytował mikolaj51 4.07.2012, 15:43:17
Go to the top of the page
+Quote Post
Mayka
post 4.07.2012, 16:26:40
Post #11





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Po każdym z tych elementów potrzebuje wstawić przecinek prócz ostatniego. ew może można to zrobić inaczej ?
Go to the top of the page
+Quote Post
Tajgeer
post 4.07.2012, 21:17:02
Post #12





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Wstaw przecinek po każdym i dopiero za pętlą obetnij nadmiarowy przecinek (rtrim).
Go to the top of the page
+Quote Post
Mayka
post 5.07.2012, 11:46:49
Post #13





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Działa, dzięki piękne za pomoc.
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: 19.07.2025 - 11:45