Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie rekordów problem
Forum PHP.pl > Forum > Przedszkole
WujekDawidus
Witam oto przerobiony przeze mnie kod php, który wysyła rekordy do bazy.

Co jest w nim źle? :/
  1. <?php
  2. if(isLoggedIn())
  3. {?>
  4.  
  5. <br>
  6. <form action="" method="post">
  7. Podaj Wykonawcę:<br>
  8. <input type=text name="wykonawca" size=40><br>
  9. Tytuł Piosenki:<br>
  10. <input type=text name="tytul" size=40><br>
  11. Treść:<br>
  12. <input type=text name="tekst" size=40><br>
  13. <input type="submit" name="dodaj" value="dodaj" /> <br><br>
  14.  
  15. <?php
  16. // odbieramy dane z formularza
  17. $wykonawca = $_POST['WYKONAWCA'];
  18. $tytul = $_POST['TYTUL'];
  19. $contents = $POST['CONTENTS']
  20.  
  21.  
  22.  
  23. // łączymy się z bazą danych
  24. $connection = @mysql_connect("localhost", "root", "")
  25. or die('Brak połączenia z serwerem MySQL');
  26. $db = @mysql_select_db('teksty', $connection)
  27. or die('Nie mogę połączyć się z bazą danych');
  28.  
  29. // dodajemy rekord do bazy
  30. $ins = @mysql_query("INSERT INTO teksty SET wykonawca='$wykonawca', tytul='$tytul', contents='$contents'");
  31.  
  32. if($ins) echo "Rekord został dodany poprawnie";
  33. else echo "Błąd nie udało się dodać nowego rekordu";
  34.  
  35. mysql_close($connection);
  36. }
  37.  
  38. ?>
bob1986
Otworzyłeś nawias klamrowy "{" w 3ciej linii i go nie zamknąłeś.
ostrylg
Wysyłasz inne dane a inne odbierasz bo :

<input type=text name="wykonawca" size=40>

to nie to samo co

<input type=text name="wykonawca" size=40>

Tutaj wielkość liter ma znaczenie, popraw i sprawdź.
WujekDawidus
{ kończy sie w 36

#
$wykonawca = $_POST['WYKONAWCA']; <<< WYKONAWCA z dużej bo z dużej mam w MySql.



Parse error: syntax error, unexpected T_VARIABLE in C:\Program Files\WebServ\httpd\Teksty Piosenek\dodaj.php on line 24
ostrylg
To nie ważne że masz z dużej w bazie danych, liczy się to co wysyłasz i odbierasz.

Zrób sobie test. Wpisz w pliku test.php takie coś :

  1. <?php
  2. echo $_GET["ZMIENNA"];
  3. ?>


i otwórz ten plik w adresie adres.strony.pl/test.php?zmienna=toJestZmienna i otwórz go adres.strony.pl/test.php?ZMIENNA=toJestZmienna i zobacz kiedy Ci wyświetli zawartość zmiennej.

  1. <?php
  2. $ins = @mysql_query("INSERT INTO teksty SET wykonawca='$wykonawca', tytul='$tytul', contents='$contents'");
  3. ?>


zmień na

  1. <?php
  2. $ins = @mysql_query("INSERT INTO teksty SET WYKONAWCA='$wykonawca', TYTUL='$tytul', CONTENTS='$contents'");
  3. ?>


i sprawdź nazwe bazy danych czy wielkość liter się zgadza.
WujekDawidus
Zmienilem
  1. $ins = @mysql_query("INSERT INTO teksty SET wykonawca='$wykonawca', tytul='$tytul', contents='$contents'");


na

  1. $ins = @mysql_query("INSERT INTO teksty SET WYKONAWCA='$wykonawca', TYTUL='$tytul', CONTENTS='$contents'");



i nadal jest: Parse error: syntax error, unexpected T_VARIABLE in C:\Program Files\WebServ\httpd\Teksty Piosenek\dodaj.php on line 24 sad.gif(
ostrylg
  1. <?php
  2. $contents = $POST['CONTENTS']
  3. ?>


dodaj ; na końcu :

  1. <?php
  2. $contents = $POST['CONTENTS'];
  3. ?>

gigzorr
Co jest w nim źle? :/
  1. <?php
  2. if(isLoggedIn())
  3. {?>
  4.  
  5. <br>
  6. <form action="" method="post">
  7. Podaj Wykonawcę:<br>
  8. <input type=text name="wykonawca" size=40><br>
  9. Tytuł Piosenki:<br>
  10. <input type=text name="tytul" size=40><br>
  11. Treść:<br>
  12. <input type=text name="tekst" size=40><br>
  13. <input type="submit" name="dodaj" value="dodaj" /> <br><br>
  14.  
  15. <?php
  16. // odbieramy dane z formularza
  17. $wykonawca = $_POST['WYKONAWCA'];
  18. $tytul = $_POST['TYTUL'];
  19. $contents = $POST['CONTENTS']
  20.  
  21.  
  22.  
  23. // łączymy się z bazą danych
  24. $connection = @mysql_connect("localhost", "root", "")
  25. or die('Brak połączenia z serwerem MySQL');
  26. $db = @mysql_select_db('teksty', $connection)
  27. or die('Nie mogę połączyć się z bazą danych');
  28.  
  29. // dodajemy rekord do bazy
  30. $ins = @mysql_query("INSERT INTO teksty SET wykonawca='$wykonawca', tytul='$tytul', contents='$contents'");
  31.  
  32. if($ins) echo "Rekord został dodany poprawnie";
  33. else echo "Błąd nie udało się dodać nowego rekordu";
  34.  
  35. mysql_close($connection);
  36. }
  37.  
  38. ?>


  1. <?php
  2.  
  3. <form action="" method="post">
  4. Podaj Wykonawcę:<br>
  5. <input type=text name="wykonawca" size=40><br>
  6. Tytuł Piosenki:<br>
  7. <input type=text name="tytul" size=40><br>
  8. Treść:<br>
  9. <input type=text name="tekst" size=40><br>
  10. <input type="submit" name="dodaj" value="dodaj" /> <br><br>
  11.  
  12. <?php
  13. // odbieramy dane z formularza
  14. $wykonawca = $_POST['wykonawca'];
  15. $tytul = $_POST['tytul'];
  16. $tekst = $POST['tekst'];
  17.  
  18.  
  19.  
  20. // łączymy się z bazą danych
  21. $connection = @mysql_connect("localhost", "root", "")
  22. or die('Brak połączenia z serwerem MySQL');
  23. $db = @mysql_select_db('teksty', $connection)
  24. or die('Nie mogę połączyć się z bazą danych');
  25.  
  26. // dodajemy rekord do bazy
  27. $query = "INSERT INTO teksty SET wykonawca='$wykonawca', tytul='$tytul', tekst='$tekst'";
  28.  
  29. if($query)
  30. {
  31. echo "Rekord został dodany poprawnie";
  32. }
  33. else
  34. {
  35. echo "Błąd nie udało się dodać nowego rekordu";
  36. }
  37.  
  38.  
  39. ?>


$_POST pomineles... popraw sobie i ma dzialac

Sprawdzany u siebie .. dziala 101%:
  1. <?php
  2.  
  3. // odbieramy dane z formularza
  4. $wykonawca = $_POST['wykonawca'];
  5. $tytul = $_POST['tytul'];
  6. $tekst = $_POST['tekst'];
  7.  
  8.  
  9.  
  10. // łączymy się z bazą danych
  11. $connection = @mysql_connect("localhost", "root", "vertrigo")
  12. or die('Brak połączenia z serwerem MySQL');
  13. $db = mysql_select_db("test");
  14.  
  15. // dodajemy rekord do bazy
  16. $query = "INSERT INTO test(wykonawca,tytul,tekst) values('".$wykonawca."','".$tytul."','".$tekst."')" or die(mysql_error());
  17.  
  18. $result = mysql_query($query);
  19. if ($result)
  20. {
  21. echo "Rekord został dodany poprawnie";
  22. }
  23. else
  24. {
  25. echo "Błąd nie udało się dodać nowego rekordu";
  26. }
  27. ?>

Zapytanie mozesz zmodyfikowac.
WujekDawidus
Nic to nie dało (a przeciez i tak mam to w lini 19).

Cały czas pokazuje błąd w 24 linijce ...

^^^ odp do ostrygl

ostrylg
  1. <br>
  2. <form action="" method="post">
  3. Podaj Wykonawcę:<br>
  4. <input type=text name="wykonawca" size=40><br>
  5. Tytuł Piosenki:<br>
  6. <input type=text name="tytul" size=40><br>
  7. Treść:<br>
  8. <input type=text name="tekst" size=40><br>
  9. <input type="submit" name="dodaj" value="dodaj" /> <br><br>

  1.  
  2. <?php
  3. // odbieramy dane z formularza
  4. $wykonawca = $_POST["wykonawca"];
  5. $tytul = $_POST["tytu"];
  6. $contents = $_POST["contents"];
  7.  
  8.  
  9.  
  10. // łączymy się z bazą danych
  11. $connection = @mysql_connect("localhost", "root", "")
  12. or die('Brak połączenia z serwerem MySQL');
  13. $db = @mysql_select_db('teksty', $connection)
  14. or die('Nie mogę połączyć się z bazą danych');
  15.  
  16. // dodajemy rekord do bazy
  17. $ins = @mysql_query("INSERT INTO teksty SET wykonawca='$wykonawca', tytul='$tytul', contents='$contents'");
  18.  
  19. if($ins) echo "Rekord został dodany poprawnie";
  20. else echo "Błąd nie udało się dodać nowego rekordu";
  21.  
  22. mysql_close($connection);
  23.  
  24. ?>


sprawdź teraz.
WujekDawidus
gigzorr.

Działa tylko, że jak otworze ten plik php na stronie to jest już "miejsce do wpisania i przycisk submit" a pod tym :Błąd nie udało się dodać nowego rekordu <nie zdoążyłem jeszcze nic wpisać exclamation.gif>

Jak nacisnę Submit to się nic nie dzieje ... sad.gif
gigzorr
Cytat(WujekDawidus @ 21.04.2010, 17:55:25 ) *
gigzorr.

Działa tylko, że jak otworze ten plik php na stronie to jest już "miejsce do wpisania i przycisk submit" a pod tym :Błąd nie udało się dodać nowego rekordu <nie zdoążyłem jeszcze nic wpisać exclamation.gif>



Zrob sobie dla testu , plik jeden test.php i tam trzymaj formularz i a jak wolisz test.html tam gdzie masz method post wpisz test1.php i tutaj wklej kod , i musi dzialac.
A i mam nadzieje ze zmieniles baze danych na swoja i tabele w zapytaniu.
WujekDawidus
Mam tak:
  1. <?php
  2. if(isLoggedIn())
  3. {?>
  4.  
  5. <br>
  6. <form action="" method="post">
  7. Podaj Wykonawcę:<br>
  8. <input type=text name="wykonawca" size=40><br>
  9. Tytuł Piosenki:<br>
  10. <input type=text name="tytul" size=40><br>
  11. Treść:<br>
  12. <input type=text name="tekst" size=40><br>
  13. <input type="submit" name="dodaj" value="dodaj" /> <br><br>
  14. </form>
  15.  
  16.  
  17. <?php
  18.  
  19.  
  20.  
  21. // odbieramy dane z formularza
  22.  
  23. $wykonawca = $_POST['wykonawca'];
  24.  
  25. $tytul = $_POST['tytul'];
  26.  
  27. $tekst = $_POST['tekst'];
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. // łączymy się z bazą danych
  36.  
  37. $connection = @mysql_connect("localhost", "root", "")
  38.  
  39. or die('Brak połączenia z serwerem MySQL');
  40.  
  41. $db = mysql_select_db("teksty");
  42.  
  43.  
  44.  
  45. // dodajemy rekord do bazy
  46.  
  47. $query = "INSERT INTO tekst(wykonawca,tytul,contents) values('".$wykonawca."','".$tytul."','".$tekst."')" or die(mysql_error());
  48.  
  49.  
  50.  
  51. $result = mysql_query($query);
  52.  
  53. if ($result)
  54.  
  55. {
  56.  
  57. echo "Rekord został dodany poprawnie";
  58.  
  59. }
  60.  
  61. else
  62.  
  63. {
  64.  
  65. echo "Błąd nie udało się dodać nowego rekordu";
  66.  
  67. }
  68.  
  69. ?>
  70.  
  71.  
  72.  
  73. <?}
  74. else
  75. {?>
  76. <h3> <a href="?p=login">Zaloguj się</a> jeśli chcesz dodać nowy tekst. </h3>
  77. <?}?>



Form action "" nie musi być. Wszystko ma być w jednym pliku ...



Na dole na stronie cały czas pisze mi "Błąd nie udało się dodać nowego rekordu ", a Submit nic nie robi ... sad.gif
ostrylg
  1.  
  2.  
  3. <br>
  4. <form action="twojastrona.php" method="post">
  5. Podaj Wykonawcę:<br>
  6. <input type=text name="wykonawca" size=40><br>
  7. Tytuł Piosenki:<br>
  8. <input type=text name="tytul" size=40><br>
  9. Treść:<br>
  10. <input type=text name="tekst" size=40><br>
  11. <input type="submit" name="dodaj" value="dodaj" /> <br><br>
  12. </form>
  13.  
  14.  
  15. <?php
  16.  
  17.  
  18.  
  19. // odbieramy dane z formularza
  20.  
  21. if(isset($_POST["dodaj"])){
  22.  
  23. $wykonawca = $_POST['wykonawca'];
  24.  
  25. $tytul = $_POST['tytul'];
  26.  
  27. $tekst = $_POST['tekst'];
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. // łączymy się z bazą danych
  36.  
  37. $connection = @mysql_connect("localhost", "root", "")
  38.  
  39. or die('Brak połączenia z serwerem MySQL');
  40.  
  41. $db = mysql_select_db("teksty");
  42.  
  43.  
  44.  
  45. // dodajemy rekord do bazy
  46.  
  47. $query = "INSERT INTO tekst(wykonawca,tytul,contents) values('".$wykonawca."','".$tytul."','".$tekst."')" or die(mysql_error());
  48.  
  49.  
  50.  
  51. $result = mysql_query($query);
  52.  
  53. if ($result)
  54.  
  55. {
  56.  
  57. echo "Rekord został dodany poprawnie";
  58.  
  59. }
  60.  
  61. else
  62.  
  63. {
  64.  
  65. echo "Błąd nie udało się dodać nowego rekordu";
  66.  
  67. }}
  68.  
  69. ?>


spróbuj tak tylko zmien <form action="twojastrona.php" method="post"> twojastrona.php na nazwe pliku w ktorym to sie znajduje.
gigzorr
Ile mozna mowic razy ? zrob tak jak ci mowilem , skopiowac nie mozesz nawet?
Przeciez masz gotowca czego chciec wiecej?
Zapytanie tez jest zle.. No chyba ze masz w tabeli jako 3 kolumne contents.Jezeli nie to idz sie podszkol.
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.