массивы в базе данных

Статус
В этой теме нельзя размещать новые ответы.

stasdre

Постоялец
Регистрация
15 Янв 2010
Сообщения
125
Реакции
18
Есть таблица в которой содержиться значение в таком виде:

каким образом можно произвести выборку по этому полю, если на вход запроса подать переменную содержащую массив:
PHP:
$array = (2,4,6,8,5);

Помогите кто может, очень нужно, ни как не могу понять как это реализовать:thenks:
 
PHP:
$array = (2,4,6,8,5); 
$array = implode(",",$array);
//И запрос тогда примет вид:
$res=mysql_query("SELECT * FROM tablename WHERE fieldname='{$array}'");
 
у него впереди стринга запятая идет, надо добавить $array = ",$array"; после implode
 
очень интересно) ...вы не учли того что
,1,2,4,6,8 != ,2,4,6,8,5
необходимо искать в строке:

PHP:
$arr = array(2,4,6,8,5); 
  $find = '';
foreach($arr as $k => $val) {
 if($k == 0) {
    $find .= 'colname LIKE %,'.$val.',%';
  } else { 
    $find .= ' OR colname LIKE %,'.$val.',%';
  }
} 

$sql = mysql_query("SELECT * FROM tablename WHERE ".$find);
+ кроме того нужно добавлять запятую и в конец строки: ,1,2,4,6,8, - тогда поиск будет верным к любым числам.
 
можно немного проще, рекомендую:

PHP:
$arr = array(2,4,6,8,5); 
$find = '';
foreach($arr as $k => $val) 
    $find .= ' OR colname LIKE %,'.$val.',%';
$sql = mysql_query("SELECT * FROM tablename WHERE 0=1 ".$find);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху