Как получить данные, когда мы предоставляем несколько значений поля - PullRequest
1 голос
/ 31 января 2010

У меня есть 3 идентификатора в строке:

  let $x="6,3,5"

Я хочу получить всю информацию о цвете от tbl_color, где цвет id равен

6, 3 и 5.

Я сделал этот запрос, но не работает. Что с этим не так?

$sql=" SELECT * FROM tbl_color WHERE color_id IN(".explode(',',$x).")

пожалуйста, предложите правильный запрос

Ответы [ 3 ]

5 голосов
/ 31 января 2010

explode () берет строку и превращает ее в массив. У вас уже есть строка. Все, что вам нужно сделать, это изменить ваше утверждение и просто включить $ x в вашей строке. Вам не нужно взрывать его.


UPDATE:

На ваш комментарий, вот как я бы это сделал:

$x="3,4,5";
$sql=" SELECT * FROM tbl_color WHERE color_id IN(".$x.");";

НТН,

1 голос
/ 31 января 2010

Вы объединяете массив со строкой. Взрыв не нужен:

$sql = "SELECT * FROM tbl_color WHERE color_id IN ($x)";

Полный пример, предполагающий, что вы получаете данные от пользователя или они отправляются из браузера на сервер:

$x = $_GET['colors']; // 6,3,5
$x = mysql_real_escape_string( $x ); // Prevent SQL Injection attack
$sql = "SELECT * FROM tbl_color WHERE color_id IN ($x)";
0 голосов
/ 31 января 2010

Если $ x является строкой, вам не нужно использовать разнесение, просто используйте ее как есть

$sql="SELECT * FROM tbl_color WHERE color_id IN($x)";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...