2014-08-28 136 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"; 
}