如何显示"未找到结果"在mysqli_fetch_assoc上?

时间:2016-07-08 07:22:20

标签: php mysqli

我试图在搜索找到0结果时显示一条消息。我尝试了几种不同的方法,但没有任何作用;即使搜索找到结果,我总是会得到一个空白页面或设法显示该消息。

代码:

$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>';
}

2 个答案:

答案 0 :(得分:-5)

  

我试图从互联网和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>';
}

答案 1 :(得分:-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>';
}