2012-03-08 2 views
0

テーブルから特定のデータを印刷するためにwhileループを実行しています。テーブルのデータは非常に大きなテーブルに格納されるため、このテーブルの関連データの行数だけを格納する別のテーブルを作成することをお勧めします。私はこれを実装しようとしていますが、多くの運を持っていない、なぜ以下の動作していないのですか?mysql_fetch_fieldが動作しない

$numberofrows=mysql_fetch_field(mysql_query("SELECT rows FROM rows WHERE guestlist_id = '$guestlist_id'")) or die(); 
echo $numberofrows; 

上記のエラーを与える: キャッチできる致命的なエラー:クラスはstdClassのオブジェクトはfullurlを/ HTML /スクリプト/ addname.phpに文字列に変換することができませんでした行に36

PS - このクエリphpMyAdminで動作するので、私はデータがあることを知っている。ありがとう!

答えて

0
+0

が完了します。それで? :) –

+1

あなたの目標は何ですか?このPHPコードでクエリを取得することは理にかなっていません。 –

+0

確かな@PeterKiss - 作成したゲストリストを 'lists'というテーブルに保存し、これらのリストの名前を 'names'というテーブルに保存するゲストリストアプリケーションを構築しています。追加された名前は、whileループを使用してguestlist submissionページに出力されます。ループは –

0

$guestlist_idおそらく文字列ではありません。クエリを実行する前にそれが1であることを確認します。

エラーをチェックしていないので、コードをデバッグする悪夢になります。適切なエラーチェックを行う方法についてのアドバイスのためにこの質問をチェックアウト:間違った考えをだ

Reference: What is a perfect code sample using the MySQL extension?

+0

それは文字列で、エコーでチェックしました。 –

0

I've heard its a good idea to create a separate table

を。
データを1つのテーブルに保存してください。

+0

しかし、行のカウントには年齢がかかりませんか? –

+0

データベースの唯一の目的は、データの取得とカウントです。それはそのために設計されています。そしてそれをうまくやってください。 –

+0

カウントはカウントよりも速いですよね?データの一部を取得します(例: number_rows = 1は、1000のエントリを持つテーブルのカウントを実行するよりも、あまり集中的ではありませんか? –