Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]nie robiu UPDATE'a
adek-
post 26.10.2011, 16:56:18
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 2
Dołączył: 19.04.2007
Skąd: Częstochowa

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


Witam zrobiłem sobie w bazie uzytkownikow dodatkowe pole info= 1/0 które będzie wyrzucalo zalogowanym userom komunikat na ekranie jesli jest 1 i user po odczytaniu komunikatu będzie mógł go ustawić na zero jako ze zauważył i zaakceptował notyfikację. Wszystko działa tylko przeoczyłem gdzieś coś bo mi nie przestawia z 1 na 0
  1. <?php // #### komunikat dla uzytkownika gdy w bazie info =1
  2. if (isset($_SESSION['login'])) { //czy zalogowany
  3. //echo $login;
  4. $wynik=mysql_query("SELECT * FROM $tabela WHERE login='$login' and info=1");
  5. if (mysql_num_rows($wynik) == 1 && $login == $_SESSION['login']) {
  6.  
  7. if (isset($_POST['submit']) && !empty($_POST['submit'])) { //gdy submit wcisniety
  8. $wynik=mysql_query("UPDATE `$tabela` SET `info`=0 WHERE `login`='$login'"); // zapytanie które ma ustawic 0 dla pola info dla użytkownika o zmiennej $login - wcześniej zdefiniowej
  9. //$rezultat = mysql_query($wynik) or die(mysql_error());
  10. }
  11.  
  12. echo <<< KONIEC
  13.   <form class="form" action="index.php" method="post">
  14.   <input type="hidden" name="zeruj" value="TRUE" />
  15. <!--
  16.   <p>
  17. <div class="label"><label for="info">Przyjąłem</label></div>
  18. <input type="hidden" name="info" id="info" value="0" />
  19. </p> -->
  20.  
  21.   <p class="submit">
  22. <input type="submit" value="Przyjąłem zmianę kursów" />
  23. </p>
  24. KONIEC;
  25. } else {?>
  26. <li><a href="logowanie.php">Nie masz nic do kasowania</a></li>
  27. <?php }} ?>

MySQL nie wyrzuca błędów przy zapytaniu z mysql_error, nawet jesli ma uruchomione opcje error_reporting(E_ALL);
Go to the top of the page
+Quote Post
nospor
post 26.10.2011, 18:15:25
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
MySQL nie wyrzuca błędów przy zapytaniu z mysql_error, nawet jesli ma uruchomione opcje error_reporting(E_ALL);
Przecież nigdzie nie robisz mysql_error() wiec trudno by ci go rzucało...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Dominis
post 26.10.2011, 19:42:12
Post #3





Grupa: Zarejestrowani
Postów: 77
Pomógł: 19
Dołączył: 13.02.2010

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


  1. $tabela


w

  1. $wynik=mysql_query("SELECT * FROM $tabela WHERE login='$login' and info=1");

czy
  1. $wynik=mysql_query("UPDATE `$tabela` SET `info`=0 WHERE `login`='$login'");


jest pusta, nigdzie nie przypisujesz na jakiej tabeli ma pracowac


--------------------
www.maxcode.pl
Go to the top of the page
+Quote Post
adek-
post 27.10.2011, 11:15:37
Post #4





Grupa: Zarejestrowani
Postów: 124
Pomógł: 2
Dołączył: 19.04.2007
Skąd: Częstochowa

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


nospor nie sprecyzowałem dokładnie, "nie wyrzuca przy zapytaniu z mysql_error", którego nie wkleiłem tutaj, tylko o tym napisałem po ówczesnym sprawdzeniu wink.gif
tak wyglądał kawałek kodu:
  1. $wynik="UPDATE `$tabela` SET `info`=0 WHERE `login`='$login'";
  2. $rezultat = mysql_query($wynik) or die(mysql_error());

Domonis zapomniałem dodać również iż tabela jest zawarta w pliku config.inc i jest zaincludowana do danego dokumentu.

zmienne wszystkie i sesion i login i jakiekolwiek wyświetlają poprawne wartości jakie powinny mieć, nie działa tylko przycisk update, czyli ten kawałek kodu, który po zalogowaniu się użytkownika X wyświetla czy pole MySQL u niego "info =1", jeśli tak to wyświetla monit na ekranie i to jest ten monit, który jest zarazem przyciskiem robiącym z pola "info=0".

a mam takie pytanie, bo jeśli wywołuję i sprawdzam warunek poprzez mysql_num_rows
  1. $wynik=mysql_query("SELECT * FROM $tabela WHERE login='$login' and info=1");
  2. if (mysql_num_rows($wynik) == 1 && $login == $_SESSION['login']) {

to czy czasem nie muszę też tego mojego zapytani UPDATE wysłać jako num_rows?
  1. $wynik=mysql_query("UPDATE `$tabela` SET `info`=0 WHERE `login`='$login'");

czy warunek, że $login = $_SESSION['login'] jest wystarczający do zmiany info przy odpowiednim loginie?
idę sprawdzić... smile.gif

//edited 27.10.11 17:07
kurczę Domonis po części miałeś rację... bo była zmienna tabela zdefinoiwana, ale pod nią był przypadkowo zaincludowany plik który posiadał też tą samą zmienną, ale z zupełnie inną treścią!

Ten post edytował adek- 27.10.2011, 16:10:04
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: 3.07.2025 - 06:29