Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bład w skrypcie?
Forum PHP.pl > Forum > Gotowe rozwiązania
slawko123
Czy moze mi ktos wyjasnic czemu ten skrypt nie chce zapisac mi danych do bazy?

  1. <?php
  2. if($send=='Wyslij') {
  3. mysql_connect (&#092;"127.0.0.1\");
  4. mysql_select_db (daneosobowe);
  5.  
  6. $zapytanie = &#092;"INSERT INTO dane (imie, nazwisko) VALUES ('{$HTTP_GET_VARS['imie']}',
  7. , '{$HTTP_GET_VARS['nazwisko']}')&#092;";
  8.  
  9. $wykonaj = mysql_query ($zapytanie);
  10.  
  11. echo &#092;"<BR>Dane dodane prawidłowo ! Dziękujemy za wypełnieni formularza !\";
  12. }
  13. else {
  14.  
  15. echo &#092;"<form method=\"get\" action=\"dodaj.php\">
  16. <div align=&#092;"center\">
  17. <center>
  18.  
  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\">Imie</font></td>
  22. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"imie\" size=\"20\"></font></td>
  23. </tr>
  24. <tr>
  25. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Nazwisko</font></td>
  26. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"nazwisko\" size=\"20\"></font></td>
  27. </tr>
  28. <tr>
  29. <td width=&#092;"100%\" colspan=\"2\">
  30. <p align=&#092;"center\"><font size=\"2\" face=\"Verdana\"><input type=\"submit\" value=\"Wyslij\" name=\"send\"><input type=\"reset\" value=\"Kasuj\" name=\"B2\"></font></td>
  31. </tr>
  32. </table>
  33. </center>
  34. </div>
  35. </form>&#092;";
  36. }
  37.  
  38. ?>
peterj
Złe połączenie z bazą danych.
  1. <?php
  2. $dbhost = &#092;"localhost\"; // host
  3. $dbname = &#092;"database\"; // nazwa bazy danych
  4. $dbuser = &#092;"root\"; // uzytkownik
  5. $dbpass = &#092;"password\"; // haslo do bazy danych
  6.  
  7. $connect = mysql_connect($dbhost, $dbuser, $dbpass);
  8. mysql_select_db($dbname, $connect);
  9. ?>
slawko123
Zmieniłem ale dalej nie działa...
revyag
Daj przy wykonywaniu zapytania mysql_error(), zobaczysz jaki jest problem.
slawko123
Nie pojawia się żaden komunikat o błedzie, po wcisnieciu Wyslij wraca do formularza i oczywiscie danych w bazie jak nie bylo tak nie ma...
peterj
Po $wykonaj = mysql_query ($zapytanie); daj tak jak powiedział revyag echo mysql_error(); .
Wydaje mi się, że zapytanie jest złe. Podaj nazwy wszystkich pól z tabeli.
  1. <?php
  2. $zapytanie = 'INSERT INTO `dane` ( `imie` , `nazwisko` ) VALUES ( '$HTTP_GET_VARS[imie]', '$HTTP_GET_VARS[nazwisko]' )';
  3. ?>
slawko123
Nie wyskakuje zaden blad, czy przyczyna ze nie dziala moze byc fakt, iz tabela ma 3 pola ( id (autoincrement), imie, nazwisko) a ja w zapytaniu nie uwzgledniam tego id?
peterj
W wpisałeś swoje dane przy połączeniu haslo,user,baza ? Zapytanie powinno wyglądać tak:
  1. <?php 
  2. $zapytanie = 'INSERT INTO `dane` ( `id` , `imie` , `nazwisko` ) VALUES ( 'NULL', '$HTTP_GET_VARS[imie]', '$HTTP_GET_VARS[nazwisko]' )';
  3. ?>
slawko123
Wpisalem dane do polaczenia, zapytanie zmienilem zgodnie z zaleceniami i dalej nie chca mi dane do bazy trafic... odczytac je moge na tych samych ustawieniach przy polaczeniu wiec problem chyba nie tkwi w laczeniu z baza
peterj
  1. <?php
  2. mysql_query($zapytanie);
  3. ?>

biggrin.gif
slawko123
ach dalej nie dziala, chyba zrezygnuje z php i pojade do kijowa wspomoc ukraine... a mam pytanie peterj odnosnie twoich modyfikacji: czy moge umieszczac w polu id wartosc NULL skoro jest ono autoincrement a wiec automatycznie chyba notnull... niech mi ktos znajdzie przyczyne czemu ten skrypt nie dziala bo juz 2 dni nad tym mysle
-maciek-
Jako id możesz null podac (sam automatycznie wstawi, jesli masz autoincrement)

  1. <?php
  2.  
  3. $dbhost = &#092;"localhost\"; // host
  4. $dbname = &#092;"database\"; // nazwa bazy danych
  5. $dbuser = &#092;"root\"; // uzytkownik
  6. $dbpass = &#092;"password\"; // haslo do bazy danych
  7.  
  8. if($send=='Wyslij')
  9. {
  10.  $connect = mysql_connect($dbhost, $dbuser, $dbpass);
  11.  mysql_select_db($dbname, $connect);
  12. }
  13.  
  14. /*tutaj podaj dane (zamiast $pole1 -> $HTTP_GET_VARS['nazwa']) do wszystkich pól w tabeli dla id -> null*/
  15. $zapytanie = &#092;"INSERT INTO dane VALUES (null, \".$pole1.\", \".$pole2.\", \".$pole3.\")\";
  16.  
  17. $wykonaj = mysql_query ($zapytanie);
  18.  
  19. if($wykonaj)
  20. {
  21.  echo &#092;"<BR>Dane dodane prawidłowo ! Dziękujemy za wypełnieni formularza !\";
  22. }
  23. else
  24. {
  25.  
  26. echo &#092;"<form method=\"get\" action=\"dodaj.php\">
  27. <div align=&#092;"center\">
  28. <center>
  29.  
  30. <table border=&#092;"1\" width=\"50%\" bordercolorlight=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">
  31. <tr>
  32. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Imie</font></td>
  33. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"imie\" size=\"20\"></font></td>
  34. </tr>
  35. <tr>
  36. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Nazwisko</font></td>
  37. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"nazwisko\" size=\"20\"></font></td>
  38. </tr>
  39. <tr>
  40. <td width=&#092;"100%\" colspan=\"2\">
  41. <p align=&#092;"center\"><font size=\"2\" face=\"Verdana\"><input type=\"submit\" value=\"Wyslij\" name=\"send\"><input type=\"reset\" value=\"Kasuj\" name=\"B2\"></font></td>
  42. </tr>
  43. </table>
  44. </center>
  45. </div>
  46. </form>&#092;";
  47. }
  48.  
  49. ?>
slawko123
Co nieco sie rozjasnia, wstawilem to
  1. <html>
  2. <head>
  3. <title>Kurs MySQL - Strona Mateusza Dutkiewicza</title>
  4. </head>
  5. <body>
  6. <?php
  7.  
  8. $dbhost = &#092;"localhost\"; // host
  9. $dbname = &#092;"daneosobowe\"; // nazwa bazy danych
  10. $dbuser = &#092;"root\"; // uzytkownik
  11. $dbpass = &#092;"haslo\"; // haslo do bazy danych
  12.  
  13. if($send=='Wyslij')
  14. {
  15.  $connect = mysql_connect($dbhost, $dbuser, $dbpass);
  16.  mysql_select_db($dbname, $connect);
  17. }
  18.  
  19. /*tutaj podaj dane (zamiast $pole1 -> $HTTP_GET_VARS['nazwa']) do wszystkich pól w tabeli dla id -> null*/
  20. $zapytanie = &#092;"INSERT INTO dane VALUES (null, \".$HTTP_GET_VARS['imie'].\", \".$HTTP_GET_VARS['nazwisko'].\")\";
  21.  
  22. $wykonaj = mysql_query ($zapytanie);
  23.  
  24. if($wykonaj)
  25. {
  26.  echo &#092;"<BR>Dane dodane prawidłowo ! Dziękujemy za wypełnieni formularza !\";
  27. }
  28. else
  29. {
  30. echo &#092;"<form method=\"get\" action=\"dodaj.php\">
  31. <div align=&#092;"center\">
  32. <center>
  33.  
  34. <table border=&#092;"1\" width=\"50%\" bordercolorlight=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">
  35. <tr>
  36. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Imie</font></td>
  37. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"imie\" size=\"20\"></font></td>
  38. </tr>
  39. <tr>
  40. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Nazwisko</font></td>
  41. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"nazwisko\" size=\"20\"></font></td>
  42. </tr>
  43. <tr>
  44. <td width=&#092;"100%\" colspan=\"2\">
  45. <p align=&#092;"center\"><font size=\"2\" face=\"Verdana\"><input type=\"submit\" value=\"Wyslij\" name=\"send\"><input type=\"reset\" value=\"Kasuj\" name=\"B2\"></font></td>
  46. </tr>
  47. </table>
  48. </center>
  49. </div>
  50. </form>&#092;";
  51. }
  52.  
  53. ?>
  54.  
  55. </body>
  56. </html>


Przy wejsciu pojawia sie blad "You have an error in your SQL syntax near ' )' at line 1" a po wpisaniu danych i wcisnieciu Wyslij "No Database Selected"?
peterj
  1. <html>
  2. <head>
  3. <title>Kurs MySQL - Strona Mateusza Dutkiewicza</title>
  4. </head>
  5. <body>
  6. <?php
  7.  
  8. $dbhost = &#092;"localhost\"; // host
  9. $dbname = &#092;"daneosobowe\"; // nazwa bazy danych
  10. $dbuser = &#092;"root\"; // uzytkownik
  11. $dbpass = &#092;"haslo\"; // haslo do bazy danych
  12.  
  13. //if($send=='Wyslij')
  14. //{
  15.  $connect = mysql_connect($dbhost, $dbuser, $dbpass);
  16.  mysql_select_db($dbname, $connect);
  17. //}
  18.  
  19.  
  20. $zapytanie = 'INSERT INTO `dane` ( `id` , `imie` , `nazwisko` ) VALUES ( 'NULL', '$HTTP_GET_VARS[imie]', '$HTTP_GET_VARS[nazwisko]' )';
  21.  
  22.  
  23. $wykonaj = mysql_query ($zapytanie);
  24.  
  25. if($wykonaj)
  26. {
  27.  echo &#092;"<BR>Dane dodane prawidłowo ! Dziękujemy za wypełnieni formularza !\";
  28. }
  29. else
  30. {
  31. echo &#092;"<form method=\"get\" action=\"dodaj.php\">
  32. <div align=&#092;"center\">
  33. <center>
  34.  
  35. <table border=&#092;"1\" width=\"50%\" bordercolorlight=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">
  36. <tr>
  37. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Imie</font></td>
  38. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"imie\" size=\"20\"></font></td>
  39. </tr>
  40. <tr>
  41. <td width=&#092;"50%\"><font size=\"2\" face=\"Verdana\">Nazwisko</font></td>
  42. <td width=&#092;"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"nazwisko\" size=\"20\"></font></td>
  43. </tr>
  44. <tr>
  45. <td width=&#092;"100%\" colspan=\"2\">
  46. <p align=&#092;"center\"><font size=\"2\" face=\"Verdana\"><input type=\"submit\" value=\"Wyslij\" name=\"send\"><input type=\"reset\" value=\"Kasuj\" name=\"B2\"></font></td>
  47. </tr>
  48. </table>
  49. </center>
  50. </div>
  51. </form>&#092;";
  52. }
  53.  
  54. ?>
  55.  
  56. </body>
  57. </html>
slawko123
Od razu po wczytaniu strony, pojawia sie napis ze dodano dane, dane rzeczywiscie zostaja dodane do bazy ale zamiast np imienia z formularza jest "$HTTP_GET_VARS[imie]" a formularz sie nawet nie pojawia... sad.gif
peterj
Zamist $HTTP_GET_VARS[nazwisko] i $HTTP_GET_VARS[imie] użyj $_GET[nazwisko] oraz $_GET[imie].

I teraz zmień:
  1. <?php
  2. //if($send=='Wyslij')
  3. //{
  4.  $connect = mysql_connect($dbhost, $dbuser, $dbpass);
  5.  mysql_select_db($dbname, $connect);
  6. //}
  7. ?>

na
  1. <?php
  2. if($_GET['send']=='Wyslij')
  3. {
  4.  $connect = mysql_connect($dbhost, $dbuser, $dbpass);
  5.  mysql_select_db($dbname, $connect);
  6. } ?>
slawko123
Pojawia sie komunikat "No database selected", do bazy nic nie trafia...
peterj
Ale tu namieszane, taki prosty kod, a tyle pisania. Weź to przejrzyj zobacz czy ten warunek zostaje spełniony if($send=='Wyslij'){} czy po wysłaniu formularza istnieją zmienne $HTTP_GET_VARS['nazwisko'] i $HTTP_GET_VARS['imie'] .
-maciek-
Może podałes zła nazwę bazy danych . Sprawdź to.
Ive
nazwy pol czy czego kolwiek w globalach opatrza sie cudzysłowem ... $_GET['imie'] $_GET['nazwisko'] poza tym w formie dodaj moze <input type=hidden nam=send value='Wyslij' />

poza tym... co wyscie tu mu napisali?!
wybieracie baze w ifie a zapytanie przy kazdym przeładowaniu?! to chyba na odwrót powinno być...

przerobiony kod:
  1. <html>
  2. <head>
  3. <title>Kurs MySQL - Strona Mateusza Dutkiewicza</title>
  4. </head>
  5. <body>
  6. <?php
  7.  
  8. $dbhost = &#092;"localhost\"; // twój host
  9. $dbname = &#092;"daneosobowe\";  // twoja nazwa bazy danych
  10. $dbuser = &#092;"root\";      // twoja nazwa uzytkownika do bazy danych
  11. $dbpass = &#092;"haslo\";  // twoje haslo do bazy danych
  12.  
  13. mysql_connect($dbhost, $dbuser, $dbpass) or die(&#092;"Podałeś złe dane!\");
  14. mysql_select_db($dbname) or die(&#092;"Nie znaleziono takiej bazy!\");
  15.  
  16. if($_GET['send']=='Wyslij')
  17. {
  18.  
  19.  $zapytanie = &#092;"INSERT INTO `dane` ( `id` , `imie` , `nazwisko`  ) VALUES (  'NULL', '\".$_GET['imie'].\"', '\".$_GET['nazwisko'].\"' )\";
  20.  
  21.  
  22.  $wykonaj = mysql_query ($zapytanie) or die(mysql_error());
  23.  
  24. ?>
  25. <BR>Dane dodane prawidłowo ! Dziękujemy za wypełnieni formularza ! <br /><br />
  26. <?
  27.  
  28. }
  29.  
  30. ?>
  31. <form method=\"get\" action=\"dodaj.php\">
  32. <div align=\"center\">
  33. <center>
  34.  
  35. <table border=\"1\" width=\"50%\" bordercolorlight=\"#000000\" cellspacing=\"0\" cellpadding=\"0\">
  36. <tr>
  37. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Imie</font></td>
  38. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"imie\" size=\"20\"></font></td>
  39. </tr>
  40. <tr>
  41. <td width=\"50%\"><font size=\"2\" face=\"Verdana\">Nazwisko</font></td>
  42. <td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"nazwisko\" size=\"20\"></font></td>
  43. </tr>
  44. <tr>
  45. <td width=\"100%\" colspan=\"2\">
  46. <p align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=hidden name=\"send\" value=\"Wyslij\" /><input type=\"submit\" value=\"Wyslij\" name=\"send\"><input type=\"reset\" value=\"Kasuj\" name=\"B2\"></font></td>
  47. </tr>
  48. </table>
  49. </center>
  50. </div>
  51. </form>
  52.  
  53. </body>
  54. </html>
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-2024 Invision Power Services, Inc.