Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] [PHP] pobieranie zmiennej z tablicy $_GET i zapytanie SQL
Forum PHP.pl > Forum > Przedszkole
Czapla
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 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
f1xer
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
Czapla
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; ?>'>
f1xer
a sprawdz czy plik który wykonuje zapytanie ma poprawną treść w zmiennej $_GET['slowo']
Czapla
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 biggrin.gif

Ok już mi tagi działają
nospor
nie like 'bar'
a: like '%bar%'

manual sie klania
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.