У меня есть этот код, который я схватил из StackOverflow, и я изменил сообщение формы формы формы, чтобы получить, и он не работает для меня. Когда я проверяю флажки, страница обновляется и вызывается запрос. Однако запрос не возвращает никаких строк, даже если у меня есть строки в таблице. Есть идеи?Флажок фильтра не работает
HTML-:
<script>
$(function() {
$('.checkbox').on('change',function(){
$('#form').submit();
});
</script>
<form id="form" method="GET" action="">
<h4>Condition</h4>
<input type="checkbox" name="new" class="checkbox" <?=(isset($_GET['new'])?' checked':'')?>/> New<br/>
<input type="checkbox" name="used" class="checkbox" <?=(isset($_GET['used'])?' checked':'')?>/> Used<br/>
</form>
РНР:
if (isset($_GET["new"])) {
$arguments[] = "`condition` LIKE '%new%'";
}
if (isset($_GET["used"])) {
$arguments[] = " condition LIKE '%use%' ";
}
if(! empty($arguments)) {
$str = implode(' or ',$arguments);
$fetch = $mydb->prepare("SELECT * FROM table where username = ? and ? ORDER BY id desc");
echo $mydb->error;
$fetch->bind_param('ss', $username, $str);
$fetch->execute();
$result = $fetch->get_result();
//$result->num_rows gives me 0 in this case
} else {
$fetch = $mydb->prepare("select * from table where username = ? order by id desc");
$fetch->bind_param('s', $username);
$fetch->execute();
$result = $fetch->get_result();
//this one works
}
while ($row = $result->fetch_assoc()) {
//echo some rows.
}
Было ли это работать, прежде чем вы изменили его с POST, чтобы получить? Вы уверены, что правильно открываете базу данных? Как выглядит запрос, когда вы вставляете все параметры, в частности, уверены ли вы, что кавычки находятся прямо вокруг 'или'? Это выглядит изворотливым. – Floris
@Floris в первый раз, когда он работал, а затем я изменил его, чтобы получить, потому что мне не понравилось окно подтверждения каждый раз, когда я пытаюсь перезагрузить страницу. Я изменил его на пост, но это не сработало. Второй запрос работает правильно, поэтому база данных верна, и я уверен, что строки в таблице. – user3006683
Почему вы все это делаете с помощью '$ arguments []' как массива? Что делать, если вы оставите новую/использованную вещь - она работает? – Floris