私のフォーラムのカスタム関数をPHPに基づいて作成しようとしています。私は自分のインデックス着陸スタイルのページを私のphpbbフォーラムとは別に持っています。ホームページの統計情報タイプウィジェットの一部として、最新の登録ユーザ名を表示しようとしています。私は、これまでに次のコードを持っている:結果セットからフィールドを取得し、ページ(php/mysql/phpbb)に文字列として出力する方法
//Function code
//Total Posts calculation
$result = $mysqli->query("SELECT DISTINCT post_id FROM phpBB_posts
WHERE post_id <= '1'");
$total_posts = $result->num_rows;
//Total topics calculation
$result2 = $mysqli->query("SELECT DISTINCT topic_id FROM phpBB_topics WHERE topic_id <= '1'");
$total_topics = $result2->num_rows;
//Member count calculation
$result3 = $mysqli->query("SELECT DISTINCT user_id FROM phpBB_users WHERE user_id <= '1'");
$total_members = $result3->num_rows;
//Newest member
$result4 = $mysqli->query("SELECT * FROM phpBB_users WHERE group_id <> 6 ORDER BY user_regdate DESC LIMIT 1");
$newestMember = $result4->name;
//End of function
//function output
printf("Total Posts: ".$total_posts."<br/> Total Topics: ".$total_topics."<br/>Total Members: ".$total_members."<br/>Our newest member is: ".$newestMember);
私は悩みを抱えているところ、「新しいメンバー」セクションがあり、残りの部分は、私はあなたが任意のポインタを持っている場合/批判は、私は喜んでそれを取るよ、好きな作品ボード。
結果セットからusername
列の値を返すことができるようにしたいのですが、そのクエリから返され、変数$newestMember
として出力します。
あなたが見ることができる私のロジックは、ユーザーのリストを取得することでしたので、SELECT *
は実際のユーザーにリストを制限し、ボットなどを除外しますのでWHERE group_id <> 6
です。その後、登録された日付ORDER BY user_regdate
でリストをソートし、次に完全リストから1行だけDESC LIMIT 1
でソートします。私はmysqlとphpのドキュメントをチェックしていますが、返された行/ユーザー名列(フィールド)から値を取得し、それをnewestMember変数として格納してページに出力する方法を理解できません。 誰かが私を正しい方向に向けることができますか?それはそのコードを少し変更する作業を得ることができた
乾杯、ジェイミー
結果セットの行を_fetch_する必要があります。 ($ result = $ mysqli-> query($ result4)){ /*フェッチする場合は、次のようにしてください: – CBroe
@CBroeので、ドキュメントを使用して、 '$ newestMember = $ result4-> name;オブジェクト配列*/ while($ row = $ result-> fetch_row()){ printf( "%s(%s)\ n"、$ row [0]、$ row [1]); } /*無料の結果セット*/ $ result-> close(); } ' 次のエラーが表示されます。「警告:mysqli :: query()はパラメータ1が文字列になると予想しています」というアイデアはありますか? –
ここでのアイデアは、エラーメッセージを調べることです... – CBroe