Reputation: 725
I have three MySQL tables
table 1 . dcenter fields are: d_id,name,location,address
table 2 . dcds fields are:id,d_id,s_id (d_id and s_id are primary key of dcenter and service table)
table 3 . service fields are: s_id,s_name
I have one search box, where users can search by dcenter name, search by location or search by service
And I wrote a sql query to get a service list using JOIN but its not working
code is
if(isset($_POST['search']))
{
$data = $_POST['search_text'];
$query= "SELECT * FROM dcenter JOIN dcds on dcds.d_id=dcenter.d_id JOIN service on service.s_id=dcds.d_id WHERE location = '" . $data. "' || name = '" . $data. "' || s_name '". $data."'";
$result = mysql_query($query);
var_dump($result);
if(!$result)
{
echo "no data found";
}
}
Whats wrong in my query?
Upvotes: 0
Views: 83
Reputation: 373
Try this:
SELECT * FROM dcds JOIN dcenter on dcds.d_id=dcenter.d_id JOIN service on service.s_id=dcds.s_id WHERE location = '" . $data. "' || name = '" . $data. "' || s_name '". $data."'";
Upvotes: 0
Reputation: 6612
If following SQL returns a result set
SELECT *
FROM dcenter
JOIN dcds on dcds.d_id = dcenter.d_id
JOIN service on service.s_id = dcds.d_id
This WHERE criteria addition can help you
SELECT *
FROM dcenter
JOIN dcds on dcds.d_id = dcenter.d_id
JOIN service on service.s_id = dcds.d_id
WHERE
location = ''
or name = ''
or s_name = ''
Upvotes: 1