Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Dane z mysql do tablicy
Forum PHP.pl > Forum > Przedszkole
Mayka
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..
Tajgeer
  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. ?>
mikolaj51
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];
Rysh
Walnij sobie:
  1. echo "<pre>";
  2. print_r($return_tablica);
  3. echo "</pre>";

I zobaczysz że każda kolumna jest w oddzielnej linijce.
Mayka
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 ?
Tajgeer
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'
Mayka
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ć ?
Tajgeer
  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. ?>
Mayka
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

mikolaj51
Najlepiej zrobić tak jak pisał ~Tajgeer. A dlaczego musisz mieć już te dane w tamtym momencie?
Mayka
Po każdym z tych elementów potrzebuje wstawić przecinek prócz ostatniego. ew może można to zrobić inaczej ?
Tajgeer
Wstaw przecinek po każdym i dopiero za pętlą obetnij nadmiarowy przecinek (rtrim).
Mayka
Działa, dzięki piękne za pomoc.
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.