Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP i mySQL] problem z petlą FOREACH
bero
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.03.2005

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


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
Go to the top of the page
+Quote Post
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


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!


--------------------
Go to the top of the page
+Quote Post
AxZx
post
Post #3





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


skorzystam z topicu o petli:)

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


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
strife
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


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!

Ten post edytował scarface 20.03.2005, 14:53:41


--------------------
Go to the top of the page
+Quote Post
bero
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.03.2005

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


Dzieki Scarface sprawdze ta tablice... a co to jest BBcode?questionmark.gif oświecisz mnie...
Go to the top of the page
+Quote Post
AxZx
post
Post #6





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


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

Ten post edytował AxZx 20.03.2005, 21:45:03


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
madrag
post
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.03.2005

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


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
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
madrag
post
Post #9





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.03.2005

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


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 ?
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ociu
post
Post #11





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




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. ?>
?
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie, $_POST['cos'] sluzy do odebrania wartości pola formularza. Pole nazywa się cos, czyli np. <input name="cos" ... >


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
madrag
post
Post #13





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.03.2005

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


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......
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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"

Ten post edytował nospor 21.03.2005, 14:03:17


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 10:23