Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]nie robiu UPDATE'a
Forum PHP.pl > Forum > Przedszkole
adek-
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);
nospor
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...
Dominis
  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
adek-
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ą!
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.