2014-08-28 140 views
-4

你能告诉我这个查询的错误吗?我需要帮助解决PHP查询

 $q = '%franci%'; 

     $liveSearch=$stmt->prepare("SELECT keyword FROM keyword WHERE keyword LIKE :keyword ORDER BY id DESC LIMIT 10"); 
     $liveSearch->execute(array(':keyword' => $q)); 
     if ($liveSearch->fetch() <= 0) { 
      echo "no results"; 
     }else { 

      echo $liveSearch->rowCount(); 

      while($row=$liveSearch->fetch()){ 
       echo $row['keyword']; 
      } 
     } 

以我DB我有两排

1-> Francian

2-> Franciano

  • rowCount时()回波

  • 虽然只给我弗朗西亚诺

Where'is Francian?以及如何解决这个问题? 感谢

回答

2

这if语句是吃你的第一个记录:

if ($liveSearch->fetch() <= 0) { 
     echo "no results"; 
    } 

将其替换为:

if ($liveSearch->rowCount() <= 0) { 
     echo "no results"; 
    } 
+0

Oooops,对不起,我真的累了,我需要一个职业,是rowCount时( ) 哦,我的上帝。谢谢 – mafitsi 2014-08-28 22:46:52

1

要调用$liveSearch->fetch()第一次,它得到的第一个值。

当你在做循环时,它从第二个结果开始。

0

你拉出第一个结果,当你做

if ($liveSearch->fetch() <= 0) { 
      echo "no results"; 
} 

你可以做,而不是

$liveResults=$liveSearch->fetchAll(); 

if (count($liveResults)> 0) { 
    echo count($liveResults); 
    foreach($liveResults as $row) { 
     echo $row['keyword']; 
    } 
} else { 
    echo "no results"; 
}