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


--------------------
Life is a game, continue playing and try to be a pr0.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
golaod
post
Post #2





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


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']!

Ten post edytował golaod 13.08.2008, 11:41:26
Go to the top of the page
+Quote Post
barthpl
post
Post #3





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.


--------------------
Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
Go to the top of the page
+Quote Post
Czapla
post
Post #4





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

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


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

Ten post edytował Czapla 14.08.2008, 09:44:00


--------------------
Life is a game, continue playing and try to be a pr0.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 07:29