Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Przekazywanie zmiennych
mac1us
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.08.2007

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


Witam. Moj problem wyglada nastepujaco:
User w jednej z opcji do wyboru ma link: dodawanie urzadzen. plik wyglada tak:
  1. <?php
  2. include "auth_admin.inc.php";
  3. include "conn.inc.php";
  4. ?>
  5. <html>
  6. <head>
  7. <title></title>
  8. <style type="text/css">
  9. body {
  10.  background-color: #87CEFA;
  11. }  a img{
  12. border: none;}
  13. td { color:navy; font-weight: bold;}
  14. p {color:navy; font-weight: bold;}
  15. a
  16. {
  17. color: navy;
  18. }
  19.  
  20. a:hover
  21. {
  22. color: red;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <h1>Obszar administracyjny-edycja danych o laboratoriach</h1>
  28. <br><br>
  29. <table border=1 align="center">
  30. <caption>Lista laboratoriów:</caption>
  31. <tr><td>nazwa</td><td>kraj</td><td></td><td></td></tr>
  32.  
  33. <?php
  34.  /* }
  35. } else { */
  36. $query = "SELECT nazwa, kraj, lab_id FROM laboratoria " .
  37.  "ORDER BY kraj ";
  38. $result = mysql_query($query)
  39. or die(mysql_error());
  40.  while ($row = mysql_fetch_array($result)) {
  41. echo "<tr><td>" ;
  42. echo $row['nazwa']; echo " </td><td>" ;
  43. echo $row['kraj'] ;
  44.  ?>  </td><td><a href="add2_device.php?id=<?php
  45. echo $row['lab_id']; ?>">Dodaj urzadzenie</a> |
  46.  </td>
  47. </tr>
  48. <?php
  49. }
  50. //}
  51. ?>
  52. </body>
  53. </html>

po kliknieciu tego linku wyswietla sie lista placowek i wybiera on do ktorej z nich chce dodac urzadzenie. wybiera placowke i wybiera "dodaj urzadzenie" uruchamiajac drugi skrypt:
  1. <?php
  2. include "auth_admin.inc.php";
  3. include "conn.inc.php";
  4. ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <title>Dodawanie użytkownika</title>
  8. <style type="text/css">
  9. body {
  10.  background-color: #87CEFA;
  11. }  a img{
  12. border: none;}
  13. td { color:navy; font-weight: bold;}
  14. p {color:navy; font-weight: bold;}
  15. a
  16. {
  17. color: navy;
  18. }
  19.  
  20. a:hover
  21. {
  22. color: red;
  23. }
  24. </style>
  25. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  26.  
  27. </head>
  28.  
  29. <body>
  30. <p>
  31. <?php
  32. $id = $_REQUEST['id'];
  33. ?>
  34. Dodawanie użytkownika:
  35.  
  36.  
  37. <form action="addev.php" method="post" enctype="multipart/form-data">
  38. <table border="0" cellpadding="5">
  39. <tr><td>nazwa <br></td><td> <input type="text" name="nazwa" required/> <br> </td>  </tr>
  40. <tr><td>model <br></td> <td> <input type="text" name="model" required /><br> </td> </tr> </p> </table>
  41. <button type="submit">DODAJ</button>
  42. </td><td><a href="choose_device.php?id=<?php
  43. echo $row['lab_id']; ?>">Wyswietl urzadzenia</a> |
  44.  </td>
  45.  
  46. </form>
  47. </body>
  48. </html>

Nietety nie wiem jak kolejny raz przekazac id placowki aby po kliknieciu "dodaj" do tabeli urzadzen dodana zostala nazwa, model oraz id placowki do ktorej nalezy dane urzedzenie. Oprocz tego, chcialbym aby po dodaniu mozna bylo powrocic do poprzedniego okna (formularza do wpisywania nazwy i modelu).

plik addev.php wyglada tak:
  1. <html><title>Dodawanie</title>
  2. <style type="text/css">
  3. body {
  4.  background-color: #87CEFA;
  5. }  a img{
  6. border: none;}
  7. td { color:navy; font-weight: bold;}
  8. p {color:navy; font-weight: bold;}
  9. a
  10. {
  11. color: navy;
  12. }
  13.  
  14. a:hover
  15. {
  16. color: red;
  17. }
  18. </style>
  19. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  20. </head>
  21.  
  22. <body>
  23. <?php
  24.  
  25. $id = $_REQUEST['id'];
  26. $nazwa = $_POST['nazwa'];
  27. $adres = $_POST['model'];
  28. $connect = mysql_connect("xxxxx", "xxxxx", "xxxxx") or
  29. die ("Sprawdź połączenie z bazą danych.");
  30. mysql_select_db ("xxxxxx");
  31.  
  32. $zapytanie = "INSERT INTO `devices` (`device_id`,`nazwa`,`model`,`lab_id`)
  33.  VALUES ('', '$_POST[nazwa]', '$_POST[model]', '" . $_GET['id'] . "' )";
  34.  
  35. $idzapytania = mysql_query($zapytanie);  if ($idzapytania) echo "rekord dodany"; else echo "nie dodano";
  36.  
  37. ?>
  38.  
  39. <p>Aktualizacja dokonana poprawnie!
  40. Dodano laboratorium: </p>
  41.  
  42. <strong><?php echo $nazwa; ?></strong><br>
  43. <?php echo $model; ?><br>
  44.  
  45.  
  46.  
  47. </body>
  48. </html>


Ma ktos jakies pomysly?
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%)
-----


Skorzystaj z inputów typu hidden do przekazywania takich informacji.

Pozdrawiam.
Go to the top of the page
+Quote Post
mac1us
post
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.08.2007

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


Czy moglbys mi to jakos bardziej naswietlic? Jak na razie niebardzo rozumiem.
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%)
-----


Nie wiesz jak kolejny raz przekazać id do kolejnego formularza tak? No to korzystasz z tych inputów, działa to na takiej zasadzie, że w w jednym formularzu gdzie to id jest pokazane/przekazane dodajesz tego inputa do formularza:

  1. // ...
  2. <input type="hidden" name="id_placowki" value="<?php echo $wartosc_id ?>" />
  3. // ...


A następnie na kolejnej stronie po wciśnięciu submita masz to już przekazane i odbierasz metodą $_POST, ($_POST['id_placowki']). W ten sposób, możesz w nieskończoność przekazywać co tylko zechcesz, dalej. Alternatywnym rozwiązaniem jest użycie ciastek bądź sesji, poszukaj, poczytaj.

Pozdrawiam.
Go to the top of the page
+Quote Post
mac1us
post
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.08.2007

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


Zrobilem tak jak napisales i niestety dalej mam problem. Wyglada to tak:
  1. <?php
  2. include "auth_admin.inc.php";
  3. include "conn.inc.php";
  4. ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <title>Dodawanie użytkownika</title>
  8. <style type="text/css">
  9. body {
  10.  background-color: #87CEFA;
  11. }  a img{
  12. border: none;}
  13. td { color:navy; font-weight: bold;}
  14. p {color:navy; font-weight: bold;}
  15. a
  16. {
  17. color: navy;
  18. }
  19.  
  20. a:hover
  21. {
  22. color: red;
  23. }
  24. </style>
  25. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  26.  
  27. </head>
  28.  
  29. <body>
  30. <p>
  31.  
  32. Dodawanie użytkownika:
  33.  
  34.  
  35. <form action="addev.php" method="post" enctype="multipart/form-data">
  36. <table border="0" cellpadding="5">
  37. <tr><td<input type="hidden" name="lab_id" value="<?php echo $lab_id ?>" <br> </td>  </tr
  38. <tr><td>nazwa <br></td><td> <input type="text" name="nazwa" required/> <br> </td>  </tr>
  39. <tr><td>model <br></td> <td> <input type="text" name="model" required /><br> </td> </tr> </p> </table>
  40. <button type="submit">DODAJ</button>
  41. </td><td><a href="choose_device.php?id=<?php
  42. echo $lab_id ?>">Wyswietl urzadzenia</a> |
  43.  </td>
  44.  
  45. </form>
  46. </body>
  47. </html>


a drugi skrypt tak:
  1. <html><title>Dodawanie</title>
  2. <style type="text/css">
  3. body {
  4.  background-color: #87CEFA;
  5. }  a img{
  6. border: none;}
  7. td { color:navy; font-weight: bold;}
  8. p {color:navy; font-weight: bold;}
  9. a
  10. {
  11. color: navy;
  12. }
  13.  
  14. a:hover
  15. {
  16. color: red;
  17. }
  18. </style>
  19. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  20. </head>
  21.  
  22. <body>
  23. <?php
  24.  
  25. $lab_id = $_POST['lab_id'];
  26. $nazwa = $_POST['nazwa'];
  27. $adres = $_POST['model'];
  28. $connect = mysql_connect("xxxxxxxxx", "xxxxxxxxx", "xxxxxxxxxx") or
  29. die ("Sprawdź połączenie z bazą danych.");
  30. mysql_select_db ("xxxxxxxxx");
  31.  
  32. $zapytanie = "INSERT INTO `devices` (`device_id`,`nazwa`,`model`,`lab_id`)
  33.  VALUES ('', '$_POST[nazwa]', '$_POST[model]', '" . $_POST['lab_id'] . "' )";
  34.  
  35. $idzapytania = mysql_query($zapytanie);  if ($idzapytania) echo "rekord dodany"; else echo "nie dodano";
  36.  
  37. ?>
  38.  
  39. <p>Aktualizacja dokonana poprawnie!
  40. Dodano laboratorium: </p>
  41.  
  42. <strong><?php echo $nazwa; ?></strong><br>
  43. <?php echo $model; ?><br>
  44.  
  45.  
  46.  
  47. </body>
  48. </html>


Gdzie popelnilem blad?

Ten post edytował mac1us 7.08.2007, 13:24:52
Go to the top of the page
+Quote Post
strife
post
Post #6





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

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


A jakie błędy Ci wyświetla? W drugim skrypcie daj taki kod:

  1. <?php
  2. // ...
  3. echo '<pre>';
  4. var_export($_POST);
  5. echo '</pre>';
  6. ?>


Zobaczysz sobie dzięki temu jakie zmienne zostają przekazane do drugiej strony. Jesteś pewien, że $lab_id zawiera jakąś wartość?

~edit
Masz błąd w formularzu,

  1. <input type="hidden" name="lab_id" value="<?php echo $lab_id ?>"


Powinno być tak:

  1. <input type="hidden" name="lab_id" value="<?php echo $lab_id ?>" />


Pozdrawiam.
Go to the top of the page
+Quote Post
mac1us
post
Post #7





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.08.2007

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


dodalem ten kod i zwrocilo mi :
Kod
array (
  'lab_id' => '',
  'nazwa' => 'kijek',
  'model' => 'kij',
)


tak wiec jest jak przypuszczales - $lab_id jest puste. tylko dlaczego?
Go to the top of the page
+Quote Post
strife
post
Post #8





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

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


A co ma zawierać lab_id?,W pierwszym formularzu przypisujesz tą wartość do $_GET i $_POST. Jednak ta wartość jest pusta, dlatego zapewne nie dodaje się do bazy (brak sprawdzenia poprawności zapytania, poczytaj o mysql_error" title="Zobacz w manualu PHP" target="_manual). W pierwszym formularzu musisz tej wartości dać jakąś wartość, jak zauważyłem includujesz kilka plików, jak się domyślam to z nich wyciągasz $lab_id, tak?

W Twoim wypadku, jeśli masz dwa formularze to przesyłanie metodą $_GET, tego id powinno w zupełności wystarczyć, ja źle zrozumiałem, bo myślałem, że takich formularzy będziesz miał kilka.

uff..

Pozdrawiam.

~edit

Analizując od początku ten skrypt to może:

  1. // ...
  2. <tr><td<input type="hidden" name="lab_id" value="<?php echo $row['lab_id'] ?>" />


Chociaż nie wiem, odpisz na powyższe pytania, podaj jakie błędy itp.
Go to the top of the page
+Quote Post
mac1us
post
Post #9





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.08.2007

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


lab_id jest wyciagany prze skrypt #1 z tabeli laboratoria i przekazywany do kolejnego skryptu:
Kod
</td><td><a href="add2_device.php?id=<?php
    echo $row['lab_id']; ?>">Dodaj urzadzenie</a>

User wybiera sobie laboratorium do ktorego chce dodac urzadzenie i jego id jest przekazywane dalej
Po wypelnieniu pol nazwa i model dane te zostaja wrzucone do tabeli "devices" wraz z przekazanym lab_id - ta tabela tez posiada taki rekord.
Go to the top of the page
+Quote Post
strife
post
Post #10





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

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


Już chyba wszystko rozumiem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Są 3 skrypty, w jednym wybiera sobie id, w kolejnym model i nazwę i teraz nie wiesz jak przekazać te id, jeszcze dalej tak ? Jeśli dobrze zrozumiałem to jest to bardzo proste, jak już wcześniej wspomniałem input typu hidden.

W ten sposób:

  1. // ...
  2. <tr><td<input type="hidden" name="lab_id" value="<?php echo $_GET['lab_id'] ?>" />


I w kolejnym skrypcie odwołujesz się do tego poprzez $_POST['lab_id'], mówię już o tym ostatnim 3-cim skrypcie. Napisz czy to Ci działa.
Go to the top of the page
+Quote Post
mac1us
post
Post #11





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.08.2007

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


Dokladnie o takie dzialanie chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
do 2 skryptu wrzucilem

Kod
<tr><td<input type="hidden" name="lab_id" value="<?php echo $_GET['lab_id'] ?>" />


ostatni wyglada tak jak poprzednio czyli:

Kod
<?php


    $lab_id = $_POST['lab_id'];
    $nazwa = $_POST['nazwa'];
    $adres = $_POST['model'];
    $connect = mysql_connect("xxxxxx", "xxxxxx", "xxxxxxxx") or
    die ("Sprawdź połączenie z bazą danych.");
    mysql_select_db ("xxxxxx");

    $zapytanie = "INSERT INTO `devices` (`device_id`,`nazwa`,`model`,`lab_id`)
     VALUES ('', '$_POST[nazwa]', '$_POST[model]', '" . $_POST['lab_id'] . "' )";

    $idzapytania = mysql_query($zapytanie);       if ($idzapytania) echo "rekord dodany"; else echo "nie dodano";

    echo '<pre>';
var_export($_POST);
echo '</pre>';

    ?>


Niestety dalej wywala mi ze nie lab_id jest puste

Ten post edytował mac1us 7.08.2007, 14:20:12
Go to the top of the page
+Quote Post
strife
post
Post #12





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

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


1. Zobacz czy w drugim skrypcie wartość $_GET['id'] w ogóle istnieje, i co się wyświetla.
2. Tą wartość równie dobrze, możesz cały czas przekazywać poprzez $_GET, w tym celu w drugim skrypcie dodaj:

  1. <form action="addev.php?id=<?php echo $_GET['id'] ?>" method="post" enctype="multipart/form-data">


A w ostatnim odwołuj się $_GET['id']

To musi działać, metodą $_POST, $_GET nieważne, musi.

uff

Pozdrawiam.
Go to the top of the page
+Quote Post
mac1us
post
Post #13





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.08.2007

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


No ja juz nie wiem co robie zle - zmienilem na:
  1. <form action="addev.php?id=<?php echo $_GET['id'] ?>" method="post" enctype="multipart/form-data">
  2. <table border="0" cellpadding="5">
  3. <tr><td>nazwa <br></td><td> <input type="text" name="nazwa" required/> <br> </td>  </tr>
  4. <tr><td>model <br></td> <td> <input type="text" name="model" required /><br> </td> </tr> </p> </table>
  5. <button type="submit">DODAJ</button>
  6. </td><td><a href="choose_device.php?id=<?php
  7. echo $lab_id ?>">Wyswietl urzadzenia</a> |
  8.  </td>


i
  1. <?php
  2.  
  3.  
  4. $lab_id = $_GET['id'];
  5. $nazwa = $_POST['nazwa'];
  6. $adres = $_POST['model'];
  7. $connect = mysql_connect("xxx, "xxxxx", "xxx") or
  8. die ("Sprawdź połączenie z bazą danych.");
  9. mysql_select_db ("xxxxxx");
  10.  
  11. $zapytanie = "INSERT INTO `devices` (`device_id`,`nazwa`,`model`,`lab_id`)
  12.  VALUES ('', '$_POST[nazwa]', '$_POST[model]', '$_GET[id]' )";
  13.  
  14. $idzapytania = mysql_query($zapytanie);  if ($idzapytania) echo "rekord dodany"; else echo "nie dodano";
  15.  
  16. echo '<pre>';
  17. var_export($_POST);
  18. echo '</pre>';
  19.  
  20. ?>


I dalej nic. Pewnie wale gdzies dziecinna gafe ale nie mam pojecia gdzie :/

Ten post edytował mac1us 7.08.2007, 15:09:11
Go to the top of the page
+Quote Post
strife
post
Post #14





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

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


Jeszcze raz, po koleji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Masz pierwszy formularz, w którym wyciągasz z bazy pewną wartość i jest to $row['lab_id'];, następnie przekazujesz ją metodą $_GET do następnego formularza:

  1. </td><td><a href="add2_device.php?id=<?php
  2. echo $row['lab_id']; ?>">Dodaj urzadzenie</a> |


Pytania pomocnicze:
- Czy w pierwszym skrypcie wartość $row['lab_id']; jest widoczna/nie jest pusta?
- Czy w źródle zostaje ona przekazana i widzimy np. add2_device.php?id=432 ?

Jeśli wszystko jest ok, to jedziemy dalej.
- Czy w drugim skrypcie wartość $_GET['id'] jest widoczna/nie jest pusta?
- Jeśli jest widoczna przekaż ją tak samo jak to robiłeś w 1-szym skrypcie, czyli:
  1. <form action="addev.php?id=<?php echo $_GET['id'] ?>" method="post" enctype="multipart/form-data">


Jeśli wszystko jest ok, to jedziemy dalej, czyli do ostatniego skryptu:
- Czy w tym skrypcie zmienna $_GET['id'] jest widoczna/nie jest pusta?

Jeśli nadal jest źle, to sprawdź czy masz literówki, ustaw raportowanie błędów na E_ALL, i sprawdź czy przypadkiem nie masz register_globals na on

Pozdrawiam.
Go to the top of the page
+Quote Post
mac1us
post
Post #15





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.08.2007

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


1. w zrodle przekazania widac numer przekazywanego id wiec nie jest puste

jak sprawdzic czy wartość $_GET['id'] jest widoczna/nie jest pusta?
Go to the top of the page
+Quote Post
strife
post
Post #16





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

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


Cytat(mac1us @ 7.08.2007, 16:05:22 ) *
jak sprawdzic czy wartość $_GET['id'] jest widoczna/nie jest pusta?

Do tego typu operacji służą, var_export" title="Zobacz w manualu PHP" target="_manual, var_dump" title="Zobacz w manualu PHP" target="_manual i inne (zobacz w manualu). Sprawdź wszystko jeszcze raz, zobacz też czy masz register_globals na on, bo to może powodować duże błędy, raportowanie błędów też możesz włączyć. Generalnie zobacz temat w Przedszkolu o najczęściej popełnianych błędach programistów. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam.
Go to the top of the page
+Quote Post
mac1us
post
Post #17





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.08.2007

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


niestety nie mam dostepu do register_globals bo nie mam wgladu do php.ini

wrzucilem do 2 ostatnich skrpytow kod
  1. <?php $id=$_GET['id'];
  2. var_export($id); ?>


i wyrzuca wartosc 1 czyli jest przekazywane

EDIT:
Dziala!
Wielkie dzieki za pomoc
do ostatniego pliku wrzucilem powyzszy kod a usunalem z niego
  1. <?php
  2. $lab_id = $_GET['id'];
  3. ?>


Ten post edytował mac1us 7.08.2007, 15:39:54
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #18





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


Witam ja mam problem z przekazaniem zmiennych do nastepnego formularza (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) mam tutaj kod koszyka zamówień nie wiem co robie zle ale nie przesyła mi żadnych danych (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) możę pomożecie już mnie to męczy może inne oko spojrzy na tą czarną dziure heh (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

koszyk.php
  1. <?
  2. ?>
  3. <?='<?xml version="1.0" encoding="ISO-8859-2"?>';?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  5. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"><head>
  7. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  8. <title>tytuł strony</title></head><body>
  9.  
  10. <?php
  11. // ...
  12. echo '<pre>';
  13. var_export($_POST);
  14. echo '</pre>';
  15. ?><p><b>Twój koszyk</b> / <a href="index.php">powrót do menu</a></p>
  16.  
  17. <?php
  18. $sql_serwer = "xxxxxxxxxxx";
  19. $sql_login = "xxxxxxxxxxx";
  20. $sql_haslo = "xxxxxxxxxxx";
  21. $sql_baza  = "xxxxxxxxxxx";
  22. $sql_tabela = "xxxxxxxxxxx";
  23.  
  24. function odbierz($txt) {
  25. if (get_magic_quotes_gpc()) $txt = stripslashes($txt);
  26. return str_replace(array('',"'"), array('',"&#092;'"), trim($txt));
  27. }
  28.  
  29.  
  30. $id = odbierz($_REQUEST["id"]);
  31. $sz = isset($_REQUEST["sz"])?number_format($_REQUEST["sz"],0,".",""):"";
  32.  
  33. if ($id<>"") {
  34. if (mysql_connect($sql_serwer, $sql_login, $sql_haslo)
  35. and mysql_select_db($sql_baza)) {
  36. $wynik = mysql_query("SELECT * FROM $sql_tabela WHERE id='$id'");
  37. }
  38. if ($wynik and mysql_num_rows($wynik)==1) {
  39. $dane = mysql_fetch_array($wynik);
  40. $_SESSION["koszyk"]["$id"]["towar"]=$dane["towar"];
  41. $_SESSION["koszyk"]["$id"]["cena"]=$dane["cena"];
  42.  
  43. if ($sz=="") $_SESSION["koszyk"]["$id"]["ile"]++;
  44. else if ($sz>=1) $_SESSION["koszyk"]["$id"]["ile"]=$sz;
  45. else if ($sz<=0) unset($_SESSION["koszyk"]["$id"]);
  46. }
  47. }
  48.  
  49.  
  50. if (count($_SESSION["koszyk"])>0) {
  51. echo "<table border=\"1\">
  52. <colgroup>
  53. <col />
  54. <col align=\"right\" />
  55. <col align=\"center\" />
  56. <col align=\"right\" />
  57. </colgroup>
  58. <tr><th>towar</th><th>cena</th><th>sztuk</th><th>łącznie</th></tr>";
  59.  
  60. foreach($_SESSION["koszyk"] as $indeks=>$kosz) {
  61. echo "<tr>";
  62. echo "<td>{$kosz["towar"]}</td>";
  63. echo "<td>{$kosz["cena"]} zł</td>";
  64. echo "<td>
  65. <form action=\"koszyk.php\" method=\"get\" style=\"display:inline;\">
  66. <div style=\"display:inline;\">
  67. <input type=\"hidden\" name=\"id\" value=\"$indeks\" />
  68. <input type=\"text\" name=\"sz\" value=\"{$kosz["ile"]}\"
  69. style=\"width:25px;\" />
  70. <input type=\"submit\" value=\"zmień\" style=\"width:45px;\" />
  71. </div></form>
  72. <form action=\"koszyk.php\" method=\"get\" style=\"display:inline;\">
  73. <div style=\"display:inline;\">
  74. <input type=\"hidden\" name=\"id\" value=\"$indeks\" />
  75. <input type=\"hidden\" name=\"sz\" value=\"0\"
  76. style=\"width:25px;\" />
  77. <input type=\"submit\" value=\"usuń\" style=\"width:45px;\" />
  78. </div></form>
  79. </td>";
  80. echo "<td>".number_format($kosz["cena"]*$kosz["ile"],2,".","");
  81. echo " zł</td>";
  82. echo "</tr>";
  83. $lacznie +=$kosz["cena"]*$kosz["ile"];
  84. }
  85. echo "<tr><td colspan=\"3\" align=\"right\">
  86. w sumie: </td><td>";
  87. echo number_format($lacznie,2,".","")." zł</td></tr>";
  88. echo "</table>";
  89.  
  90.  
  91. echo "<table border=\"1\" style=\"font-size : 12px;\">";
  92. echo "<tr>
  93. Aby zamówienie zostało zrealizowane, należy podać swoje dane osobowe<br /> oraz adres zamieszkania.
  94. Kliknij <a href=\"add.php?id={$dane["id"]}\">zamawiam</a> aby kontynuować!
  95. </tr>";
  96. echo "</table>";
  97. } else echo "<p>Koszyk jest pusty...</p>";
  98. ?>
  99.  
  100. </body>
  101. </html>


add.php
  1. <?php
  2. // ...
  3. echo '<pre>';
  4. var_export($_POST);
  5. echo '</pre>';
  6. ?>


w add nie wyswietla mi się nic .. tzn zadne dane ;] pokazuje tylko

array (
)
Go to the top of the page
+Quote Post
strife
post
Post #19





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

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


Dzieje się tak ponieważ przesyłasz te dane do add.php metodą GET, a nie POST. Jakie dane mają zostać przesłane do add.php? - Jeśli jest to finalizacja zamówienia to nie POST, chyba SESSION co? To tyle nie zagłębiając sie daleko w kod.
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #20





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


Poprawiłem get na post oraz w pliku add.php

napisałem takie coś lecz nie wiem co dalej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) miałem zamiar miec tutaj formularz w którym wpisywało by sie kolejne dane po czym zapisywało by to do bazy jak to dokoączyc ?abym otrzymał takowy cel ;>

  1. <?php
  2. ?>
  3. <?php
  4. var_dump($_SESSION);
  5. $sql_serwer = "localhost";
  6. $sql_login = "admin";
  7. $sql_haslo = "inth3mix";
  8. $sql_baza  = "caprii";
  9. $sql_tabela = "zamowienie";
  10. mysql_connect($sql_serwer, $sql_login, $sql_haslo);
  11. mysql_select_db($sql_baza);
  12. foreach ($_SESSION['koszyk'] as $klucz => $wartosc) {
  13. mysql_query("INSERT INTO $sql_tabela VALUES ( '$_POST[id]', '$_POST[towar]')")
  14. or die(mysql_error());
  15. }
  16.  
  17. ?>


Ten post edytował FliSs_tCv 18.09.2007, 20:04:28
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 13:23