Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Warunek dodanie do bazy
tenloginjestzaje...
post 23.04.2016, 16:37:45
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


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="" />


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
kajzur
post 23.04.2016, 19:53:08
Post #2





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

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


Średnio rozumiem chyba.. Chcesz żeby wartość pola
  1. $_POST['id']

decydowałą o tym do jakiej tabelki chcesz wrzucić dane, tak?


--------------------
Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 23.04.2016, 20:25:09
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


dokładnie, jeśli input id zawiera tekst to dodaje do tabeli answer, jeśli nie to do tabeli reviews. Dzięki


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
Beniooo
post 23.04.2016, 20:32:27
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

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


http://php.net/manual/pl/function.empty.php
http://php.net/manual/pl/function.isset.php


--------------------
Mój post rozwiązał Twój problem? Naciśnij co Ci szkodzi? ;-)
Go to the top of the page
+Quote Post
rad11
post 23.04.2016, 20:35:18
Post #5





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Możesz też zrobić rzutowanie na int i jeżeli wartość większa niż 0 to reviews jeżeli nie to answers

Ten post edytował rad11 23.04.2016, 20:35:43
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 23.04.2016, 20:42:39
Post #6





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


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. ?>


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
Beniooo
post 23.04.2016, 20:48:49
Post #7





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

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


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


--------------------
Mój post rozwiązał Twój problem? Naciśnij co Ci szkodzi? ;-)
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 23.04.2016, 21:02:38
Post #8





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


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.


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
rad11
post 23.04.2016, 21:08:43
Post #9





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Bo nie ma w post indeksu comment? Wogole według mnie te Twoje warunki są bez sensu
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 23.04.2016, 21:13:48
Post #10





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


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. ?>


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
rad11
post 23.04.2016, 21:16:13
Post #11





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


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

Ten post edytował rad11 23.04.2016, 21:18:54
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 23.04.2016, 21:23:29
Post #12





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


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="" />


Ten post edytował tenloginjestzajety 23.04.2016, 21:25:18


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
rad11
post 23.04.2016, 21:32:54
Post #13





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


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

Ten post edytował rad11 23.04.2016, 21:36:50
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 12:54