Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Mysqli Dodawanie do bazy danych
Forum PHP.pl > Forum > Przedszkole
KrzysiekKCN
Cześć, witajcie.
Napisałem jak się może wydawać banalny skrypt do dodawania komentarzy do bazy danych, który nie działa i nie wyświetla żadnych błędów. Już nie mam pomysłów co może być powodem braku działania.
  1. <link type="text/css" rel="stylesheet" href="../style.css" />
  2. </head>
  3.  
  4. <div id="contact-area">
  5.  
  6. <form method="post" action="add_comments_script.php">
  7. Autor:<br>
  8. <input class="input" type="text" name="autor" class="input"/>
  9. <br>
  10. Komentarz:<br>
  11. <textarea name="komentarz" rows="20" cols="20"></textarea>
  12. <br>
  13. <input class="input" type="submit" value="Wyślij"/>
  14. </form>
  15.  
  16. <div style="clear: both;"></div>
  17.  
  18. </div>


  1. <head>
  2. <link type="text/css" rel="stylesheet" href="../style.css" />
  3. </head>
  4. <?php
  5. ini_set('display_errors', 1);
  6.  
  7. include ('../config.php');
  8. //łącze z bazą
  9. $mysql = mysqli_connect($serwer,$datauser,$datapass);
  10. //wybieram tabele
  11. $db = mysqli_select_db($mysql, $dtb);
  12. if ((empty($_POST['autor'])) || (empty($_POST['komentarz']))) {
  13. echo '<font style="color: red;">Przynajmniej jedno z pól jest nie wypełnione!</font>';
  14. echo '<input type=button value=" " class="powrot" onClick="history.back();">';
  15. } else {
  16. $autor = htmlspecialchars($_POST['autor']);
  17. $komentarz = htmlspecialchars($_POST['komentarz']);
  18. $ip = $_SERVER['REMOTE_ADDR'];
  19. $data = date("Y-m-d");
  20. $zapytanie = "INSERT INTO `comments` (`autor`, `ip`, `tresc`, `data`) VALUES ('".$autor."', '".$ip."', '".$komentarz."', '".$data>"')";
  21. $wynik = mysqli_query($mysql, $zapytanie);
  22. echo '<font style="color: green;">Twój komentarz został dodany!<br></font>';
  23. include ('add_comments.php');
  24. }
  25. mysqli_close($mysql);
  26. ?>


Czekam na pomysły i pozdrawiam KrzysiekKCN
sadistic_son
Sprawdz teraz:
  1. <head>
  2. <link type="text/css" rel="stylesheet" href="../style.css" />
  3. </head>
  4. <?php
  5. ini_set('display_errors', 1);
  6.  
  7. include ('../config.php');
  8. //łącze z bazą
  9. $mysql = mysqli_connect($serwer,$datauser,$datapass);
  10. //wybieram tabele
  11. $db = mysqli_select_db($mysql, $dtb);
  12. if (!empty($_POST['autor']) || !empty($_POST['komentarz'])) {
  13.  
  14. $autor = htmlspecialchars($_POST['autor']);
  15. $komentarz = htmlspecialchars($_POST['komentarz']);
  16. $ip = $_SERVER['REMOTE_ADDR'];
  17. $data = date("Y-m-d");
  18. $zapytanie = "INSERT INTO `comments` (`autor`, `ip`, `tresc`, `data`) VALUES ('".$autor."', '".$ip."', '".$komentarz."', '".$data>"')";
  19. $wynik = mysqli_query($mysql, $zapytanie);
  20. echo '<font style="color: green;">Twój komentarz został dodany!<br></font>';
  21. include ('add_comments.php');
  22. } else {
  23.  
  24. echo '<font style="color: red;">Przynajmniej jedno z pól jest nie wypełnione!</font>';
  25. echo '<input type=button value=" " class="powrot" onClick="history.back();">';
  26.  
  27. }
  28. mysqli_close($mysql);
  29. ?>
Else, czyli dodawanie do bazy wykona sie w Twoim kodzie tylko jesli oba pola beda wypelnione.
KrzysiekKCN
No wiem, ale ja podaje 2 pola.

sadistic_son
Przeanalizuj te dwa kody:

To jest odpowiednik mojego kodu:
  1. if(!empty($_GET['jeden']) || !empty($_GET['dwa'])){
  2. echo 'dodawanie do bazy';
  3. }else{
  4.  
  5. echo 'wypelnij minimum jedno pole';
  6. }


A to Twojego:
  1. if(empty($_GET['jeden']) || empty($_GET['dwa'])){
  2. echo 'wypelnij minimum jedno pole';
  3. }else{
  4.  
  5. echo 'dodawanie do bazy';
  6. }
Posprawdzaj z ustawionym $_GET['jeden'] lub $_GET['dwa'] lub oboma na raz, lub bez zadnego. W obu kodach zachowanie jest inne.

PS. Sprawdz jeszcze raz moj kod bo zorientowalem sie ze popierprzylem nawiasy.
KrzysiekKCN
Rozumiem to, chodziło mi tylko dlaczego nie dodaje bo akurat chciałem żeby 2 pola wymagane.
Przez przypadek jak powiększałem czcionkę to zauważyłem błąd, już działa ^^.
  1. #
  2. #
  3. $zapytanie = "INSERT INTO `comments` (`autor`, `ip`, `tresc`, `data`) VALUES ('".$autor."', '".$ip."', '".$komentarz."', '".$data[size="4"][b]>[/b][/size]"')";
sadistic_son
Cytat(KrzysiekKCN @ 24.02.2011, 22:19:43 ) *
chciałem żeby 2 pola wymagane.
Aaaa, to radzę zmienić komentarz z linijki 14:
  1. echo '<font style="color: red;">Przynajmniej jedno z pól jest nie wypełnione!</font>';
bo dopiero po dokladniejszym przeczytaniu zrozumialem ze przynajmniej jedno jest niewypelnione. Tak to rozumialem ze przynajmniej jedno ma byc wypelnione. Uzytkownicy tez beda to omylkowo rozumiec.
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.