Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dodanie rekordu
Forum PHP.pl > Forum > Gotowe rozwiązania > Skrypty obsługi baz danych
roobik
Witam!
Napisałem mały skrypcik na dodawanie rekordu, ale coś nie tego sad.gif Oto on:
  1. <html>
  2. <head>
  3. <title></title>
  4. </head>
  5. <body>
  6. <?
  7. if($send=='Wyslij') {
  8. mysql_connect (&#092;"localhost\",\"***\",\"***\") or die (\"Błąd przy łączeniu!\");
  9. mysql_select_db (***) or die (&#092;"Błąd przy wybieraniu bazy\");
  10. $query = &#092;"INSERT INTO progsy (nazwa, prod) SET ('nazwa', 'prod')\";
  11. $wykonaj = mysql_query ($query);
  12.  
  13. echo &#092;"<BR>Dane dodane zostały prawidłowo!<BR>Dziękujemy za zgłoszenie\";
  14. }
  15. else {
  16. echo &#092;"<form method=\"get\" action=\"add.php\">
  17. <div align=&#092;"center\">
  18. <center>
  19. <table border=&#092;"1\" width=\"50%\" bordercolorlight=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">
  20. <tr>
  21. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Nazwa progr</font></td>
  22. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"nazwa\" size=\"20\"></font></td>
  23. </tr>
  24. <tr>
  25. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Producent</font></td>
  26. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"prod\" size=\"20\"></font></td>
  27. </tr>
  28.  
  29. <tr>
  30. <td width=&#092;"100%\" colspan=\"2\">
  31. <p align=&#092;"center\"><font size=\"2\" face=\"Verdana\"><input type=\"submit\" value=\"OK\" name=\"send\"><input type=\"reset\" value=\"Kasuj\" name=\"B2\"></font></td>
  32. </tr>
  33. </table>
  34. </center>
  35. </div>
  36. </form>&#092;";
  37. }
  38.  
  39.  
  40.  
  41. ?>
  42.  
  43. </body>
  44. </html>


...i za nic nie moge dodac do bazy rekordu. Powyższy kod zapisany hest jako add.php .

Poza tym wyskakuje mi błąd zamknięcia bazy:
Cytat
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in


Pomożecie?? winksmiley.jpg
crash
Nic dziwnego, że nie działa, dodajesz do bazy zwykły tekst, a co do zamykania połączenia musisz używać odpowiedniego uchwytu, tzn:
  1. <?php
  2. $baza = mysql_connect (&#092;"localhost\",\"***\",\"***\") or die (\"Błąd przy łączeniu!\");
  3. mysql_select_db (***) or die (&#092;"Błąd przy wybieraniu bazy\");
  4. $query = &#092;"INSERT INTO progsy (nazwa, prod) VALUES ('\".$_GET['nazwa'].\"', '\".$_GET['prod'].\"')\";
  5. $wykonaj = mysql_query ($query);
  6.  
  7. // ...
  8.  
  9. mysql_close($baza);
  10. ?>

Radzę zmienić metode przesyłania formularza na POST...
roobik
sad.gif
Cytat
Parse error: parse error, unexpected '}' in  ..itd


w tym momencie jest tylko zamykający } a nie ma otwierającego...

a co sięstało z tym:
Cytat
if($send=='Wyslij') {

w linii 7
...bo tego teraz brakuje w kodzie
tiraeth
  1. <html>
  2. <head>
  3. <title>TYTUL</title>
  4. </head>
  5. <body>
  6.  
  7. <?
  8. if($send=='Wyslij')
  9. {
  10.  ## POLACZENIE ##
  11.  $connect = mysql_connect ('host', 'user', 'haslo')
  12. or die(&#092;"Błąd przy łączeniu!\");
  13.  
  14.  ## WYBOR BAZY DANYCH ##
  15.  mysql_select_db ('baza', $connect)
  16.  or die(&#092;"Błąd przy wybieraniu bazy\");
  17.  
  18.  ## ZAPYTANIE DO BAZY (INSERT)
  19.  $query = &#092;"INSERT INTO progsy(nazwa, prod) VALUES($_POST['nazwa'], $_POST['prod'])\";
  20.  $wykonaj = mysql_query($query, $connect)
  21. or die('<b>'.mysql_errno().'</b>: '.mysql_error().'!');
  22.  
  23.  echo &#092;"<BR>Dane dodane zostały prawidłowo!<BR>Dziękujemy za zgłoszenie\";
  24.  
  25.  mysql_close($connect);
  26. }
  27. else
  28. {
  29. // Uwaga bo teraz bedzie porzadek z kodem html
  30. // ps. brakowalo </p> w 3-cim <tr> snitch.gif
  31. ?>
  32. <form method=\"get\" action=\"add.php\">
  33.  <div align=\"center\">
  34. <center>
  35.  <table border=\"1\" width=\"50%\" bordercolorlight=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">
  36. <tr>
  37.  <td width=\"50%\">
  38. <font size=\"2\" face=\"Verdana\">Nazwa progr</font>
  39.  </td>
  40.  <td width=\"50%\" align=\"center\">
  41. <font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"nazwa\" size=\"20\"></font>
  42.  </td>
  43. </tr>
  44. <tr>
  45.  <td width=\"50%\">
  46. <font size=\"2\" face=\"Verdana\">Producent</font>
  47.  </td>
  48.  <td width=\"50%\" align=\"center\">
  49. <font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"prod\" size=\"20\"></font>
  50.  </td>
  51. </tr>
  52. <tr>
  53.  <td width=\"100%\" colspan=\"2\">
  54. <p align=\"center\">
  55.  <font size=\"2\" face=\"Verdana\">
  56. <input type=\"submit\" value=\"OK\" name=\"send\">
  57. <input type=\"reset\" value=\"Kasuj\" name=\"B2\">
  58.  </font>
  59. </p>
  60.  </td>
  61. </tr>
  62.  </table>
  63. </center>
  64.  </div>
  65. </form>
  66. <?
  67. // Po co trzymac formularze w echo?
  68. }
  69. ?>
  70.  
  71. </body>
  72. </html>

Nowy kod biggrin.gif
roobik
Cytat
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING


Cytat("crashu')
Radzę zmienić metode przesyłania formularza na POST...

Dlaczego? Czy jest jakiś "poważny skutek uboczny" używania GET?

Sam piszę te skrypty - a z tego, co widać jeszcze się uczę php smile.gif
A że nie jestem "orłem" to byki się zdarzają smile.gif
crash
Osoba postronna może łatwo przeczytać np. hasło przesłane metodą GET, a POST jest niewidoczne normalnie.
roobik
Cytat
Parse error: parse error, unexpected T_STRING in (...) line 19


po podpowiedzi crashu zmieniłem linie 19 na :
Cytat
$query = 'INSERT INTO progsy (nazwa, prod, licz) VALUES (".'$_POST['nazwa'].'", "'.$_POST['prod'].'", 0)';


W sumie mam 4 kolumny w bazie : id (auto), nazwa, prod, licz
Z tym, że chcę, by licz była wprowadzana wartość zero, a nie chcę default 0.
Mam nadzieję, że nie namieszałem biggrin.gif


UPDATE
zrobiłem tak:
Cytat
$query = 'INSERT INTO progsy(nazwa, prod, licz) VALUES (".'$_POST['nazwa'].'", "'.$_POST['prod'].'", 0)';

Teraz wyskakuje mi byk (w tej samej, 19ej linii:
Cytat
Parse error: parse error, unexpected T_VARIABLE in (...) line 19


sadsmiley02.gif
crash
Bo masz błąd: ".'$_POST['nazwa'].'" ma wyglądać tak: "'.$_POST['nazwa'].'" zobacz czym to się różni...
roobik
no nie! to trza być ślepym, by tego nie zauważyć .... durna kropa winksmiley.jpg

OK - błędów już nie ma .... ale wprowadzane dane nie zostają przekazane do bazy sad.gif
i wkoło wojtek ... biggrin.gif
crash
Pierwszy warunek: if($send=='Wyslij') na if(!empty($_POST['send']))
roobik
piwo dla tego pana smile.gif
THX wielkie crashuexclamation.gif!

Można zamknąć.
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.