2016-04-17 11 views
0

私はPHPに問題がある初心者です:(

データベーステーブルのすべての行を表示するPHP関数があります。ページングを作成して1ページあたりの行数を制限する必要があります。
私は行数が1つのページに必要なよりも大きい場合、PHP & MySQLはLIMITを使用して条件を作成するクエリからCOUNT結果の取得に問題がある

次のコード:。。PHPでCOUNTクエリの結果を取得して表示するには?

$count = "SELECT COUNT(*) FROM articles"; 
$countq = $db->query($count); 
$countrs = mysql_fetch_array($countq); 
echo $countrs; 

を行数を表示する必要がありますが、私は間違って何をしていますか?maに結果を見たい他のすべてがうまく動作することを確認してください。しかし、私はそれを働かせることはできません。
エラー:は、mysql_fetch_array()は、パラメータ1がリソースであることを期待し、オブジェクトを指定して

$ DBはデータベース接続情報(サーバー、ユーザーが...)含まれており、MySQLのクエリの

+0

http://stackoverflow.com/questions/2439829/how-to-count-all-rows-when-using-select-with-limit-in-mysql-query –

+0

mysqlを使用しないでくださいapi go with pdo 。 –

+0

* $ dbにはデータベース接続情報(サーバー、ユーザー...)が含まれていて、動作しています* ...おそらくそうではありません。そのコードを表示できますか? – fusion3k

答えて

2

使用PDOを進めています。

$db = new PDO('mysql:host=#YOUR HOST#;dbname=#YOUR DB#;charset=utf8', '#YOUR LOGIN#', '#YOUR PASSWORD#'); 
$query = $db->query('SELECT COUNT(*) AS count FROM articles'); 
$countq = $query->fetch(); 
$query->closeCursor(); 
echo $countq['count']; 

が、私はこれがあなたに

を助けることを願っています
1

あなたは

$count = "SELECT COUNT(*) FROM articles LIMIT 5,10"; 
5が出発点である

と10のようなクエリに制限を設定する必要がありますが、結果の総数はあります欲しいです。

あなたが言及している:$ dbではなく$ dbは何ですか?私はそれがデータベースオブジェクトクラスですか?これはデータベースクラスを使用している場合には直接動作します。その場合、クラスにはmysql_fetch_array(実際にはmysqli_fetch_array)を使用せずにデータを照会できる関数もあります。

+0

まあ、$ DBは( "のmysql:ホスト=" 新しいPDOを含む変数である.dbserver "; DBNAME =" .dbname、DBUSER、DBPASS、 配列( PDO :: MYSQL_ATTR_INIT_COMMAND => "。 SET NAMES UTF8" の、 PDO :: MYSQL_ATTR_INIT_COMMAND => "SET・キャラクタ・セットUTF8" ) )。これは、データベース接続が作成される外部ファイルで定義されます。このファイルは現在のPHPファイルに含まれています。その場合は – encrypted21

+0

を参照してください。 http://php.net/manual/en/pdostatement.fetch.php PDO :: FETCH_NUM:カラム0から始まる結果セットで返される列番号でインデックスされた配列を返します。 – chandan

+0

ああ、OK。ありがとうございました! – encrypted21

関連する問題