PHP Multiple Dropdown - PullRequest
       10

PHP Multiple Dropdown

0 голосов
/ 17 ноября 2009

Это мой частичный код html

<select name="number[]" style="width: 350px;" multiple="multiple" size="2">
<option value="one">one</option>
<option value="two">two</option>
<option value="three">three</option>
<option value="four">four</option>
</select>

PHP-код

$name = $_POST["name"];
$number= $_POST["number"];
$sql = mysql_query("SELECT * FROM users WHERE name LIKE '%$name%' AND ");

Что я должен добавить после И для номера, чтобы запрос работал?Я пробовал foreach, но он не работал точно в запросе.

Ответы [ 4 ]

1 голос
/ 17 ноября 2009

Как насчет:

$name = $_POST["name"];
$number= $_POST["number"];

if(!is_array($number)){
  // some error message or what.
}

$squery = '';
$a = array();
foreach($number as $n){
  // do some validation for $n
  // $number should be an array, so don't validate it.
  $a[] = "`number` = '$n'";
}
$squery = implode(' OR ',$a);
unset($a);

$query = "SELECT * FROM users WHERE `name` LIKE '%$name%' AND (".$squery.")";
$res = mysql_query($query);
1 голос
/ 17 ноября 2009

что-то вроде этого, я полагаю

$sql = mysql_query("SELECT * FROM users WHERE name LIKE '%$name%' AND number IN (" . implode(',', $_POST['number']) . ')');

Взрыв Документация

также, пожалуйста, не следует быть осторожным, избегая экранирования данных, поступающих от пользователей, иначе ваш веб-сайт будет уязвим для SQL-инъекций

0 голосов
/ 17 ноября 2009

Мой подход будет примерно таким:

<?php
if(is_array($_POST['number']))
{
   $numbers = implode("','", array_walk($_POST['number'],' mysql_real_escape_string')));
   $result = mysql_query("SELECT * FROM users WHERE name LIKE '%" . mysql_real_escape_string($name%) . "' AND number IN ('" . $numbers . "')") or die(mysql_error());
}
?>
0 голосов
/ 17 ноября 2009
$number= $_POST["number"][i];

вставьте это в свой цикл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...