Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Sprawdzanie czy zmienna jest ustalona z $_GET
Czapla
post
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 3
Dołączył: 10.12.2007
Skąd: Bielsko-Biała

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


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

Ten post edytował Czapla 13.08.2008, 11:35:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
barthpl
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 06:49