Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odczyt z tablicy wielowymiarowej
Forum PHP.pl > Forum > PHP
ktuvok
Zapakowałem stawki VAT do tablicy:
  1. <?php
  2.  
  3. $PobierzStawki = mysql_query(&#092;"SELECT * FROM StawkiVAT\");
  4. while($TablicaStawek = mysql_fetch_assoc($PobierzStawki))
  5. {
  6. $TabStawki[][0] = $TablicaStawek['IDStawki'];
  7. $TabStawki[][1] = $TablicaStawek['NazwaStawki'];
  8. $TabStawki[][2] = $TablicaStawek['Stawka'];
  9. }
  10.  
  11. ?>

i teraz chciałbym wyświetlić odpowiednie stawki w polu SELECT:
  1. <?php
  2.  
  3. echo&#092;"<SELECT>\";
  4. foreach($TabStawki as $v)
  5. {
  6. echo &#092;"<OPTION value=\"$v[0]\">$v[1]</OPTION>\";
  7. }
  8. echo&#092;"</SELECT>\";
  9.  
  10. ?>

Ale pakuje mi do selekta wszystkie elementy tablicy, a nie tylko [1]... Dlaczego??

Nie mogę odwołać się w selekcie bezpośrednio do mysql_fetch_assoc(), bo takich selektów mam kilkanaście na jednym formularzu.

Pozdrawiam,
K
SongoQ
  1. <?php
  2.  
  3. $i = 0;
  4. while($TablicaStawek = mysql_fetch_assoc($PobierzStawki))
  5. {
  6. $TabStawki[$i][0] = $TablicaStawek['IDStawki'];
  7. $TabStawki[$i][1] = $TablicaStawek['NazwaStawki'];
  8. $TabStawki[$i][2] = $TablicaStawek['Stawka'];
  9. $i++;
  10. }
  11.  
  12. ?>
ktuvok
Dzięki, zadziałało... Ciekawe, dlaczego wymuszenie indeksu robi tu jakąś różnicę. Na mój gust powinno wystarczyć zwykłe
  1. <?php
  2.  
  3. $ZmiennaTablicowa[] = ...
  4.  
  5. ?>

ale jak widać gust nie zawsze dobrym doradcą jest smile.gif

Pozdrawiam,
K
Adiasz
to nie jest kwestia gustu ;-)

roznica polega na tym ze w Twoj skrypt generuje tablice typu
$TabStawki[ 0 ][0] = $TablicaStawek['IDStawki'];
$TabStawki[ 1 ][1] = $TablicaStawek['NazwaStawki'];
$TabStawki[ 2 ][2] = $TablicaStawek['Stawka'];
3
4

( jezeli nie okreslasz indexu, to zstaje on powiekszony przy kazdym podstawieniu )

natomiast poprawny kod SongoQ generuje:
$TabStawki[ 0 ][0] = $TablicaStawek['IDStawki'];
$TabStawki[ 0 ][1] = $TablicaStawek['NazwaStawki'];
$TabStawki[ 0 ][2] = $TablicaStawek['Stawka'];
1
1

( pierwszy index zwiekszany jest, dopiero po wstawieniu wszystkich danych rekordu )
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.