2015-02-02 2 views
2

Мне нужна небольшая помощь с созданием сайта im в рамках школьного проекта. У меня есть множественная форма выбора, которая отправляет значения в виде массива.Array несколько значений переменной

Теперь на странице, где его опубликовано, если я использую print_r ($ _ POST); чтобы увидеть, что я получу.

Я вижу, что я получаю [tilbehor] => Массив ([0] => 11 [1] => 19 [2] => 20) из поля формы «tilbehor».

Thats all fine. Значения, которые я получаю, это 11, 19 и 20. - это все ID из моей базы данных, выбранной в форме.

Но я нужны эти ID, чтобы выбрать Somthing из моей базы данных, и эхо reslut где ID в datebase = то идентификаторы из массива ...

Теперь код я использую для этого работает, но только если одно значение отправлено из поля формы «tilbehor» Im, используя этот код в поле отправленной формы в переменную.

$ t_id = $ _POST [ 'tilbehor']

И это, чтобы получить его, чтобы отобразить имя всего из базы данных, где идентификатор Маха

$query = "SELECT * FROM tilbehor WHERE t_id='$t_id'"; 
 
$result = $db->query($query); 
 
$num_rows = $result->num_rows; 
 
\t if($num_rows > 2) { 
 
\t \t while($row = mysqli_fetch_array($result)) { 
 
\t \t \t echo " 
 
\t \t \t &#8729; 1 stk - <b>".$row['tilbehor_navn']."</b><br> 
 
\t \t \t "; 
 
\t \t } 
 
\t \t } else { 
 
\t \t echo "Der er ikke valgt noget tilbehor"; 
 
\t \t } \t

Но это не сработает, поскольку оно может обрабатывать только одно значение в WHERE = statment ... Мне нужно знать, как заставить это работать, когда есть несколько значений, отправленных из массива ..:/.. Любые идеи ?

+4

Самый простой способ заключается в 'Implode()' ваше сообщение и использовать 'оператор в' в запросе. – Daan

ответ

0
$t_id = $_POST['tilbehor']; 
$t_id=implode(',',$t_id);//impload the value with the ',' and used IN operate to get all the value relate this id (11, 19 and 20) 
$query = "SELECT * FROM tilbehor WHERE t_id IN ($t_id)"; 
//"SELECT * FROM tilbehor WHERE t_id IN (11,19,20)" 
    $result = $db->query($query); 
    $num_rows = $result->num_rows; 
     if($num_rows > 2) { 
      while($row = mysqli_fetch_array($result)) { 
       echo " 
       &#8729; 1 stk - <b>".$row['tilbehor_navn']."</b><br> 
       "; 
      } 
      } else { 
      echo "Der er ikke valgt noget tilbehor"; 
      } 
+0

Это сделало трюк :) –

0
// Join array with comma separator 
$ids = implode(',', $_POST['tilbehor']); 
// Create the sql statement 
$sql = "SELECT * FROM tilbehor WHERE t_id IN($ids)"; 
// Execute sql here... 
0

Попробуйте это ..

$ids = array('11', '19', '29'); 

$ids = implode(',', $ids); 
$query = "SELECT * FROM tilbehor WHERE t_id IN ('$ids')"; 
Смежные вопросы