Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL] [PHP] pobieranie zmiennej z tablicy $_GET i zapytanie SQL
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%)
-----


Chcę aby po naciśnięciu tagu przeszukał całą bazę danych w rekordzie slowa kluczowe i zwrócil rekordy dla podanej frazy.

Mam pole w bazie MySQL TEXT przechowywujące tagi np. foo, bar, wom, bat (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) w polu tekstowym za pomocą explode rozbijam ciąg na poszczególne tagi.

 
  1. <?php
  2. ...
  3.  
  4. //EXPLODE
  5.  print ("<tr><td><b>Słowa kluczowe:</b></td></tr><tr><td>");
  6.  $slowa= $polaczenie->ZwrocWiersz("slowa_kluczowe");
  7.   $slowa=explode(' ', $slowa);
  8.   foreach($slowa as $slowo)
  9.   {
  10.   echo '<a href="lista_dokument.php?tag='.$slowo.'"> '.$slowo.' </a>';
  11.   }
  12.  
  13. ...
  14. ?>


Teraz chce wywołać zmienną $słowo z adresu w innym pliku, tak aby zapytanie wyglądało mniej więcej tak

innyplik.php

  1. <?php
  2. ...
  3.  
  4.   $slowo = $_GET['slowo'];
  5.  
  6.   $SQL = "select id_dok as id, nazwa, tytul, opis, slowa_kluczowe";
  7.   $SQL .= " from dok tt ";
  8.   $SQL .= " where slowa_kluczowe LIKE '$slowo' "; // 
  9.   $SQL .= "order by id_dok LIMIT $start,$ile"; 
  10.   $polaczenie->WykonajZapytanie($SQL);
  11.  
  12. ...
  13. ?>


Oczywiście tak nie działa...

I jeszcze jedno pytanie: co z polską czcionką, adresy URL znaki diakrytyczne przechowują w formie % i numeru, czyli musze przepuścić przez funkcje rawnurldecode(); czyli tak?

 
  1. <?php
  2. rawurldecode($slowo);
  3. ?>


Pozdrawiam
Go to the top of the page
+Quote Post
f1xer
post
Post #2





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


1. Musisz zrobić link w postaci:
  1. <a href="innyplik.php?slowo=Tag">Tag</a>

ale popraw to:
  1. <?php
  2. $slowo=$_GET['slowo'];
  3. ?>

poczytaj o SQL INJECTION na pewno zaczaisz o co mi chodzi
Go to the top of the page
+Quote Post
Czapla
post
Post #3





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

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


no wlaśnie tak nie działa i wyświetla mi wszystkie rekordy, nie zależnie jką frazę wpiszę do adresu przeglądarki

  1. <a href='lista_dokument.php?sortuj=po_tytule&strona=<?php echo $strona; ?>&slowo_kluczowe=<?php echo $slowo; ?>'>


Ten post edytował Czapla 12.08.2008, 07:23:41
Go to the top of the page
+Quote Post
f1xer
post
Post #4





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


a sprawdz czy plik który wykonuje zapytanie ma poprawną treść w zmiennej $_GET['slowo']
Go to the top of the page
+Quote Post
Czapla
post
Post #5





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

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


Wygląda że wogule nie chce czytać fragmentu frazy z rekordu slowa_kluczowe, czyli ze majac pole

id 1 slowa kluczowe foo bar wom bat

nie wyszuka w polu id 1 frazy "bar"
[MYSQL] pobierz, plaintext
[MYSQL] pobierz, plaintext


natomias znajdzie fraze "foo bar wom bat"
[MYSQL] pobierz, plaintext
[MYSQL] pobierz, plaintext


a no tak zapomnialem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ok już mi tagi działają

Ten post edytował Czapla 12.08.2008, 09:14:06
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie like 'bar'
a: like '%bar%'

manual sie klania
Go to the top of the page
+Quote Post

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: 23.08.2025 - 19:08