Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Jak wstawić do tego skryptu sesje i potem je wyswielic :>
Forum PHP.pl > Forum > Przedszkole
FliSs_tCv
Cześć smile.gif mam problem z dodaniem 2 rodzajów produktów "pizza oraz dania". Mam zrobione że dodaje same pizze ale jak zrobić aby dodawało jeszcze dania questionmark.gif wygląda to tak że przesyłam te dane w ten sposób
"
  1. <?php
  2. $_SESSION['koszyk']['pizza'][$_POST['pizza']]['nazwa'] = $_POST['pizza'];
  3. $_SESSION['koszyk']['pizza'][$_POST['pizza']]['ilosc'] = $_POST['ilosc'];
  4. $_SESSION['koszyk']['pizza'][$_POST['pizza']]['wielkosc'] = $_POST['wielkosc'];
  5. $_SESSION['koszyk']['pizza'][$_POST['pizza']]['uwagi'] = $_POST['uwagi'];
  6. $_SESSION['koszyk']['pizza'][$_POST['pizza']]['dodatki'] = $_POST['dodatek'];
  7. ?>
"

i potem to wyswietlam tak

  1. <?php
  2. echo '<table style="width : 270px;">
  3. <tr>
  4. <td style="border : 1px solid white; text-align : center; color : #363636; background : white;">
  5.  
  6. Nazwa
  7. </td>
  8. <td style="border : 1px solid white; text-align : center; color : #363636; background : white;">
  9. Ilość
  10. </td>
  11. <td style="border : 1px solid white; text-align : center; color : #363636; background : white;">
  12. Wielkość
  13. </td>
  14. <td style="border : 1px solid white; text-align : center; color : #363636; background : white;">
  15. Usuń
  16. </td>
  17. </tr>';
  18. foreach ($_SESSION['koszyk'] as $danie => $wartosc){
  19.  echo '<tr>
  20.  <td style="height: 50px; border : 1px solid white; text-align : center;" colspan=5>
  21.  <b>Menu '.ucwords($danie).'</b>
  22.  </td>
  23.  </tr>';
  24. foreach ($wartosc as $cecha){
  25.  echo '<tr>
  26.  <td style="border : 1px solid white; text-align : center;">
  27.  '.$cecha['nazwa'].'
  28.  </td>
  29.  <td style="border : 1px solid white; text-align : center;">
  30.  '.$cecha['ilosc'].'
  31.  </td>
  32.  <td style="border : 1px solid white; text-align : center;">
  33.  '.przetworz_wielkosc($cecha['wielkosc']).'
  34.  </td>
  35.  <td style="border : 1px solid white; text-align : center;">
  36.  
  37.  <form action="index.php?page=koszyk" method="get" style="display:inline;">
  38. <div style="display:inline;">
  39. <input type="hidden" name="id" value="$indeks" />
  40. <input type="hidden" name="sz" value="0"
  41. style="width:25px;" />
  42. <input type="submit" value="usuń" style="width:45px;" />
  43. </div>
  44.  </form>
  45.  
  46.  </td>
  47. </tr>';
  48. }
  49. }
  50. echo '</table>';
  51. ?>


wynik po dodaniu poprzez formularz jakaś pizze smile.gif =>
bo jak dodałem to

  1. <?php
  2. $_SESSION['koszyk']['dania'][$_POST['dania']]['nazwa'] = $_POST['dania'];
  3. $_SESSION['koszyk']['dania'][$_POST['dania']]['ilosc'] = $_POST['ilosc'];
  4. ?>


to wyświetlam to teraz tak :

  1. <?php
  2. foreach ($_SESSION['koszyk'] as $pizza => $wartosc){
  3.  echo '<tr>
  4.  <td style="height: 50px; border : 1px solid white; text-align : center;" colspan=5>
  5.  <b>Menu '.ucwords($pizza).'</b>
  6.  </td>
  7.  </tr>';
  8. foreach ($wartosc as $cecha){
  9.  echo '<tr>
  10.  <td style="border : 1px solid white; text-align : center;">
  11.  '.$cecha['nazwa'].'
  12.  </td>
  13.  <td style="border : 1px solid white; text-align : center;">
  14.  '.$cecha['ilosc'].'
  15.  </td>
  16.  <td style="border : 1px solid white; text-align : center;">
  17.  '.przetworz_wielkosc($cecha['wielkosc']).'
  18.  </td>
  19.  <td style="border : 1px solid white; text-align : center;">
  20.  
  21.  <form action="index.php?page=koszyk" method="get" style="display:inline;">
  22. <div style="display:inline;">
  23. <input type="hidden" name="id" value="$indeks" />
  24. <input type="hidden" name="sz" value="0"
  25. style="width:25px;" />
  26. <input type="submit" value="usuń" style="width:45px;" />
  27. </div>
  28.  </form>
  29.  
  30.  </td>
  31. </tr>';
  32. }
  33. }
  34.  
  35. foreach ($_SESSION['koszyk'] as $danie => $wartosc){
  36.  echo '<tr>
  37.  <td style="height: 50px; border : 1px solid white; text-align : center;" colspan=5>
  38.  <b>Menu '.ucwords($danie).'</b>
  39.  </td>
  40.  </tr>';
  41. foreach ($wartosc as $cecha){
  42.  echo '<tr>
  43.  <td style="border : 1px solid white; text-align : center;">
  44.  '.$cecha['nazwa'].'
  45.  </td>
  46.  <td style="border : 1px solid white; text-align : center;">
  47.  '.$cecha['ilosc'].'
  48.  </td>
  49.  <td style="border : 1px solid white; text-align : center;">
  50. ------
  51.  </td>
  52.  <td style="border : 1px solid white; text-align : center;">
  53.  
  54.  <form action="index.php?page=koszyk" method="get" style="display:inline;">
  55. <div style="display:inline;">
  56. <input type="hidden" name="id" value="$indeks" />
  57. <input type="hidden" name="sz" value="0"
  58. style="width:25px;" />
  59. <input type="submit" value="usuń" style="width:45px;" />
  60. </div>
  61.  </form>
  62.  
  63.  </td>
  64. </tr>';
  65. }
  66. }
  67. ?>

wynik po dodaniu 2 pizz i jednego dania wygląda tak =>

nie wiem co robię zle, pomożecie mi z tym ? (wegetariana to te danie smile.gif )
nospor
czemu ty jedna tabele rozbijasz na dwa foreache
  1. <?php
  2. foreach ($_SESSION['koszyk'] as $pizza => $wartosc){
  3. foreach ($_SESSION['koszyk'] as $dania => $wartosc){
  4. ?>

?

Myslisz ze jak wpiszesz rosol:
  1. <?php
  2. foreach ($_SESSION['koszyk'] as $rosol => $wartosc){
  3. ?>

To ci sie rosol bedzie wyswietlal? To jest foreach, dla niego nazwa zmiennej nie ma zadnego znaczenia. Powinien to byc jeden foreach i on juz bedzie zawieral twoje jedzenie niezaleznie czy to pizza czy danie.
  1. <?php
  2. foreach ($_SESSION['koszyk'] as $jedzenie => $wartosc){
  3. ?>
FliSs_tCv
Ok. Mam poprawione i wyświetla mi teraz pojedyńczo smile.gif lecz jak dodaje coś z dań to bierze to jako pizze sad.gif bo przy połączeniu z bazą danych mam wybraną tabele pizza jak muszę wykonać zapytanie aby pobierało mi również z dania ;> ? a może co innego muszę wykonać ?
nospor
Ni w ząb nie kumam o czy ty teraz mowisz.
Jaka tabela? Kod co pokazales operuja na sesji a nie na bazie danych.
FliSs_tCv
hehe smile.gif nie pokazywałem całego kodu smile.gif pokażę więc cały kod winksmiley.jpg

  1. <?php
  2.  
  3. function przetworz_wielkosc($wielkosc){
  4. $przetworzona_wielkosc = ($wielkosc == 'm') ? 'mała' : 'duża';
  5. return $przetworzona_wielkosc;
  6. }
  7. $sql_serwer = "localhost";
  8. $sql_login = "";
  9. $sql_haslo = "";
  10. $sql_baza  = "caprii";
  11. $sql_tabela = "pizza";
  12.  
  13. mysql_connect($sql_serwer, $sql_login, $sql_haslo);
  14. mysql_select_db($sql_baza);
  15.  
  16. $_SESSION['koszyk']['pizza'][$_POST['pizza']]['nazwa'] = $_POST['pizza'];
  17. $_SESSION['koszyk']['pizza'][$_POST['pizza']]['ilosc'] = $_POST['ilosc'];
  18. $_SESSION['koszyk']['pizza'][$_POST['pizza']]['wielkosc'] = $_POST['wielkosc'];
  19. $_SESSION['koszyk']['pizza'][$_POST['pizza']]['uwagi'] = $_POST['uwagi'];
  20. $_SESSION['koszyk']['pizza'][$_POST['pizza']]['dodatki'] = $_POST['dodatek'];
  21.  
  22. $_SESSION['koszyk']['dania'][$_POST['dania']]['nazwa'] = $_POST['dania'];
  23. $_SESSION['koszyk']['dania'][$_POST['dania']]['ilosc'] = $_POST['ilosc'];
  24.  
  25. echo '<table style="width : 270px;">
  26. <tr>
  27. <td style="border : 1px solid white; text-align : center; color : #363636; background : white;">
  28. Nazwa
  29. </td>
  30. <td style="border : 1px solid white; text-align : center; color : #363636; background : white;">
  31. Ilość
  32. </td>
  33. <td style="border : 1px solid white; text-align : center; color : #363636; background : white;">
  34. Wielkość
  35. </td>
  36. <td style="border : 1px solid white; text-align : center; color : #363636; background : white;">
  37. Usuń
  38. </td>
  39. </tr>';
  40. foreach ($_SESSION['koszyk'] as $jedzenie => $wartosc){
  41.  echo '<tr>
  42.  <td style="height: 50px; border : 1px solid white; text-align : center;" colspan=5>
  43.  <b>Menu '.ucwords($jedzenie).'</b>
  44.  </td>
  45.  </tr>';
  46. foreach ($wartosc as $cecha){
  47.  echo '<tr>
  48.  <td style="border : 1px solid white; text-align : center;">
  49.  '.$cecha['nazwa'].'
  50.  </td>
  51.  <td style="border : 1px solid white; text-align : center;">
  52.  '.$cecha['ilosc'].'
  53.  </td>
  54.  <td style="border : 1px solid white; text-align : center;">
  55.  '.przetworz_wielkosc($cecha['wielkosc']).'
  56.  </td>
  57.  <td style="border : 1px solid white; text-align : center;">
  58.  
  59.  <form action="index.php?page=koszyk" method="get" style="display:inline;">
  60. <div style="display:inline;">
  61. <input type="hidden" name="id" value="$indeks" />
  62. <input type="hidden" name="sz" value="0"
  63. style="width:25px;" />
  64. <input type="submit" value="usuń" style="width:45px;" />
  65. </div>
  66.  </form>
  67.  
  68.  </td>
  69. </tr>';
  70. }
  71. }
  72. echo '</table>';
  73. ?>
nospor
Moze ja tepy jestem, ale gdzie tu pobieranie danych z bazy danych? Owsze, polaczenia z baza robisz, ale dane i tak z sesji pobierasz.

pozatym, czemu na pizze jest oddzielna tabela? Czy danie i pizza nie mogą byc w jednej tabeli?
FliSs_tCv
Nospor sorka kod który tutaj staram się udoskonalić jest Hazela (Użytkownik forum) pisał mi go lecz z przyczyn zdrowotnych nie może go dokończyć więc jak kazał mi z tym na forum uderzyć uderzam z tym na forum smile.gif pytam tylko co muszę zrobić aby to wykonać do końca smile.gif rozumiem twoje zniesmaczenie ;P

---- EDIT -----
Skoro piszesz po co to to pewnie nie potrzebne:/ eh lecz dlaczego on tam tego użył nie wiem sad.gif.
Czy mogę od was poprosić jakąś pomóc w tym aby to dokończyć ?

omal bym zapomiałbym mam podzielone pizze i dania na 2 tabele bo mam w daniach jescze podzielone to na kategorie smile.gif więc lepiej smile.gif
:)
Też chciałbym się dowiedzieć jak przekazać takie zmienne może ktoś by nam pomógł ?
nospor
No ale ja juz nie wiem z czym problem winksmiley.jpg

Czy problem jest, ze nie ma jeszcze pobierania z bazy? CZy problem nadal jest z tą sesja?

Co do dwoch tabel: to co ze masz kategorie w daniach? Pizza moze byc bez kategorii i tez bedzie git winksmiley.jpg
Moze faktycznie podzial na dwie tabele jest potrzebny, a moze nie. Nie wiem jaka jest struktur tych tabel. Jesli sa bardzo podobne to nie ma sensu rozbijac.
FliSs_tCv
Tabele są podobne ale ze względu na podział na kategorie nie zrobiłem tego na jednej tabeli ponieważ wygląda to tak :

Tabela: dania
Tabela: dania_kat

czyli robie to po id_kategorii oraz id_rodzica.

Stworzyłem 2 tabele pizze i dania aby sobie nie zamieszać, nie jestem żadnym znakomitym programistą tongue.gif.

Problem tkwił w sesjach jednak z tym sobie poradziłem.

Na koniec mam jeszcze pytanie jak zrobić usuwanie danego produktu np. jest pizza Napoli i danie Spagetti no i nie chce tego dania więc chce je usunąć jak mam takie coś wykonać ? mam zrobiony formularz ale nie wiem co dalej sad.gif
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.