Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP i mySQL] problem z petlą FOREACH
Forum PHP.pl > Forum > Przedszkole
bero
Mam problem z petla foreach, otórz wykonuje mi sie tylko RAZ.... a powinna wiecej.

Kod ten ma sluzyc do zapisu w bazie danych zamowienia, ikazdy zamowiony produkt powinien byc zapisany w odzielnym rekordzie tabeli.

gdy zamowie np.3 produkty zapisuje tylko 1, ten pierwszy...

Uzywalem juz nieml identycznej petli do wyswietlenia zawartosci kosza i wszytsko bylo OK, tu jednak petla wykonuje sie raz i w nastepnej iteracji zapyatnie do bazy
nie daje wyniku...

czy cos jest nie tak z kodem questionmark.gif?



foreach( $HTTP_SESSION_VARS['koszyk'] as $idprod => $ilosc1 )
{
$dane=pobierz_dane_produktu($idprod);

$zapytanie = "delete from produkty_zamowione where
idzamowienia = '$idzam' and idprod = '$idprod'";
$wynik = mysql_query($zapytanie);

$nazwa=$dane['nazwa'];
$cena=$dane['Cena'];
$stan='przyjeto';


$zapytanie = "insert into produkty_zamowione (idzamowienia, idklienta, idprod, nazwa, cena_produktu, ilosc, stan_zamowienia)
VALUES('$idzam','$idklienta','$idprod', '$nazwa' , '$cena' , '$ilosc1','$stan')";

$wynik = mysql_query($zapytanie);

if(!$wynik)
echo'niezapisano<br>';
else
echo'zapisano pomyslnie<br>';


}

przykaldowy wynik kodu dla 3 produktow;

zapisano pomyslnie
niezapisano
niezapisano

w bazie zapisuje sie tylko 1 rekord, ten ktory sie wykonal....

a co zreszta?questionmark.gif czemu zapytanie do bazy nie chce sie wykonac kolejny raz?questionmark.gif
strife
Witam,

Sprawdź może tablicę $HTTP_SESSION_VARS['koszyk'] print_r(); - myślę że tu może być problem. Więcej z tego kodu nie da się odczytać - używaj BBcode do tego przeznaczony!

Pozdrawiam!
AxZx
skorzystam z topicu o petli:)

jak zrobc aby foreach nie wypisywala pierwszej lub ktorejs tam wartosci z tablicy?
strife
Cytat(AxZx @ 2005-03-20 13:25:18)
skorzystam z topicu o petli:)

jak zrobc aby foreach nie wypisywala pierwszej lub ktorejs tam wartosci z tablicy?

  1. <?php
  2.  
  3. $array = array('jeden', 'dwa', 'trzy', 'cztery');
  4.  
  5. foreach($array as $w => $i)
  6. {
  7. if ($w != 2)
  8. {
  9. echo $i;
  10. }
  11.  
  12. }
  13.  
  14. ?>

I powinno nie wyświetlić 2 elementu tablicy czyli 'trzy'.

Pozdrawiam!
bero
Dzieki Scarface sprawdze ta tablice... a co to jest BBcode?questionmark.gif oświecisz mnie...
AxZx
przyklad BBcode [php]
smile.gif masz w formularzu do pisania postow taka grupe guzikow
przyciski tagow
tam masz guziczek php

kliknij go zanim wkleisz jakis kod php
a na koniec kliknij drugi raz aby zamknac go
madrag
to sie ja tez podczepie
mam tablice np z 30 elementami, jak zrobic tak aby przy uzyciu petli np foreach
mozna bylo wyswietlic menu rozwiajne (element formularza z <option>).
dziekuje za odp
nospor
Przykładowo:
  1. <?php
  2.  
  3. echo &#092;"<select name='cos'>\";
  4. foreach ($tablica as $value=>$text)
  5. echo &#092;"<option value='$value'>$text</option>\";
  6. echo &#092;"</select>\";
  7.  
  8. ?>
madrag
ok to teraz takie cos... mam taki kod (tak sam jak wyzej tylko inne zmienne tongue.gif )
  1. <?php
  2. $glowne = array ('a','b','c');
  3. echo &#092;"<form method='post' action='index2.php'>\";
  4. echo &#092;"<select name='cos'>\";
  5. echo &#092;"<option selected value=''>Wybierz...</option>\";
  6. foreach ($glowne as $index => $danie) {
  7. echo &#092;"<option value='$index'>$danie</option>\";
  8. }
  9. echo &#092;"</select><br><br>\";
  10. echo &#092;"<input type='submit' value='Przejdź dalej'></form>\";
  11. ?>

i chodzi mi o to zeby przesalc wybrana opcje do nastepnej czesci formularza i ja tam przykladowo wyswietlic poleceniem echo, how to ?
nospor
Nadaj dla selecta name, np. name="sel". Potem po wyslaniu formularza odwolujesz się do tego poprzez $_POST['sel'].Będziesz miał wartość z opcji. Jak będziesz chial miec ten tekst to $glowne[$_POST['sel']], i juz
Ociu
nie kmie?
  1. <?php
  2. echo $_POST['cos'];
  3. ?>
?

  1. <?php
  2. echo &#092;"<form action=plik.php methon=POST>
  3. <input name=input value=&#092;".$_POST['cos'].\">
  4. </form>&#092;";
  5. ?>
?
nospor
nie, $_POST['cos'] sluzy do odebrania wartości pola formularza. Pole nazywa się cos, czyli np. <input name="cos" ... >
madrag
hmmm napisalem w index2.php tak
  1. <?php
  2. echo $_POST['sel'];
  3. ?>

i wyswietla mi klucz tzn 0, 1 albo 2 a chcialbym zeby mi wysiwtlilo a, b lub c.
Heh pogubilem sie w tym juz......
nospor
no tak. zeby dobrac sie do wartości musisz wyswietlic wartość twojej tablicy z tego indexu czyli
  1. <?php
  2.  
  3. echo $glowne[$_POST['sel']];
  4.  
  5. ?>


edit:
albo w <option zamiast value="$index" daj value="$danie"
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.