Итак, у меня были проблемы со школьным проектом, над которым я работаю. У меня есть список участников кулинарного конкурса. Есть 4 из 5 разных стран, и я хочу иметь возможность сортировать конкурсантов по странам или показывать все, если ни одна страна не выбрана.PHP SQL - Сортировать по стране
Я использовал if/else
с использованием $_GET
с ограниченным успехом.
if(isset($_GET['country'])){
$sqlCountry = "SELECT * FROM countries WHERE country_name = ".$_GET['country'];
}else{
$sqlCountry = "SELECT * FROM countires";
}
$queryCountry = mysqli_query($db,$sqlCountry);
$count = 1;
while($resCountry=mysqli_fetch_array($queryCountry)){
if(isset($_GET['land'])){
$country= $_GET['country'];
}else{
$country= $resCountry['country_navn'];
}
$sql_Cont = "SELECT * FROM contestants WHERE cont_country='$country'";
$query_Cont = mysqli_query($db,$sql_Cont);
echo '<div class="mod12 mod_gen no-margin">
<h2>'.$resCountry['land_navn'].'</h2>';
while($res_Cont=mysqli_fetch_array($query_Cont)){
$count++;
if($count % 2){
$right = '';
}else{
$right = 'right';
}
echo '<div class="mod6 mod_gen '.$right.'">
<div class="venstre">
<img src="images/placeholder.jpg">
</div>
<div class="hoejre">
<h3>'.$res_Cont['cont_name'].'</h3>
<h5>'.$res_Cont['cont_workplace'].' - '.$res_Cont['del_home_city'].'</h5>
<br>
<p>Speciality: '.$res_Cont['cont_speciality'].'<br><br>
'.nl2br($res_Cont['cont_text']).'</p>
</div>
</div>';
}
echo '</div>';
Все работает до того момента, когда я нажимаю на одну из ссылок, чтобы получить название страны в URL-адрес: index.php?page=2&country=Denmark
, например. После этого я просто дам мне fetch_array
ожидает, что параметр будет 1, булевой заданной ошибкой.
На мой взгляд, это должно сработать.
Любая помощь appriciated. С наилучшими пожеланиями ~ Barakna
mysqli_query - Возвращает FALSE при сбое. Поэтому он ничего не говорит, и вы передаёте FALSE без проверки на mysql_fetch_array(). Кроме того, у вас есть куча sql-инъекций в код. прочитайте: http://stackoverflow.com/a/8801057/1116177 –