Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Array w pętli while
Forum PHP.pl > Forum > Przedszkole
Ruio
Problem polega na tym iż potrafię pobrać 1 rekord natomiast większej ilości nie umiem przekazać. oto kod:

  1. $kategorie = mysql_query('SELECT `id`, `nazwa` FROM kategorie');
  2. while ($dane = mysql_fetch_array($kategorie)){
  3. $tablica = array($dane['id'] => $dane['nazwa']);
  4. }
  5. echo $form-> add_select('kategoria',$tablica);


Proszę o pomoc i pozdrawiam.
marcio
  1.  
  2. $kategorie = mysql_query('SELECT `id`, `nazwa` FROM kategorie');
  3.  
  4. while ($dane = mysql_fetch_array($kategorie)){
  5.  
  6. $tablica[] = $dane;
  7.  
  8. }
  9.  
  10. foreach($tablica as $value) // lub dajesz $tablica as $key => $value nie wiem jakie dane obrabia metoda add_select
  11. echo $form-> add_select('kategoria',$value);
Wicepsik
  1. $tablica[] = ...
Ruio
niestety nie działa ;/ moze coś pomoże jak podrzucę kod metody add_select

  1. public function add_select($name, $options) {
  2. $code = '<select name="'.$name.'">';
  3. foreach($options as $value => &$text) {
  4. $code .= '<option value="'.$value.'">'.$text.'</option>';
  5. }
  6. $code .= "</select>";
  7. return $code;
  8. }


Próbowałem chyba juz wszystkiego i za kazdym razie w najlepszym układzie wychodzą (zamiast 1 selecta z 3 opcjami ) 3 selecty w każdym po 1 opcji tongue.gif
marcio
Metoda add_select dobrze wyglada.Wiec popraw tylko ten kawalek co ci podalem wyzej na taki:
  1.  
  2. $kategorie = mysql_query('SELECT `id`, `nazwa` FROM kategorie');
  3.  
  4. while ($dane = mysql_fetch_array($kategorie)){
  5.  
  6. $tablica[] = array($dane['id'] => $dane['nazwa']);
  7.  
  8. }
  9.  
  10. foreach($tablica as $value) // lub dajesz $tablica as $key => $value nie wiem jakie dane obrabia metoda add_select
  11. echo $form-> add_select('kategoria',$value);

Powinno hulac jak nie ostatnie 2 linijki zmien na takie:
  1. foreach($tablica as $key => $value)
  2. echo $form-> add_select('kategoria',$value);

Z tym ze kod podaje troche w ciemno bo nie testowalem, lecz powinno dzialac :]

P.S wyzuc ten & z foreach w metodzie add_select bo raczej jest on zbedny snitch.gif
Wicepsik
  1. public function add_select($name, $options) {
  2. $code = '<select name="'.$name.'">';
  3. foreach($options as $v) {
  4. foreach($v as $value => $text){
  5. $code .= '<option value="'.$value.'">'.$text.'</option>';
  6. }
  7. }
  8. $code .= "</select>";
  9. return $code;
  10. }
  11.  
  12.  
  13. $kategorie = mysql_query('SELECT `id`, `nazwa` FROM kategorie');
  14.  
  15. while ($dane = mysql_fetch_array($kategorie, MYSQL_ASSOC){
  16.  
  17. $tablica[] = $dane;
  18.  
  19. }
  20.  
  21. echo $form->add_select('kategoria', $tablica);


Cytat(marcio @ 20.05.2010, 18:28:08 ) *
Metoda add_select dobrze wyglada.


Metoda add_select nie jest dobra, ponieważ wywołując za każdym razem w pętli tworzy się nowy select.
Ruio
marcio twój kod nie ma ochoty działać smile.gif wicepsik twój prawie działa ale wyświetla mi wszystko nie tam gdzie trzeba tzn np:

  1. <option value="id">2</option><option value="nazwa">PHP</option>


a powinno być coś alla:

  1. <option value="2">PHP</option>


Wicepsik
  1. public function add_select($name, $options) {
  2. $code = '<select name="'.$name.'">';
  3. foreach($options as $v) {
  4. foreach($v as $value => $text){
  5. $code .= '<option value="'.$value.'">'.$text.'</option>';
  6. }
  7. }
  8. $code .= "</select>";
  9. return $code;
  10. }
  11.  
  12.  
  13. $kategorie = mysql_query('SELECT `id`, `nazwa` FROM kategorie');
  14.  
  15. while ($dane = mysql_fetch_array($kategorie, MYSQL_ASSOC){
  16.  
  17. $tablica[] = array($dane['id'] => $dane['nazwa']);
  18.  
  19. }
  20.  
  21. echo $form->add_select('kategoria', $tablica);


Tak trudno popatrzeć w kod i zobaczyć co zmieniłem? dry.gif
Ruio
dzięki ogromne i sorki za to ostatnie pytanie. Szukałem nie tego co trzeba ;]
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.