2017-06-16 4 views
0

以下は、データベーステーブルのいくつかの行を取得するPHPコードです。しかし、次のコードでは、常に1の数の行が返されます。問題を解決して、データベースから正しい行数を取得してください。実際の行数ではなく1としてプリセットされた行数を返すSQLカウントクエリ

$db=mysqli_connect("localhost","root","","test");    
    echo "<div class='row text-center col-lg-12' align='center'>";  
    $cmd="SELECT COUNT(*) FROM product WHERE product_name LIKE '%$search_query%'"; 

    $result = mysqli_query($db, $cmd); 
    $total = mysqli_num_rows($result); 
+0

は、あなたが、たとえば、または直接のMySQLへのphpMyAdminのSQLセクションで同じクエリを実行してみましたか?もしそうなら、それは何を返しますか? – SebastianGreen

+1

'COUNT(*)'は行数(1行)です。値を選択するか、すべての行を返し、 'num_rows'関数を使います。また、クエリをパラメータ化する必要があります。 – chris85

答えて

2

あなたがSELECT COUNT(*)を行う場合は、カウント値が最初の列にある場合、あなたが戻って行を取得します。これは動作するはず

$result = mysqli_query($db, $cmd); 
$row = mysqli_fetch_array($result); 
$total = $row[0]; 
0

:だから、このようなCOUNT()値を取得する必要があり

$db=mysqli_connect("localhost","root","","test");    
    echo "<div class='row text-center col-lg-12' align='center'>";  
    $cmd="SELECT * FROM product WHERE product_name LIKE '%$search_query%'"; 

    $result = mysqli_query($db, $cmd); 
    $total = mysqli_num_rows($result); 
関連する問題