0

これから出力を取得するにはどうすればよいですか:

$VisitorsProfile = $mysql->query("SELECT SUM(views) FROM visitors_profile WHERE publisher = '123456'");

私はこれを試しましたが、何も私を印刷しません!

<?php echo $VisitorsProfile['sum'] ?>

助言がありますか?

4

2 に答える 2

0

列に名前を付ける必要があります。奇妙に聞こえるかもしれませんが、

$VisitorsProfile = $mysql->query("SELECT SUM(views) as totals FROM visitors_profile WHERE publisher = '123456'");

以下に示すように、名前で参照できるように、クエリに mysql_fetch_assoc 関数が必要です。次に、それを参照できます

<?php echo $VisitorsProfile['totals'] ?>

何かとして「として」参照するだけです。単語の後に何を入れても参照できますが、「sum」のようなものは使用しません。これはmysql関数であり、問​​題を引き起こす可能性があるためです。

于 2013-05-06T22:25:01.763 に答える
0

PHP では、列名または列インデックスで情報を取得できます。推奨される方法は列名で行うことです。これにより、PHP コードに影響を与えずにクエリの列の順序を変更できるからです。

したがって、それを取得するには、クエリに列エイリアスを追加する必要があります。

$rs = mysql_query("SELECT SUM(value) AS total FROM visitors_profile WHERE publisher = '123456'"); 
if ($row = mysql_fetch_assoc($rs)) {
    echo $row['total'];
}
  • 最初の行では、実際にクエリを実行しています。列のエイリアスを確認してください: "total"。
  • 2 行目では、結果セットから配列または具体的には「マップ」を求めています。つまり、mysql_fetch_assoc を呼び出すことで、要素が名前で利用できる配列を要求しています。その配列は、結果セットの行を表します。
  • 3 行目では、実際の合計を出力しています。

$row 割り当ての「if」を確認してください。これは、印刷を試みる前に結果行があることを検証するのに役立ちます。mysql_query を呼び出す行でも同じことを行うことをお勧めします。

編集:申し訳ありませんが、オブジェクトを使用していると思うので、次のようになります。

$rs = $mysql->query("SELECT SUM(value) AS total FROM visitors_profile WHERE publisher = '123456'"); 
if ($row = $mysql->fetch_assoc($rs)) {
    echo $row['total'];
}
于 2013-05-06T22:43:02.660 に答える