954,597 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

MySQL LIKE statement

I'm trying to creat a search procedure that will search table game and return all rows where columns title, description, platform, and gameid are LIKE parameter searchtext. This parameter is coming from many different pages as a Session("searchtext"), and I'm using a UserControl to send the Session, all pages in the site have the search UserControl.

In the search result page I have the following code (command and connection are in the design page):
Dim dsList As New DataSet
cmdSearch.Connection.Open()
cmdSearch.Parameters("searchtext").Value = Session("searchtext")
If Not Page.IsPostBack() Then
daSearch.Fill(dsList)
lblRecordCount.Text = CStr(dsList.Tables(0).Rows.Count)
dsList = Nothing
dsList = New DataSet
End If
daSearch.Fill(dsList, CInt(lblCurrIndex.Text), CInt(lblPageSize.Text), "game")
dlGames.DataSource = dsList.Tables(0).DefaultView
dlGames.DataKeyField = "gameid"
dlGames.DataBind()
cmdSearch.Connection.Close()

This is my statement (cmdSearch):
SELECT *
FROM game
WHERE (title like '%' +:searchtext+ '%' or description like '%' +:searchtext+ '%' or platform like '%' +:searchtext+ '%' or gameid like '%' +:searchtext+ '%')
ORDER BY title

I'm not sure what I am doing wrong here. This statement is returning all games in the game table. I tried '%gamename%' and it worked fine, I'm assuming I need the single quotes again with the parameter because when I tried without the single qotes it didn't work. This is almost the same command as the one I have for the ShowAllGames command, the only difference is that I added the parameter for the search.

Can anyone help me?

maxtrixx
Newbie Poster
11 posts since Jun 2004
Reputation Points: 10
Solved Threads: 0
 

not sure I'm going to be very helpful but...

like '%' +:"searchtext"+ '%'

Try that?

Slade
Practically a Master Poster
633 posts since Mar 2004
Reputation Points: 115
Solved Threads: 7
 

This is my script:

mysql_connect ("localhost","root","123");
mysql_select_db(bukutelp);
$sql=mysql_query("select * from daftar where (nama LIKE '%'+:$nama+'%') LIMIT 0, 10");
$sql_1=mysql_query("select * from daftar where (nama LIKE '%'+:$nama+'%')");
$rows = mysql_num_rows($sql_1);
IF ($rows%2==0) {$pages = $rows/2;} else {$pages = $rows/2;}
while ($baris=mysql_fetch_array($minta))
{ echo "
" ;
echo "$baris[nama] ";
echo "$baris[phone]"; echo "
";
echo "";
}

end i got error like this

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\buku telp\cari.php on line 12

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\buku telp\cari.php on line 14

what should i do?

diwan
Newbie Poster
1 post since Sep 2007
Reputation Points: 10
Solved Threads: 0
 

Have you had a look at the syntax for like
http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html

iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439
 

try this

SELECT *
FROM game
WHERE title like concat('%' ,:searchtext, '%') or description like concat('%' ,:searchtext, '%') or platform like concat('%' ,:searchtext, '%') or gameid like concat('%' ,:searchtext, '%')
ORDER BY title

concepcionmark
Newbie Poster
4 posts since Sep 2011
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You