Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobierane dane tylko do konkretnego ID
Forum PHP.pl > Forum > PHP
myxoske
Witam,

Stworzyłem proste polecenie, które ma za zadanie pobierać tytuł zgodny z ID i wyświetlać go na stronie.
Wszystko działało pięknie dopóki nie przekroczyłem ID 120, wszystkie ID powyżej nie wyświetlają już tytułu:

  1. $tytul_strony = ("/wiadomosci/$id");
  2. if($tytul_strony==$link)
  3. {
  4. $message = mysql_query("select title from messenger where id='".$_GET['id']."'");
  5. $show = mysql_fetch_array($message);
  6. $title = $show['title'];
  7. $title = "Wiadomość: $title";
  8. mysql_query("UPDATE messenger SET viewed='1' WHERE id='".$_GET['id']."'");
  9. }





Wie ktoś co może być przyczyną problemu?

Pozdrawiam
emstawicki
Korzystanie z mysql w php w takiej jest przestarzałe. Umieszczanie $_GET bezpośrednio w zapytaniu jest niebezpieczne. Czy wiersz w tabeli o id 5555 istnieje?
myxoske
Wiersz istnieje i jeśli dla przykładu jego ID zmienie na wartość poniżej 120 - wyświetla się prawidłowo. Co do pozostałych wskazówek na pewno się zastosuje i poprawię kod.
emstawicki
Próbowałeś zdumpować i zobaczyć czy odpowiednie wyniki zwraca $message, $show ?
(var_dump)
myxoske
Również przy użyciu var_dump nie zwraca żadnych wyników (przy ID powyżej 120). Natomiast po zmianie ID na niższe zwraca prawidłowo

  1. var_dump($show, $message);
  2. // i wynik
  3. array(2) { [0]=> string(11) "sacascsacas" ["title"]=> string(11) "sacascsacas" } resource(11) of type (mysql result)
Turson
Jaki jest typ pola `id`?
maly_swd
  1. $message = mysql_query("select title from messenger where id=".((int)$_GET['id']));
  2.  
myxoske
Typ pola to int(10)

Cytat
  1. var_dump($show, $message);
  2. // i wynik
  3. array(2) { [0]=> string(11) "sacascsacas" ["title"]=> string(11) "sacascsacas" } resource(11) of type (mysql result)


Niestety w dalszym ciągu to samo
emstawicki
Raportowanie i wyświetlanie błędów masz włączone?
Na dobrą sprawę powinno się wyświetlać samo "Wiadomość: " blink.gif

ps. jak wygląda kod wyświetlający zmienną z tytułem
myxoske
Cytat(emstawicki @ 6.10.2016, 10:36:18 ) *
Raportowanie i wyświetlanie błędów masz włączone?


  1. Notice: Undefined variable: title in /var/www/wiadomosci.php on line 182


Tylko, że tak jak wcześniej po zmianie ID w bazie komunikat się nie wyświetla

Cytat(emstawicki @ 6.10.2016, 10:36:18 ) *
Na dobrą sprawę powinno się wyświetlać samo "Wiadomość: " blink.gif
ps. jak wygląda kod wyświetlający zmienną z tytułem


  1. <div class="here-sub">
  2. <i class="fa fa-home mr5" aria-hidden="true"></i> <a href="/" class="red link">Strona główna</a> ? <a href="/wiadomosci" class='red link'>Wiadomości</a> ? <?php echo $title ?>
  3. </div>
emstawicki
Linia 182 to jest
  1. $title = "Wiadomość: $title";

questionmark.gif
Ma to znacznie smile.gif
myxoske
Nawet jak zmienię na:

  1. $tytul = $show['title'];
  2. $wyswietl = "Wiadomość: $tytul";
  3. // Wyświetla się
  4. Notice: Undefined variable: wyswietl in /var/www/wiadomosci.php on line 182


I jak poprzednio po zmianie ID na niższe wyświetla prawidłowo
emstawicki
Ponawiam pytanie o linię 182...
myxoske
Cytat(emstawicki @ 6.10.2016, 13:08:05 ) *
Ponawiam pytanie o linię 182...


Linijka 182

  1. 182 <i class="fa fa-home mr5" aria-hidden="true"></i> <a href="/" class="red link">Strona główna</a> ť <a href="/wiadomosci" class='red link'>Wiadomości</a> ť <?php echo $title; ?>


Nie wiem dlaczego ale powyżej ID 120
  1. $tytul_strony = ("/wiadomosci/$id");
  2. if($tytul_strony==$link)
  3. //zwraca że nie jest to prawda więc nie definiuje zmiennej $title
  4. // Pytanie tylko dlaczego
nansss93
A jak wygląda zmienna
  1. $link
?
myxoske
Cytat(nansss93 @ 6.10.2016, 13:28:57 ) *
A jak wygląda zmienna
  1. $link
?


  1. //Zmienna $link
  2. $link = $_SERVER['REQUEST_URI'];
viking
Wyechuj sobie obie zmienne i porównaj.
myxoske
Cytat(viking @ 6.10.2016, 13:36:54 ) *
Wyechuj sobie obie zmienne i porównaj.


Zarówno w ID poniżej jak i powyżej 120 zwraca prawidłowo obie zmienne
emstawicki
Czyli jesteś pewien że warunek:
  1. if($tytul_strony==$link)

jest spełniony?
viking
Cytat(myxoske @ 6.10.2016, 13:42:39 ) *
//zwraca że nie jest to prawda
Zarówno w ID poniżej jak i powyżej 120 zwraca prawidłowo obie zmienne


Czary mary? Skoro zwraca false to druga część twojej wypowiedzi nie może być prawdą wink.gif
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.