Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Identyfikacja wysłanej tablicy
Forum PHP.pl > Forum > Przedszkole
-Mariola-
Witam,



Napisałem w php wyświetlanie w tabeli produktów z bazy danych.


Chciałabym dokończyć tabelę dodając na końcu checkboxa oraz pole wpisania ilości zamówienia aczkolwiek stanęłam na przekazywaniu checkboxy na inną strone. Sytuacja wygląda tak, że podczas zaznaczania boxa na następnej stronie mam arraya wyglądającego mniej więcej tak:
  1. Array ( [super] => 1 [to_cos] => 1 )

I teraz pytanie brzmi jak do zmiennej przypisać owe produkty z bazy "super" oraz "to_cos" wraz z identyfikacją ID w bazie danych tak aby stworzyć podgląd zamówienia.

index.php
  1. <form action="odbieram.php" method="post" id="tabelabd">
  2. <?php include('config.php');
  3.  
  4. //$wybrana_kategoria=$_GET['kategoria'];
  5.  
  6. $zapytanie = mysql_query ("SELECT * FROM produkty") or die ("Błąd zapytania SQL");
  7. print "<TABLE ALIGN=CENTER MARGIN=15 CELLPADDING=5 BORDER=1>";
  8. print "<TR><TD>id</TD><TD>nazwa</TD><TD bgcolor='red'>Opis</TD><TD>Zdjecie</TD><TD>cena</TD><TD>Ilosc</TD></TR>\n";
  9. while ($wiersz = mysql_fetch_array ($zapytanie))
  10. {
  11.  
  12. $id = $wiersz[0];
  13. $nazwa = $wiersz[1];
  14. $opis = $wiersz[2];
  15. $zdjecie = $wiersz[3];
  16. $cena = $wiersz[4];
  17. $ilosc = $wiersz[5];
  18.  
  19. echo("<tr>");
  20. echo("<td>$wiersz[0]</td>");
  21. echo("<td>$wiersz[1]</td>");
  22. echo("<td>$wiersz[2]</td>");
  23. echo("<td>$wiersz[3]</td>");
  24. echo("<td>$wiersz[4]</td>");
  25. echo("<td>$wiersz[5]");
  26. if($wiersz[5] > 0){
  27.  
  28. echo "<Input type=\"checkbox\" name=\"$wiersz[1]\" value=\"1\">";
  29.  
  30.  
  31. }else {echo("</td>");}
  32. echo("</tr>");
  33.  
  34.  
  35.  
  36. }
  37. echo "<input type=\"submit\" value=\"Wyślij\" />";
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44. ?> </form>


odbieram.php
  1. print_r($_POST);


Pozdrawiam.
rad11
"I teraz pytanie brzmi jak do zmiennej przypisać owe produkty z bazy "super" oraz "to_cos""

tak jak sie przypisuje kazdego innego posta, a jesli chodzi o identyfikacje w bazie to najlepiej jak zamiast super albo to cos to poprostu zamienisz wartosci na id z bazy i wtedy poprzez te id bedziesz se mogl robic podglad zamowienia.

-Mariola-
Właśnie :
  1. foreach($_POST as $klucz => $wartosc){
  2.  
  3. echo "Klucz: $klucz; Wartość: $wartosc<br>n";
  4.  
  5. }

oraz:
  1. foreach($_POST as $cleo){
  2.  
  3. echo "$cleo";
  4.  
  5. }


Nie działa. Nie wiem jak wyciągnąć z tego arraya rekordy.
sazian
musi działać
masz jakieś błędy ?
-Mariola-
Żaden błąd, pusta strona.
sazian
daj pod pętlą jeszcze raz var_dump($_POST)
-Mariola-
Faktycznie stara wersja PHP. Teraz działa. Oto mój wynik:
  1. Klucz: 1; Wartosc: 1
  2. Klucz: 2; Wartosc: 1

Teraz już nie przeszukiwałam po nazwie a po ID stąd 1 i 2. Jak owe klucz przypisać do zmiennych dostępnych poza funkcją foreach?
sazian
foreach nie jest funkcją ;P

$zmienna = $_POST[1]; questionmark.gif
Gość
Cytat(sazian @ 6.06.2014, 21:07:53 ) *
foreach nie jest funkcją ;P

$zmienna = $_POST[1]; questionmark.gif

Ale to jest ustawienie ręczne $POSTu. Nigdy nie będę wiedziała ile i czego ktoś zamówił. Posiadam wgranego WebServa i podczas próby wyświetlenia rekordu z tabeli poleceniem:
  1. SELECT * FROM produkty WHERE id=1

Kolumna id jest. Próbowałam już `id`=1 oraz 'id'=1 i nic nie pomaga wyświetla wszystkie rekordy.
sazian
  1. $key=array_keys($_POST);
  2. foreach($key as $k=>$v)
  3. {
  4. $key[$k]=(int)$v;
  5.  
  6. }
  7. mysql_query('SELECT * FROM produkty WHERE id in ('.implode(',',$key).')');

pisane z palca
-Mariola-
Cytat(sazian @ 6.06.2014, 21:23:33 ) *
  1. $key=array_keys($_POST);
  2. foreach($key as $k=>$v)
  3. {
  4. $key[$k]=(int)$v;
  5.  
  6. }
  7. mysql_query('SELECT * FROM produkty WHERE id in ('.implode(',',$key).')');

pisane z palca


Niestety pusto. Jak w WebServie wpisuję w SQL okienku moje zapytania to nie działa. Co mogę robić nie tak?
-Mariola-
Witam.

Wczoraj prosiłam tu o pomoc. I to co chciałam to udało mi się zrobić, natomiast mam teraz pewien problem:

Index.php

  1. <form action="odbieram.php" method="post" id="tabelabd">
  2. <?php include('config.php');
  3.  
  4. //$wybrana_kategoria=$_GET['kategoria'];
  5.  
  6. $zapytanie = mysql_query ("SELECT * FROM produkty") or die ("Błąd zapytania SQL");
  7. print "<TABLE ALIGN=CENTER MARGIN=15 CELLPADDING=5 BORDER=1>";
  8. print "<TR><TD>id</TD><TD>nazwa</TD><TD bgcolor='red'>Opis</TD><TD>Zdjecie</TD><TD>dostepnosc</TD><TD>cena</TD><TD>wybierz_produkt</TD></TR>\n";
  9. while ($wiersz = mysql_fetch_array ($zapytanie))
  10. {
  11.  
  12. $id = $wiersz[0];
  13. $nazwa = $wiersz[1];
  14. $opis = $wiersz[2];
  15. $zdjecie = $wiersz[3];
  16. $dostepnosc = $wiersz[4];
  17. $cena = $wiersz[5];
  18. $wybierz_produkt = $wiersz[6];
  19.  
  20. echo("<tr>");
  21. echo("<td>$wiersz[0]</td>");
  22. echo("<td>$wiersz[1]</td>");
  23. echo("<td>$wiersz[2]</td>");
  24. echo("<td>$wiersz[3]</td>");
  25. echo("<td>$wiersz[4]</td>");
  26. echo("<td>$wiersz[5]</td>");
  27. echo("<td>$wiersz[6]");
  28. if($wiersz[4] = 'Tak'){
  29.  
  30. echo "<Input type=\"checkbox\" name=\"$wiersz[0]\" value=\"$wiersz[5]\">";
  31.  
  32. }else {echo("</td>");}
  33. echo("</tr>");
  34.  
  35. }
  36. echo "<input type=\"submit\" value=\"Wyślij\" />";
  37.  
  38. ?> </form>

wynik index.php


i po wybraniu produktów mój wynik to:

ID produktu: 1;
Cena za sztuke: 100
ID produktu: 2;
Cena za sztuke: 50

kod odbieram.php:
  1. <?php
  2.  
  3. foreach($_POST as $klucz => $wartosc){
  4. echo "ID produktu: $klucz; <br> Cena za sztuke: $wartosc <br>" ;
  5.  
  6. }
  7.  
  8. ?>



i teraz mam pytanie:

Jak podliczyć/zsumować ceny produktów questionmark.gif
wojtasklc
<?php

foreach($_POST as $klucz => $wartosc){
echo "ID produktu: $klucz; <br> Cena za sztuke: $wartosc <br>" ;
$suma=$suma+$wartosc;
}

?>

może tak? wink.gif
Marola
Wszystko działa, jest okay, dziękuję. I jeszcze jeden problem mam. Jak wyświetlić w tej mojej pętli foreach poza ID produktu i Ceną produktu również nazwę produktu ?

wojtasklc
może dodać ukryty input z wartością $wiersz[1]
później za pomocą print_r($_POST) zobaczyć sobie jakie masz wartości w poście przesyłane powinien tam być napisz co zwróciło
-Mariola-
po dodaniu za znacznikami
<?
?>

w index.php linijki

  1. <INPUT type="HIDDEN" NAME="$nazwa" VALUE="$wiersz[1]">


i wyświetleniu tablicy poleceniem print_r ($_POST); nic nie dzieje się. Hmm kombinuje już na wszystkie sposoby
wojtasklc
Cytat(-Mariola- @ 7.06.2014, 12:56:41 ) *
po dodaniu za znacznikami
<?
?>

w index.php linijki

  1. <INPUT type="HIDDEN" NAME="$nazwa" VALUE="$wiersz[1]">


i wyświetleniu tablicy poleceniem print_r ($_POST); nic nie dzieje się. Hmm kombinuje już na wszystkie sposoby


Nie wiem czy dobrze rozumiem

jak masz ta linijke
echo "<Input type=\"checkbox\" name=\"$wiersz[0]\" value=\"$wiersz[5]\">";
dodaj to samo tylko z type hidden, a value $wiersz[1]
tak robilas?
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.