-1

私は次のクエリを持つ関数を持っているクラスを持っています。

public function count_weight() {
    $id = $_SESSION['id'];
    $query = $this->db->prepare("SELECT sum( weight ) FROM `fish` WHERE `user_id` = '".$_SESSION['id']."'");

    try {
        $query->execute();
    } catch(PDOException $e) {
        die($e->getMessage());
    }

    return $query->fetchAll();
}

この結果をインデックス ページに表示したいと思います。現在、次のようになっています。

$weight = $users->count_weight();

エコー $ 重量;

これは明らかに機能しません。「arraykg」のみが出力されます。

助言がありますか?

4

5 に答える 5

2

そのような配列を印刷することはできません。例えば

$arr = array(1,2,3);
echo $arr;

Array文字列コンテキストで配列を使用しているため、リテラル text を出力しようとしています。配列の CONTENTS を印刷したい場合は、何かをする必要があります。

echo implode(',', $arr); // prints: 1,2,3

また

print_r($array); // debug dump out of the array
于 2013-08-02T19:41:51.700 に答える
0

$query->fetchAll();配列を返します。var_dump()配列を分析し、それに応じて変数宣言を調整するために使用します。

于 2013-08-02T19:42:48.087 に答える
0
echo "<pre>";
print_r($weight);
echo "</pre>";

$weight実際にはデータが含まれており、リソースではないと仮定します。

于 2013-08-02T19:42:55.613 に答える
0

$weight は、取得した行の配列です。その列をエコーアウトする必要があります

echo $weight['weight'];

これは、クエリが原因で機能する場合と機能しない場合があります。クエリを次のように変更してみてください。

$query = $this->db->prepare("SELECT sum( weight ) AS weight FROM `fish` WHERE `user_id` = '".$_SESSION['id']."'");
于 2013-08-02T19:43:03.437 に答える
0

たとえば、これを試してください:

$weight = $users->count_weight();
foreach($weight as $w)
{
   echo($w['id']):
}
于 2013-08-02T19:42:18.603 に答える