Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] problem z dodaniem rekordów
Forum PHP.pl > Forum > Przedszkole
marcinkooter
Witam,

mam takie małe zadanie na zaliczenie i nie bardzo wiem gdzie zrobilem blad.

mianowicie, zrobilem stronke internetowa z baza danych. wszystko mi smigalo.
ale gdy przenioslem na inny serwer tazze strone przy próbie dodania rekordów do bazy danych wywala mi blad

formularz.php:


  1.  
  2. <form action="odbieramy.php" method="post"
  3. enctype="multipart/form-data">
  4.  
  5. <big><b>DANE OSOBOWE</b></big>
  6. <BR><br>
  7. <b>* Login:</b><br>
  8. <input type="text" name="nazwa" /><br />
  9.  
  10. <b>* Wiek:</b><br>
  11. <input type="int" name="wiek" /><br />
  12.  
  13. <b>* Miasto:</b><br>
  14. <input type="text" name="miasto"/><br /><br />
  15.  
  16. <b>* Dzielnica:</b><br>
  17. <input type="text" name="dzielnica" /><br /><br />
  18.  
  19. <b>O mnie:</b><br>
  20. <textarea name="o_mnie" cols="40" rows="5">
  21. Napisz parę słów o sobie
  22.  
  23. <b>Umiejętności:</b><br>
  24. <textarea name="skills" cols="40" rows="5">
  25. Umiejętności (np. znajomość języków, prawo jazdy, ukończone kursy):
  26.  
  27. <b>* Numer telefonu:</b><br>
  28. <input type="text" name="telefon" /><br />
  29.  
  30. <b>* Adres e-mail:</b><br>
  31. <input type="int" name="mail" /><br /><br />
  32.  
  33.  
  34. <textarea name="doswiadczenie" cols="40" rows="5">
  35. Opisz swoje doświadczenie
  36.  
  37.  
  38. <b>Od kiedy możesz zacząć:</b><br />
  39. <input type="text" name="od_kiedy" /><br /><br />
  40.  
  41. <b>Kiedy jesteś dyspozycyjna:</b><br />
  42. <input type="text" name="dyspo" /><br /><br />
  43.  
  44. <b>Minimalna stawka godzinowa:</b><br />
  45. <input type="text" name="wynagrodzenie" /><br /><br />
  46.  
  47. <br><br>
  48.  
  49.  
  50. <input type="submit" value="dodaj" /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
  51. </form>
  52.  
  53.  



odbieramy.php

  1.  
  2.  
  3.  
  4.  
  5. // odbieramy dane z formularza
  6. $iddane_z_tabeli = $_POST['iddane_z_tabeli'];
  7. $nazwa = $_POST['nazwa'];
  8. $wiek = $_POST['wiek'];
  9. $miasto = $_POST['miasto'];
  10. $dzielnica = $_POST['dzielnica'];
  11. $o_mnie = $_POST['o_mnie'];
  12. $skills = $_POST['skills'];
  13. $przedmiot = $_POST['przedmiot'];
  14. $doswiadczenie = $_POST['doswiadczenie'];
  15. $od_kiedy = $_POST['od_kiedy'];
  16. $dyspo = $_POST['dyspo'];
  17. $wynagrodzenie = $_POST['wynagrodzenie'];
  18. $telefon = $_POST['telefon'];
  19. $mail = $_POST['mail'];
  20.  
  21.  
  22.  
  23.  
  24.  
  25. if($nazwa ) {
  26.  
  27.  
  28. mysql_connect("mysql.cba.pl", "pracadorywcza", "****")or die("Nie można nawi?zać poł?czenia z baz?");
  29. mysql_select_db("pracadorywcza_cba_pl")or die("Wyst?pił bł?d podczas wybierania bazy danych");
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36. $ins = @mysql_query("INSERT INTO 1 SET
  37. nazwa='$nazwa',
  38. wiek='$wiek',
  39. miasto='$miasto',
  40. dzielnica='$dzielnica',
  41. o_mnie='$o_mnie',
  42. skills='$skills',
  43. przedmiot='$przedmiot',
  44. doswiadczenie='$doswiadczenie',
  45. od_kiedy='$od_kiedy',
  46. dyspo='$dyspo',
  47. wynagrodzenie='$wynagrodzenie',
  48. telefon='$telefon',
  49. mail='$mail'
  50.  
  51.  
  52. ");
  53.  
  54. if($ins) echo "Profil został dodany";
  55. else echo "Błąd nie udało się dodać nowego rekordu";
  56.  
  57. mysql_close($connection);
  58. }
  59.  
  60. ?>
  61.  
  62.  
  63.  



a to moja tabela
  1. CREATE TABLE `1`
  2. ( `iddane_z_tabeli` int(20) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(30) collate utf8_unicode_ci NOT NULL,
  4. `wiek` int(20) NOT NULL,
  5. `miasto` varchar(40) collate utf8_unicode_ci NOT NULL,
  6. `dzielnica` varchar(40) collate utf8_unicode_ci NOT NULL,
  7. `o_mnie` longtext collate utf8_unicode_ci NOT NULL,
  8. `skills` longtext collate utf8_unicode_ci NOT NULL,
  9. `przedmiot` varchar(30) collate utf8_unicode_ci NOT NULL,
  10. `doswiadczenie` longtext collate utf8_unicode_ci NOT NULL,
  11. `od_kiedy` varchar(20) collate utf8_unicode_ci NOT NULL,
  12. `dyspo` varchar(20) collate utf8_unicode_ci NOT NULL,
  13. `wynagrodzenie` varchar(20) collate utf8_unicode_ci NOT NULL,
  14. `telefon` varchar(20) collate utf8_unicode_ci NOT NULL,
  15. `mail` varchar(40) collate utf8_unicode_ci NOT NULL,
  16. `profil` varchar(40) collate utf8_unicode_ci NOT NULL DEFAULT 'Zobacz pr[...]
sadistic_son
Podstawowe pytanie zanim ktokolwiek zabierze się za pomoc Tobie... JAKI BŁĄD ?
marcinkooter
przy próbie wysłania formularza pojawia się komunikat z 55tej linii pliku odbieramy.php

"Błąd nie udało się dodać nowego rekordu";

Tutaj jest adres formularza:
http://pracadorywcza.cba.pl/profil.php

(proszę nie śmiać się ze stanu wizualnego stronki tongue.gif to zostawiłem sobie na deser)
kokers
nie wiedziałam że insert into set zadziała rzeczywiście gdzies/kiedyś. czytałam o tym, ale nie widziałam...

polecam http://www.w3schools.com/sql/sql_insert.asp
marcinkooter
Sprawdzałem już wedle tego linka i dalej mi wywala błąd. bez apostrofów też próbowałem smile.gif
  1.  
  2. $ins = @mysql_query("INSERT INTO 1
  3. VALUES
  4. ('$nazwa', '$wiek', '$miasto', '$dzielnica', '$o_mnie', '$skills', '$doswiadczenie', '$od_kiedy', '$dyspo', '$wynagrodzenie', '$telefon', '$mail' )
  5. ");
  6.  
kokers
tylko że twoja tabela ma ponad 15 kolumn + wszystko nie mogą być puste bez wartości domyślnych. tym bardziej jak jeszcze nie podajesz jak niżesz

  1. INSERT INTO (nazwa kolumny, nazwa kolumny....) VALUES (wartość, wartość,....)


tylko podajesz same wartości to tym bardziej musi być tyle wartości ile jest kolumn (nie licząc ewentualni id z auto_increment)

http://www.php.net/manual/en/function.mysql-query.php

masz tam przykład jak wywołać mysql_query i wyświetlić błąd jak się nie powiedzie zamiast nic nie mówiącego komunikatu "nie powiodło się". będziesz miał ten błąd będziemy wiedziec więcej.



ps. apostrofy powinny byc zawsze jeśli nie są liczbami.
_Borys_
Zmień nazwę tabeli na zaczynającą się od litery a nie cyfry. U mnie to pomogło.
Valdi_B
W reakcji na błąd operacji na bazie danych warto jeszcze wydrukować treść kwerendy.
Druga sprawa: Skoro pola w tabeli masz z atrybutem NOT NULL, to sprawdzaj czy z formularza dostałeś jakąś treść.
Co prawda baza przyjmie jako wartość pola pusty string, ale czy to jest to o co Ci chodzi?
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.