Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pobieranie danych z tebeli, pobiera tylko 1 wiersz
mefistofeles
post
Post #1





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


Witam,

W tabeli 'kolory' (id_koloru, nazwa) przechowuje nazwy kolorów.
Chciałbym je wszystkie pobrać do zmiennej:

  1. <?php
  2. $wszystkie[] = mysql_fetch_row(mysql_query("SELECT `nazwa` FROM `kolory` WHERE id_koloru > 0"));
  3. //echo $wszystkie[0];
  4. echo '<pre>';
  5.    print_r($wszystkie);
  6.    echo '</pre>';
  7. ?>


W $wszystkie zapisuje mi się tylko jeden, pierwszy kolor (id = 1)
Jak pobrać wszystkie nazwy do tej zmiennej (tablicy) ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mefistofeles
post
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


Działa tylko sposó ktory zaproponował Zimekk:


  1. <?php
  2. $wszystkie = array();
  3. $zapytanie = mysql_query("SELECT `nazwa` FROM `kolory`");
  4. while($tabela = mysql_fetch_row($zapytanie))
  5. {
  6. array_push($wszystkie, $tabela);
  7. }
  8. print_r ($wszystkie);
  9. ?>


Pozostałe albo powoduja przekroczenie bufora pamięci (w tabeli są tylko 3 rekordy) albo się zapętlają
i strona się nie ładuje.



Jeszcze jedna rzecz.
Poszerzyłem ten skrypt o formularz, który generuje listę wszystkich kolorów (przy każdym jest checkbox)

  1. <?php
  2. $wszystkie = array();
  3. $zapytanie = mysql_query("SELECT `nazwa` FROM `kolory`");
  4. while($tabela = mysql_fetch_row($zapytanie))
  5. {
  6. array_push($wszystkie, $tabela);
  7. }
  8.  
  9.  
  10. $number = count($wszystkie);
  11.  
  12.  
  13. echo '<form method="post" action="">';
  14.  
  15. for ($i = 0; $i < $number; $i++)
  16. {
  17.    echo '<Input type="checkbox" name="'.$wszystkie[$i][0].'" value="' .$i. '">' . $wszystkie[$i][0];
  18. }
  19. echo '<input type="submit" value="OK">';
  20. ?>



Powiedzcie jako można by zrobić, że gdy użytkownik zaznaczy checkbox przy danym kolorze i kliknie ok, to wtedy w tabeli 'uzytkownicy' w polu
kolor zapisze się id tegoż właśnie koloru ? (foreach?)

Ten post edytował mefistofeles 23.06.2009, 05:13:39
Go to the top of the page
+Quote Post
Derw
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 19.03.2009

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


Po pierwsze lepszym rozwiazaniem było by chyba zamiast chexbox użyć radio ( chyba że użytkownik może wybrać kilka kolorów?) 

Nie wiem czy dobrze myślę ale ja bym zrobił to tak:

  1. <?php
  2. if(!empty($_POST['Kolor'])){
  3.  
  4. //i tutaj wykonujesz update do tabeli uzytkwnicy w zmiennej $_POST['Kolor'] będzie id  
  5. mysql_query('UPDATE Uzytkownicy SET kolor ="'.$_POST['Kolor'].'"
  6. WHERE login="'. $login.'"');
  7.  
  8. }
  9.  
  10. echo '<form method="post" action="">';
  11.  
  12. for ($i = 0; $i < $number; $i++)
  13. {
  14.    echo '<Input type="radio" name="Kolor" value="' .$i. '">' . $wszystkie[$i][0];
  15. }
  16. echo '<input type="hidden" value="'.$login.'">';
  17. echo '<input type="submit" value="OK">';
  18. ?>


zakładam że action będzie się odwoływać do tego samego pliku w którym znajduje się formularz, jeżeli nie to if trzeba będzie dodać do tego pliku na który wskazuje action.

Ten post edytował Derw 23.06.2009, 08:43:37
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.09.2025 - 05:17