SQL query with multiple parameters in where

237 Views Asked by At

I have a simple database like this :

Name     id
-----------
music    1
sport    2
theatre  3

I just want to display

music

theatre

I call a function with the ids and want to show name corresponding, my query looks like this, but nothing happen

$array = array(1,3);
$id = implode(',', $array);
    
$result = doQuery("SELECT Name
                    FROM categories c
                    WHERE c.id IN '" . $id. "'
                    ");
                    
    if(hasRows($result)){
        while($row = mysql_fetch_row($result)){
            echo $row[0];
        }
    }
2

There are 2 best solutions below

0
On BEST ANSWER

When you are using IN, you must place the conditions in parenthesis but in you case you are not using them so try something like this:

$array = array(1,3);
$id = implode(',', $array);

$result = doQuery("SELECT Name
                FROM categories c
                WHERE c.id IN (" . $id. ")
                ");

if(hasRows($result)){
    while($row = mysql_fetch_row($result)){
        echo $row[0];
    }
}
0
On

I suspect you need your IN wrapped in ( ) not ' '.

$result = doQuery("SELECT Name
                   FROM categories c
                   WHERE c.id IN (" . $id. ")
                    ");