Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Warunek dodanie do bazy
Forum PHP.pl > Forum > Przedszkole
tenloginjestzajety
Witam
Przycisk wstawia do pola input numer id jeżeli pole to jest puste to chciałbym, aby dodano do innej tablicy w bazie. Robię tak jednak bez efektu.

  1. <?php
  2. if($_POST['id'] == '')
  3. if(isset($_POST['comment'])){
  4. $comment = mysql_real_escape_string($_POST['comment']);
  5. $mail = mysql_real_escape_string($_POST['mail']);
  6. $top = mysql_real_escape_string($_POST['id']);
  7. $time = mktime();
  8. mysql_query("INSERT INTO `answer` SET `top` = '$top', `time` = '$time', `content` = '$comment', `tag` = '$tag', `mail` = '$mail'");
  9. echo 'answer';
  10. }
  11. else {
  12. if(isset($_POST['comment'])){
  13. $comment = mysql_real_escape_string($_POST['comment']);
  14. $mail = mysql_real_escape_string($_POST['mail']);
  15. $time = mktime();
  16. mysql_query("INSERT INTO `rewievs` SET `time` = '$time', `content` = '$comment', `tag` = '$tag', `mail` = '$mail'");echo 'rewievs';
  17. }
  18. }
  19. ?>


Jeszcze mam problem z przesunięciem strony po kliknięciu do formularza ( dół strony ). Nie wiem jak zastosować kotwicę w przycisku (#kotwica ). Dziękuje

  1. <input class="format" type="button" value="odpowiedz" onclick="wpisz('.$id.');">
  2. <input type="text" class="szukaj" id="id" name="id" value="" />
kajzur
Średnio rozumiem chyba.. Chcesz żeby wartość pola
  1. $_POST['id']

decydowałą o tym do jakiej tabelki chcesz wrzucić dane, tak?
tenloginjestzajety
dokładnie, jeśli input id zawiera tekst to dodaje do tabeli answer, jeśli nie to do tabeli reviews. Dzięki
rad11
Możesz też zrobić rzutowanie na int i jeżeli wartość większa niż 0 to reviews jeżeli nie to answers
tenloginjestzajety
dodaje tylko do tabeli reviews bez wartości w comment, wyrzuca również błąd:
Notice: Undefined index: comment in


  1. <?php
  2. if(empty($_POST['id'])){
  3. if(isset($_POST['comment'])){
  4. $comment = mysql_real_escape_string($_POST['comment']);
  5. $mail = mysql_real_escape_string($_POST['mail']);
  6. $top = mysql_real_escape_string($_POST['id']);
  7. $time = mktime();
  8. mysql_query("INSERT INTO `answer` SET `top` = '$top', `time` = '$time', `content` = '$comment', `tag` = '$tag', `mail` = '$mail'"); echo 'answer';
  9. }}
  10. else
  11. {
  12. if(isset($_POST['id'])){
  13. $comment = mysql_real_escape_string($_POST['comment']);
  14. $mail = mysql_real_escape_string($_POST['mail']);
  15. $time = mktime();
  16. mysql_query("INSERT INTO `rewievs` SET `time` = '$time', `content` = '$comment', `tag` = '$tag', `mail` = '$mail'"); echo 'rewievs';
  17. }}
  18. ?>
Beniooo
Notice: Undefined index: comment in oznacza, że w tablicy POST nie ma klucza comment
Zrób sobie na początku skryptu var_dump($_POST);
I zobacz co Ci zwraca, a jeżeli nie wpadniesz na nic, wrzuć tutaj co Ci wypluje var_dump
tenloginjestzajety
array(4) { ["description"]=> string(4) "test" ["mail"]=> string(4) "test" ["id"]=> string(0) "" ["submit"]=> string(5) "Dodaj" }
array(4) { ["description"]=> string(4) "test" ["mail"]=> string(4) "test" ["id"]=> string(5) "39377" ["submit"]=> string(5) "Dodaj" }

Nie dodaje do bazy.
rad11
Bo nie ma w post indeksu comment? Wogole według mnie te Twoje warunki są bez sensu
tenloginjestzajety
faktycznie, pomyłka! Dodaje, ale oba rekordy do jednej tablicy: reviews. Faktycznie coś nie tak z warunkami..
  1. <?php
  2. echo var_dump($_POST);
  3. if(empty($_POST['id'])){
  4. if(isset($_POST['description'])){
  5. $comment = mysql_real_escape_string($_POST['description']);
  6. $mail = mysql_real_escape_string($_POST['mail']);
  7. $time = mktime();
  8. mysql_query("INSERT INTO `rewievs` SET `time` = '$time', `content` = '$comment', `tag` = '$tag', `mail` = '$mail'"); echo 'rewievs';
  9. }
  10. }
  11. else
  12. {
  13. if(isset($_POST['description'])){
  14. $comment = mysql_real_escape_string($_POST['description']);
  15. $mail = mysql_real_escape_string($_POST['mail']);
  16. $time = mktime();
  17. mysql_query("INSERT INTO `rewievs` SET `time` = '$time', `content` = '$comment', `tag` = '$tag', `mail` = '$mail'"); echo 'rewievs';
  18. }}
  19. ?>
rad11
W powyższym kodzie robisz dodanie do reviews w dwóch warunkach więc jak ma dodać do innej ? A poza tym podwajasz kod nie potrzebnie. Co to jest echo var_dump? Samo var_dump wystarczy
tenloginjestzajety
bardzo dziękuje za pomoc! Działa
  1. <?php
  2. var_dump($_POST);
  3. if(empty($_POST['id'])){
  4. if(isset($_POST['description'])){
  5. $comment = mysql_real_escape_string($_POST['description']);
  6. $mail = mysql_real_escape_string($_POST['mail']);
  7. $time = mktime();
  8. mysql_query("INSERT INTO `rewievs` SET `time` = '$time', `content` = '$comment', `tag` = '$tag', `mail` = '$mail'"); echo 'rewievs';
  9. }
  10. }
  11. else
  12. {
  13. if(isset($_POST['description'])){
  14. $comment = mysql_real_escape_string($_POST['description']);
  15. $mail = mysql_real_escape_string($_POST['mail']);
  16. $top = mysql_real_escape_string($_POST['id']);
  17. $time = mktime();
  18. mysql_query("INSERT INTO `answer` SET `time` = '$time', `top` = '$top', `content` = '$comment', `tag` = '$tag', `mail` = '$mail'"); echo 'answer';
  19. }
  20. }
  21. ?>


Jeszcze tylko odnośnie zejścia na dół do formularza po kliknięciu (#kotwica ) w input button. Jest taka możliwość?

  1. <input class="format" type="button" value="odpowiedz" onclick="wpisz('.$id.');">
  2. <input type="text" class="szukaj" id="id" name="id" value="" />
rad11
Zrób sobie tak

  1. $table = ( (int) $_POST['id'] > 0 )? 'reviews' : 'answers';
  2. $comment = isset($_POST['description'])? $_POST['description'] : '';
  3. $mail = isset($_POST['mail'])? $_POST['mail'] : '';
  4. $time = time();
  5.  
  6. I wstaw to w jedno zapytanie. Z reszta danych tak samo.


Kotwice ustawia się do atrybutu href czyli tag a. Na buttonie musisz użyć scrollTop i js
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.