2012-04-22 13 views
0

私は機能があります。その機能には選択クエリがあります。別のクエリは、最初のクエリに含まれる結果の数を返す必要があります。私はこのコードを持っている:クエリの結果はエコーされません

function name ($f){ 
    global $db; 
    ... 
    $results = "SELECT `a` FROM `b` WHERE $where"; 
    $results_num = ($query = mysqli_query($db, $results)) ? mysqli_num_rows($results) : 0; 

    echo $results; 
    echo $results_num; 
    } 

はエコーされます:

SELECT `a` FROM `b` WHERE `keywords` LIKE '%abc%'0 

だけ$resultsではなく$results_num何ですか?なぜecho $results_numが表示されないのか、そして0$resultsの末尾にある理由を理解できません。これを解決する助けを与えることができる人がいるなら、私は本当に感謝します。どうもありがとう。

+0

これは 'mysqli_num_rows($ query)'であってはなりませんか? – giorgiga

+0

が出力されます。 – bonny

答えて

1

まず、$results_numはゼロで出力されています(そのため、出力の最後に0があります)。少しそれを断ち切る

$results_num = ($query = mysqli_query($db, $results)) ? mysqli_num_rows($results) : 0; 

$query = mysqli_query($db, $results); 
$results_num = $query ? mysqli_num_rows($results) : 0; 

そして、2行目は、実際にする必要があります:このコードが間違っているからだあなたはにクエリーハンドルを渡す必要があり

$results_num = $query ? mysqli_num_rows($query) : 0; 

mysqli_num_rows()、SQLではありません。

1

の$ results_numは0 $の結果である - keywords LIKE '%ABC%' この

echo "Results is $results <br />"; 
echo "Results_num is $results_num <br />"; 

を試してみて、すべては自分自身を明らかにするb FROM aを選択:)

0

$resultsがあなたのクエリです文字列。文字列をmysqli_num_rows()に渡すことはできません。結果セット識別子がmysqli_query()で返されます。あなたのケースでは$queryです(あなたの変数名を変更して、より意味のあるものにしたいかもしれません)。

関連する問題