Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Porónywanie zmiennych
Forum PHP.pl > Forum > Przedszkole
thurinon
Witam,

tworzę sobie taki systemik gdzie na stronie wybieram kategorię, a później ew. jeszcze tytuł konkretnej 'strony'. To wszystko jest trzymane w w bazie danych.
Oto fragment kodu.

  1. <?php
  2.  
  3. if(isset($_GET['category']) && isset($_GET['title']))
  4. {
  5. $category = $_GET['category'];
  6. $title =$_GET['title'];
  7.  
  8. $sql = "SELECT * FROM concent WHERE category = '".$category."' AND title = '".$title."'";
  9. $res = mysql_query($sql) or die('Zapytanie: '.$sql.' --- błąd: '.mysql_error());
  10.  
  11. while ($row = mysql_fetch_array($res))
  12. {
  13. echo $row['concent'];
  14. }
  15. }
  16.  
  17. /*........Tutaj inne warunki (elseif - istnieje tylko kategoria a nie ma tytułu to wyświetla stronę główną danej kategorii i else czyli wyświetlenie strony głównej bez kategorii i konkretnego wpisu*/
  18. ?>


adres strony w tym momencie ma taką budowę : http://localhost/?category=test&&title=wpis,testowy

po wklepaniu tego zobaczę mój testowy wpis w odpowiedniej kategorii, ale jeżeli się pomylę, i wpiszę np: http://localhost/?category=test&&t...=wpis,tttestowy (literówka w tytule)

to nie pojawi się nic, a fajnie by było gdyby pojawiła się stosowna informacja w stylu "zły adres", "błąd 404". Wymyśliłem więc, że trzeba porównać zmienne - czy $category jest równa $row['category'] i to samo ze zmiennymi 'title'.
Kod:

  1. <?php
  2. if(isset($_GET['category']) && isset($_GET['title']))
  3. {
  4. $category = $_GET['category'];
  5. $title =$_GET['title'];
  6.  
  7. $sql = "SELECT * FROM concent WHERE category = '".$category."' AND title = '".$title."'";
  8. $res = mysql_query($sql) or die('Zapytanie: '.$sql.' --- błąd: '.mysql_error());
  9.  
  10. while ($row = mysql_fetch_array($res))
  11. {
  12. if($title == $row['title'] && $category == $row['category'])
  13. {
  14. echo $row['concent'];
  15. }
  16. else
  17. {
  18. echo '<h2>Coś jest nie tak</h2>';
  19. }
  20. }
  21. }
  22. ?>


I ogólnie to nie działa, jak wpiszę poprawny adres to wyświetla się to co powinno a jak zły, to nie wyświetli się nic.
Pytania.
Czy ja źle kombinuje - jeżeli tak to proszę nakierujcie mnie
Czy kombinowanie jest dobre, ale w kodzie jest jakiś błąd?

Z góry dzięki za wszystkie odpowiedzi smile.gif Pozdrawiam
sadistic_son
A co oznacza ten zapis?
  1. if(($_GET['category']) && ($_GET['title']))
Jak już to:
  1. if(isset($_GET['category']) && isset($_GET['title']))
Pokazywanie zapytania w przypadku błędu to nie jest dobry pomysł. Raczej zmieniłbym ten komunikat: Zapytanie: '.$sql.' --- błąd: ' na jakiś mniej mówiący o konstrukcji bazy.
thurinon
hmm powinno być z 'isset' już poprawiam, choć działa i bez tego. a co do raportowania błędów - przed wypuszczeniem strony w sieć wyłączę wyświetlanie błędów, ale póki co wolę wiedzieć co i gdzie robię źle smile.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.