2016-07-08 3 views
-2

Я пытаюсь отобразить сообщение, когда поиск находит 0 результатов. Я пробовал несколько разных способов сделать это, но ничего не работает; Я всегда получаю пустую страницу или могу отображать сообщение, даже когда поиск находит результаты.Как отобразить «результаты не найдены» на mysqli_fetch_assoc?

Код:

$post = $_POST; 

if (isset($post['Kohderyhmä']) && 
    isset($post['Näytön_aste']) && 
    isset($post['Vaikutusten_vahvuus']) && 
    isset($post['Käyttökelpoisuus'])) 
{ 
    $Kohderyhmä = $post['Kohderyhmä']; 
    $Näytön_aste = $post['Näytön_aste']; 
    $Vaikutusten_vahvuus = $post['Vaikutusten_vahvuus']; 
    $Käyttökelpoisuus = $post['Käyttökelpoisuus']; 
} 
else 
{ 
    echo '<!-- Virhe -->'; /*die ('<h2>Ei hakutermi&auml; sy&ouml;tetty. <a href="/haku">Avaa haku</a></h2>');*/ 
} 

$count = 0; 
$and = ""; 
$query = ""; 

if (!empty($Kohderyhmä) && $Kohderyhmä !="Kaikki") { 
    if ($count > 0) { 
    $and = " AND "; 
    } 
    $count++; 
    $query = $query.$and."`Kohderyhmä` LIKE '%".$Kohderyhmä."%'"; 
} 
if (!empty($Näytön_aste) && $Näytön_aste !="Kaikki") { 
    if ($count > 0) { $and = " AND "; } 
    $count++; 
    $query = $query.$and."`Näytön aste` LIKE '%".$Näytön_aste."%'"; 
} 
if (!empty($Vaikutusten_vahvuus) && $Vaikutusten_vahvuus !="Kaikki") { 
    if ($count > 0) { $and = " AND "; } 
    $count++; 
    $query = $query.$and."`Vaikutusten vahvuus` LIKE  '%".$Vaikutusten_vahvuus."%'"; 
} 
if (!empty($Käyttökelpoisuus) && $Käyttökelpoisuus !="Kaikki") { 
    if ($count > 0) { $and = " AND "; } 
    $count++; 
    $query = $query.$and."`Käyttökelpoisuus` LIKE '%".$Käyttökelpoisuus ."%'"; 
} 
if ($count > 0) { 
    $query = "SELECT * FROM `tietokanta` WHERE ".$query; 
    } else { 
    $query = "SELECT * FROM `tietokanta`";  
    } 
//echo $query; 


if ($results = $conn->query($query)) { 
while ($row = $results->fetch_assoc()) { 
echo '<h3><a href="/hae?työmenetelmä=' . $row['nro'] . '">' . $row['Nimi'] . '</a></h3>'; 
echo $row['Kokonaisarvio'] ."<br /><br />"; 
echo $row['Kuvaus'] ."<br /><br />"; 

    } 
    } else { 
    echo '<h2>Haku ei tuottanut yhtään tulosta. Muuta hakuehtoja ja hae  uudestaan.</h2>'; 
} 
+0

Делитесь своим '$ query' также? – C2486

ответ

-8

Попробуйте следующий код

$results = $conn->query($query);  

if ($results->num_rows >= 1){ 
    while ($row = $results->fetch_assoc()) { 
     echo '<h3><a href="/hae?työmenetelmä=' . $row['nro'] . '">' . $row['Nimi'] . '</a></h3>'; 
     echo $row['Kokonaisarvio'] ."<br /><br />"; 
     echo $row['Kuvaus'] ."<br /><br />"; 
    } 
} 
else{ 
    echo '<h2>Haku ei tuottanut yhtään tulosta. Muuta hakuehtoja ja hae uudestaan.</h2>'; 
} 
-4

Я пытался найти учебники и другие советы из Интернета и PHP.net страниц, но я не могу найти рабочее решение.

Это довольно странно, потому что этот вопрос задается каждую неделю. Не говоря уже вы можете прочитать на странице руководства mysqli_query, что возвращаемое значение этой функции не всегда положительно, независимо от того, был ли он нашел что-нибудь или нет

Изменить код этого

if ($results = $conn->query($query)->fetch_all()) { 
    foreach ($results as $row) { 
     echo '<h3><a href="/hae?työmenetelmä=' . $row['nro'] . '">' . $row['Nimi'] . '</a></h3>'; 
     echo $row['Kokonaisarvio'] ."<br /><br />"; 
     echo $row['Kuvaus'] ."<br /><br />"; 

     } 
} else { 
    echo '<h2>Haku ei tuottanut yhtään tulosta. Muuta hakuehtoja ja hae uudestaan.</h2>'; 
} 
+0

Это делает страницу пустой, независимо от результатов поиска. – Jonza

Смежные вопросы