Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Sprawdzanie czy zmienna jest ustalona z $_GET
Forum PHP.pl > Forum > Przedszkole
Czapla
mam adres
  1. lista_dokument.php?typ=hasla_p&sortuj=po_autorze&strona=1&slowo=aaa

oraz adres
  1. lista_dokument.php?typ=slowo_k&sortuj=po_autorze&strona=1&slowo=aaa

teraz w zależności od wyboru to co w adresie (konkretnie typ=hasla_p lub typ=slowa_k) zmieniał linie zapytania SQL do bazy danych
  1. <?php
  2. $slowa_kluczowe = $_GET['slowa_k'];
  3. $hasla_przedmiotowe = $_GET['hasla_p'];
  4.  
  5. switch ($sortuj)    {
  6.    case 'po_autorze':
  7.   $SQL = "select id_dokument as id, slowa_kluczowe, hasla_przedmiotowe";
  8.   $SQL .= " from przy_dokumenty tt ";
  9.   if (!isset($slowa_kluczowe)) // jaką funkcję tu wstawić
  10.   {
  11.   $SQL .= " where slowa_kluczowe LIKE '%$slowo%' ";
  12.   }
  13.   elseif (!isset($hasla_przedmiotowe))  //jaką funkcję tu wstawić
  14.   {
  15.   $SQL .= " where hasla_przedmiotowe LIKE '%$slowo%' ";
  16.   }
  17.   $SQL .= " order by autor ASC LIMIT $start,$ile";
  18.   $polaczenie->WykonajZapytanie ($SQL);
  19.   //echo "<b>DEBUG: </b> " .$SQL;
  20.    break;
  21. ...
  22. }
  23. ?>

Teraz sprawdza tyko warunek else, jak zrobić aby sprawdzało oba warunki?

Pozdrawiam
golaod
Skąd ty taką siekane wziąłeś ?
Po pierwsze nie masz czegoś takiego jak slowa kluczowe czy hasla przedmiotowe tylko
$_GET['typ'] a nie $_GET['hasla_p'] lub $_GET['slowa_k']
Po drugie jak robisz switch to robisz go z $_GET['sortuj'] bo tak masz w linku a nie z $sortuj. Co to za jakieś dziwne mieszanie ? Zrobiłeś extract($_GET) że tak możesz robić ?
Popraw to co Ci narazie napisałem sądzę, że wtedy sam dasz rade rozwiązać swój problem.
@edit oczywiście tyczy się to co napisałem również tego: nie $slowo tylko $_GET['slowo']!
barthpl
Trochę tutaj zamieszałeś. W adresie nie masz zmiennej $_GET['hasla_p'] ani $_GET['hasla_p']. To są wartości zmiennej $_GET['typ']. Poprawiony kod wyglądać powinien chyba tak:
  1. <?php
  2. $sortuj = $_GET['sortuj'];
  3. $slowo = $_GET['slowo'];
  4.  
  5. switch ($sortuj) {
  6. case 'po_autorze':
  7. $SQL = "select id_dokument as id, slowa_kluczowe, hasla_przedmiotowe";
  8. $SQL .= " from przy_dokumenty tt ";
  9.  
  10. if( isset($_GET['typ']) ){
  11. $typ = $_GET['typ'];
  12. if( strcmp($typ, 'slowo_k') )
  13. $SQL .= " where slowa_kluczowe LIKE '%$slowo%' ";
  14. else if( strcmp($typ, 'hasla_p') )
  15. $SQL .= " where hasla_przedmiotowe LIKE '%$slowo%' ";
  16. }
  17.  
  18. $SQL .= " order by autor ASC LIMIT $start,$ile";
  19. // $polaczenie->WykonajZapytanie ($SQL);
  20. echo "<b>DEBUG: </b> " .$SQL;
  21. break;
  22. }
  23. ?>


Dla podanych adresów tworzy następujące zapytania:

  1. SELECT id_dokument AS id, slowa_kluczowe, hasla_przedmiotowe FROM przy_dokumenty tt WHERE slowa_kluczowe LIKE '%aaa%' ORDER BY autor ASC LIMIT ,


  1. SELECT id_dokument AS id, slowa_kluczowe, hasla_przedmiotowe FROM przy_dokumenty tt WHERE hasla_przedmiotowe LIKE '%aaa%' ORDER BY autor ASC LIMIT ,


Nie zapomnij jeszcze zdefiniować zmiennych $start i $ile.
Czapla
ja te zmienne miałem tylko ich nie wkleiłem bo wydawalo mi się to oczwiste, anyway zaraz sprawdze biggrin.gif
i faktycznie popieprzyłem wartości dla zmiennej typ.

Dzięki i Pozdrawiam
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.