8

(必要に応じてお詫びします-私の最初のStack Overflowの質問です。誰か提案があれば喜んで修正します。答えを探しましたが、用語の理解が完全ではないのではないかと思います。探す。)

私はmysql_fetch_arrayを使用してデータベースからレコードを取得することに慣れています。その方法でレコードを取得するとき、mysql_num_rowsは行の数を教えてくれます。ただし、現在のプロジェクトでは、mysql_fetch_objectを使用しています。mysql_num_rowsはこの関数では機能しないようです。クエリの結果を「カウント」すると、期待される答えが1(1つのオブジェクト)になります。

オブジェクトを「調べて」、その中の要素を数える方法はありますか?

4

4 に答える 4

14

この関数mysql_num_rowsは、オブジェクト行ではなく、結果リソースで機能します。

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$sql = "SELECT id, name FROM myTable";

$result = mysql_query($sql, $link);

$rowCount = mysql_num_rows($result);

while($row = mysql_fetch_object){
    echo "id: ".$row->id." name: ".$row->name."<BR>";
}
echo "total: ".$rowCount;
于 2011-01-03T20:47:34.460 に答える
2

試してみてくださいcount( (array)$object )

于 2011-01-03T20:41:09.127 に答える
0

手続き型で使用している場合(つまり、mysql_fetch_object()と$ result-> fetch_object())、mysql_num_rowsはmysql_fetch_array()を使用している場合とまったく同じように機能するはずです。サンプルコードを投稿していただけますか?

于 2011-01-03T20:42:12.477 に答える
0
<?php
mysql_connect("localhost", "user", "password");
mysql_select_db("database");

$result = mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM table");
$countQuery = mysql_query("SELECT found_rows() AS totalRows");
$rows = mysql_fetch_object($countQuery);
echo $rows->totalRows;
?>

これがお役に立てば幸いです:)

于 2011-01-03T21:11:18.547 に答える