Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Mysqli Dodawanie do bazy danych
KrzysiekKCN
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 4.08.2009
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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

Ten post edytował KrzysiekKCN 24.02.2011, 22:00:24
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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.

Ten post edytował sadistic_son 24.02.2011, 22:18:05
Go to the top of the page
+Quote Post
KrzysiekKCN
post
Post #3





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 4.08.2009
Skąd: Poznań

Ostrzeżenie: (0%)
-----


No wiem, ale ja podaje 2 pola.



Ten post edytował KrzysiekKCN 24.02.2011, 22:14:40
Go to the top of the page
+Quote Post
sadistic_son
post
Post #4





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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.

Ten post edytował sadistic_son 24.02.2011, 22:18:40
Go to the top of the page
+Quote Post
KrzysiekKCN
post
Post #5





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 4.08.2009
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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]"')";
Go to the top of the page
+Quote Post
sadistic_son
post
Post #6





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 23:00