Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tablice
Forum PHP.pl > Forum > Przedszkole
Lonas
Hej. Mam pytanie. Mam takie oto zapytania.
1 dotyczy danych kontrahenta na fakturze i wszystko jest ok.
2 dotyczy produktow na fakturze. Mianowicie mam taki problem jak po wykorzystaniu ponizszego sposobu wyswietlic produktu na fakturze jesli jest ich wiecej niz 1 ?

  1. <?php
  2.  
  3.  
  4. $result = mysql_query(" select odbiorca,adresodbiorcy,miasto,kod,rodzajdokumentu, platnosc, datasprzedaz
    y, datawystawienia, terminplatnosci, uwagi
  5. from faktura
  6.  where id='".$_SESSION['ostatnieid']."'") or die(mysql_error());
  7.  
  8. while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
  9.  $odbiorca =$row["odbiorca"]; 
  10.  $adres =$row["adresodbiorcy"];
  11.  $miasto =$row["miasto"];
  12.  $kod =$row["kod"]; 
  13.  $rodzajdokumentu=$row["rodzajdokumentu"];
  14.  $platnosc=$row["platnosc"];
  15.  $datasprzedazy=$row["datasprzedazy"]; 
  16.  $datawystawienia=$row["datawystawienia"]; 
  17.  $terminplatnosci=$row["terminplatnosci"];
  18.  $uwagi=$row["uwagi"];  
  19. }
  20. ?>




a tutaj moj problem : do zmiennej wpisywana jest ostatnia wartosc (logiczne smile.gif )
nie wiem jakim sposobem zrobic zeby wpisac wszystko czyli np 2,3 i wiecej produktow. tez znowu uzyc tablicy ?

  1. <?php
  2.  
  3.  
  4. $result2 = mysql_query(" select pkwiu,nazwa,ilosc,jm,cnetto, wnetto, upust, vat, wbrutto
  5. from faktura_pozycje
  6.  where id_faktura='".$_SESSION['ostatnieid']."'") or die(mysql_error());
  7. $num_results = mysql_num_rows($result2);
  8.  
  9. while ($row = mysql_fetch_array($result2, MYSQL_BOTH)) {
  10.  $pkwiu =$row["pkwiu"]; 
  11.  $nazwa =$row["nazwa"];
  12.  $ilosc =$row["ilosc"];
  13.  $jm =$row["jm"];
  14.  $cnetto =$row["cnetto"];
  15.  $wnetto =$row["wnetto"];
  16.  $upust =$row["upust"];
  17.  $vat =$row["vat"];
  18.  $wbrutto =$row["wbrutto"];
  19. }
  20.  
  21. ?>
nospor
nie za bardzo wiem czy cie dobrze zrozumialem.

Wkladaj wiersze do tablicy i juz:
  1. <?php
  2.  
  3. $result2 = mysql_query(" select pkwiu,nazwa,ilosc,jm,cnetto, wnetto, upust, vat, wbrutto
  4. from faktura_pozycje
  5.  where id_faktura='".$_SESSION['ostatnieid']."'") or die(mysql_error());
  6. $num_results = mysql_num_rows($result2);
  7. $rows = array();
  8. while ($row = mysql_fetch_array($result2, MYSQL_BOTH)) {
  9. $rows[] = $row;
  10. }
  11.  
  12. //dobieranie sie:
  13. echo $rows[0]['vat'];
  14. //...
  15. echo $rows[1]['vat'];
  16. //itd
  17.  
  18. ?>

oto chodzilo?
Lonas
Bo na stronie mam table w html i zalezy mi zebym mógl wynik zapisac sobie do zmiennej i w dowolnym miejscu strony ją użyć.

o to mi chodzi ale tez nie wiadomo ile pol bedzie na fakturze z produktami moze byc 5 produktów a moga byc 2..
wiec chyba nie moge tak w kodzie pisac

echo $rows[0]['vat'];
//...
echo $rows[1]['vat'];
//itd

moze jakas inna droga ?
nospor
count - zwraca ci rozmiar tablicy

pozatym jest foreach
Lonas
Okej wiec :

  1. <?php
  2.  
  3. $result2 = mysql_query(" select pkwiu,nazwa,ilosc,jm,cnetto, wnetto, upust, vat, wbrutto
  4. from faktura_pozycje
  5.  where id_faktura='".$_SESSION['ostatnieid']."'") or die(mysql_error());
  6. $num_results = mysql_num_rows($result2);
  7.  
  8. $row = mysql_fetch_array($result2, MYSQL_BOTH)) 
  9. foreach ($row as $v) {
  10.  print "Nazwa $row["nazwa"]: $v.n";
  11. }
  12.  
  13. ?>

wydaje mi sie ze cos takiego ma byc ? z tym ze gdzies jest blad skladni i nie widze gdzie
nospor
  1. <?php
  2.  print "Nazwa {$row['nazwa']}: $v.n";
  3. ?>

tylko czemu piszesz $row['nazwa']? NIe kumam. miales foreachem przeleciec tabele $rows. mowiles ze nie znasz ilosci wierszy. kolumny chyba wiesz jakie sa?
Lonas
Hm no tak bo mam kolumne nazwa, ilosc, wartosc i tak dalej , w kazdej sa np po 2 wartosci - i teraz wydawalo mi sie ze wyswietle wszytkie rekordy nazwa ?

w ten sposob dalej mi wywala blad skladni sad.gif

  1. <?php
  2. $row = mysql_fetch_array($result2, MYSQL_BOTH)) 
  3. foreach ($row as $v) {
  4.  print "Nazwa {$row["nazwa"]}: $v.n";
  5. }
  6. ?>
nospor
Cytat
w ten sposob dalej mi wywala blad skladni
Przyjrzyj sie jeszcze raz temu co ja napisalem, a temu co ty. Widzisz lekką roznice?

pomine tez szczegol ze zjadles srednik przed petlą
Lonas
  1. <?php
  2. $row = mysql_fetch_array($result2, MYSQL_BOTH))
  3. foreach ($row as $v); {
  4.  print "Nazwa {$row['nazwa']}: $v.n";
  5. }
  6. ?>



powinno byc dobrze ?
dalej mam ten blad skladni :/
mike
A po co Ci średnik po foreach() :?:
nospor
Cytat
pomine tez szczegol ze zjadles srednik przed petlą
czy ja nie wyraxnie pisze?przed pętla a nie w trakcie smile.gif

  1. <?php
  2. $row = mysql_fetch_array($result2, MYSQL_BOTH));
  3. foreach ($row as $v) {
  4.    print "Nazwa  {$row['nazwa']}: $v.n";
  5. }
  6. ?>
Lonas
nadal pisze ze jest blad skladni w tej lini :/

  1. <?php
  2. $row = mysql_fetch_array($result2, MYSQL_BOTH));
  3. ?>


Edit: bylo za duzo o jeden nawias :


czyli :

  1. <?php
  2. $row = mysql_fetch_array($result2, MYSQL_BOTH);
  3. foreach ($row as $v) {
  4.  print "Nazwa {$row['nazwa']}: $v.n";
  5. }
  6.  
  7. ?>

niestety pokazuje blad linia 49 to :

foreach ($row as $v) {


Warning: Invalid argument supplied for foreach() in c:\program files\easyphp1-8\www\baza\jakar\utworzona_faktura_gotowa.php on line 49
NuLL
Bo na koncu sa dwa nawiasy dry.gif.
mike
Argument dostarczony do foreach nie jest tablicą.

Sprawdź co zwraca funkcja mysql_fetch_array().
Możesz to zrobić tak:
  1. <?php
  2.  
  3. $row = mysql_fetch_array($result2, MYSQL_BOTH);
  4. echo '<pre>' . print_r( $row, true ) . '</pre>';
  5. // ...
  6.  
  7. ?>
Lonas
Hm dziwnie faktycznie bo jesli dam 2 produkty to po sprawdzeniu widac tylko ten ostatni :

Array
(
[0] => 0
[pkwiu] => 0
[1] => boxer malowany 1
[nazwa] => boxer malowany 1
[2] => 1
[ilosc] => 1
[3] => szt
[jm] => szt
[4] => 0
[cnetto] => 0
[5] => 0
[wnetto] => 0
[6] => 0
[upust] => 0
[7] => 22
[vat] => 22
[8] => 0
[wbrutto] => 0
)

zapytanie wyglada tak :

  1. <?php
  2. $result2 = mysql_query(" select pkwiu,nazwa,ilosc,jm,cnetto, wnetto, upust, vat, wbrutto
  3.  
  4. from faktura_pozycje
  5.  where id_faktura='".$_SESSION['ostatnieid']."'") or die(mysql_error());
  6. $num_results = mysql_num_rows($result2);
  7. ?>
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.