Я пытаюсь создать функцию поиска, которая позволяет пользователю выбирать несколько категорий, выбрать submit, а затем php вернет результаты mysql, соответствующие выбранным категориям.Использовать несколько флажков для возврата результатов MySQL
Я хотел бы сделать это без AJAX или jQuery, но я буду использовать их, если потребуется. Я новичок в мире PHP, поэтому я думаю, что я на правильном пути, но мне бы очень хотелось получить правильное решение.
HTML
<form action="filter.php" method="post">
<p class="searching">Filter by category</p>
<section class="box"><input type="checkbox" name="fill" class="check" value="Arts/Culture"/><img class="lilIcon" src="img/anc.png"><h5>Arts/Culture</h5></section>
<section class="box"><input type="checkbox" name="fill" class="check" value="Seniors"/><img class="lilIcon" src="img/senior.png"><h5>Seniors</h5></section>
<section class="box"><input type="checkbox" name="fill" class="check" value="Youth"/><img class="lilIcon" src="img/youth.png"><h5>Youth</h5></section>
<section class="box"><input type="checkbox" name="fill" class="check" value="Animals"/><img class="lilIcon" src="img/pet.png"><h5>Animals</h5></section>
<section class="box"><input type="checkbox" name="fill" class="check" value="Community"/><img class="lilIcon" src="img/comm.png"><h5>Community</h5></section>
<section class="box"><input type="checkbox" name="fill" class="check" value="Crisis Support"/><img class="lilIcon" src="img/cs.png"><h5>Crisis Support</h5></section>
<section class="box"><input type="checkbox" name="fill" class="check" value="Environment"/><img class="lilIcon" src="img/leaf.png"><h5>Environment</h5></section>
<section class="box"><input type="checkbox" name="fill" class="check" value="Faith Based"/><img class="lilIcon" src="img/pray.png"><h5>Faith Based</h5></section>
<section class="box"><input type="checkbox" name="fill" class="check" value="People with Disabilities"/><img class="lilIcon" src="img/chair.png"><h5>People with Disabilities</h5></section>
<input type="submit" name="submit" id="filter" value="Filter"/>
</form>
PHP
<?php
$variable=$_POST['fill'];
$i = 0;
foreach ($variable as $variablename) {
$i++;
$variablename[number];
}
$result = "SELECT * FROM opportunity WHERE `Category`=$variablename";
$num_rows = mysql_num_rows($result);
echo "<div class='holder'>";
if(mysql_num_rows($result) > 0)
{
while($results = mysql_fetch_array($result));
}
Вы должны назвать свои флажки по-разному (например, каждое из них - уникальное имя), или используйте '[]' naming hack - прямо сейчас, вы получаете только последний выбранный флажок, поскольку имена одинаковы. Тогда ваше построение запроса совершенно неверно: уязвимо для [SQL-инъекций] (http://bobby-tables.com) и делает '' WHERE 'Category' = Array'', поскольку вы используете массив в строке контекст. –