wyszukiwania dla MySQL

głosy
0

Trzeba zaimplementować wyszukiwania w tabeli mysql dla pewnego słowa, aby znaleźć się w określonej kolumnie (Type: text).

Myślałem, że najłatwiej to zrobić:

$str = something; # let's say passed by POST or GET from a form
$sql = select lala, textThing from table_name where dudu=1 and textThing LIKE %'$str'%;

To wydaje się działać dobrze, jeśli robi kwerendę ręcznie w mysql, ale nie na php poprzez sieci. to rzuca

Masz błąd w składni SQL; sprawdzić podręcznika, który odpowiada twojej wersji serwera MySQL dla prawego składnię używaną w pobliżu „% searchedString%” w linii 1

gdzie searchedString jest, no wiesz, ciąg szukałem :)

Pierwszy PHP wygląda następująco:

$str = NULL;


echo <p>Search for a string</p>;
echo <form name='formSearch' action='result.php' method='post'>;
echo <input type='text' name='text' size='30'/>;
echo <input type='submit' name='search' value='Search'/>;
echo </form>;

Drugim z nich jest po prostu uzyskanie „tekst” i robi MySQL i powinien pokazać dane

Utwórz 18/07/2012 o 14:47
użytkownik
W innych językach...                            


2 odpowiedzi

głosy
2

Trzeba umieścić klauzulę LIKE między cytatami. Ucieczka je w kodzie php tak:

$sql = "select lala, textThing from table_name where dudu=1 and textThing LIKE \"%".$str."%\""
Odpowiedział 18/07/2012 o 14:48
źródło użytkownik

głosy
1

Trzeba obejmować% wewnątrz cytatu lub podwójny cudzysłów.

$ Sql ​​= "select Lala textThing z table_name gdzie Dudu = 1 i textThing LIKE '% $ str%'";

lub

$ Sql ​​= "select Lala textThing z table_name gdzie Dudu = 1 i textThing LIKE '%" + $ str + "%'";

Odpowiedział 18/07/2012 o 14:52
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more