0

私は現在、ユーザーが作成する個々のオブジェクトごとに 7 日分のデータを保存する必要があるプロジェクトに取り組んでおり、各オブジェクトにはユーザーと同様に一意の ID があります。これは「どうすればこれを行うことができるか」という意味だと思います。対「私は何を間違っているのですか?」. 私の目標は、一度に 7 日間分の統計を保持し、object_id に基づいて jqPlot またはその他のグラフ ライブラリに出力できるようにすることです。

ここに画像の説明を入力

データを取得するための現在のコードは、それほど進んでいません。準備済みステートメントを使い始めたばかりで、クエリから結果を取得する方法を完全には理解していません。

$stmt = $mysql->prepare("SELECT `date`, `impressions`, `clicks`, `object_id` FROM `object_stats` WHERE `user_id` = ?") or die(mysql_error());
$stmt->bind_param("s", $_SESSION['user_id']);
$stmt->execute();
$stmt->bind_result($date, $impressions, $clicks, $object_id);
$stmt->close();

そこから、結果を多次元配列に入れ、object_id ごとに配列を作成しようとしましたが、どこから始めればよいかわかりませんでした。同様のソリューションをグーグルで検索してみましたが、何も見つかりませんでした。問題を十分に伝えていない場合は申し訳ありません。言葉にするのに苦労しています。どんな助けでも大歓迎です、ありがとう。

4

2 に答える 2

1

次のようなものを試すことができます-

$object_id_array = array();
while ($stmt->fetch()) {
    $object_id_array[$object_id][] = array('date'=> $date, 
                                           'impressions'=>$impressions,
                                           'clicks'=>$clicks);
}

これは後$stmt->bind_result(...)になりますが、前になり$stmt->close();ます。

or die(mysql_error());最後に、 OO$stmt = $mysql->prepare(...)では機能しないことに注意してください。http://www.php.net/manual/en/mysqli-stmt.error.phpmysqliを見て、エラーを取得する方法を確認してください。

于 2013-07-17T22:22:09.830 に答える
1

代わりに使用してみてくださいPDO。単純なフェッチでデータを多次元配列にフェッチするなど、非常に優れた機能がいくつかあります。これはおそらくあなたが探しているものです。

このチュートリアルをチェックしてください:

http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

今日は親切に、いくつかのサンプル コードを提供します。

$sth = $dbh->prepare('SELECT `object_id`, `date`, `impressions`, `clicks`  FROM `object_stats` WHERE `user_id` = ?');
$sth->execute(array($_SESSION['user_id']));

$data = $sth->fetchAll(PDO::FETCH_COLUMN | PDO::FETCH_GROUP);
于 2013-07-17T22:17:55.513 に答える