0

PHP ページで PDO メソッドを使用して 2 つの文字列を分解しています (グラフを作成するため... 長い話です!) が、それらをフィルター処理する方法がわかりません。MySQL のテーブル構造は次のようになります。

列名: item (投票されているアイテムの名前); nvote (このアイテムが受け取った投票数); date (投票日)

これは私がこれまでに持っているものです:

$stmt1 = $db->prepare("SELECT date FROM vote"); 
$stmt1->execute();

$stmt2 = $db->prepare("SELECT nvote FROM vote"); 
$stmt2->execute();

$line1 = implode( ',', $stmt1->fetchAll (PDO::FETCH_COLUMN) ); 
$line2 = implode( ',', $stmt2->fetchAll (PDO::FETCH_COLUMN) );

(Line1 はグラフの x 軸を作成し、line2 は y 軸を作成します)

これは、グラフの文字列を生成するのに非常にうまく機能します。

投票されているアイテムの名前 (" item " 列") が var (この場合は ) でフィルター処理されるように、これらをフィルター処理するにはどうすればよい$nameofitemですか?

4

1 に答える 1

1
$params = array(':value' => 'Hello World');
$stmt1 = $db->prepare("SELECT date FROM vote WHERE item = :value ORDER BY date"); 
$stmt1->execute($params);

$stmt2 = $db->prepare("SELECT nvote FROM vote WHERE item = :value ORDER BY date"); 
$stmt2->execute($params);

$line1 = implode( ',', $stmt1->fetchAll (PDO::FETCH_COLUMN) ); 
$line2 = implode( ',', $stmt2->fetchAll (PDO::FETCH_COLUMN) );

重要なのは、配列が渡されたときに実行によってバインドされるパラメーターを使用して、SQL クエリに WHERE 条件を追加することです。

順序ステートメントがないと結果の順序付けが保証されないため、順序ステートメントも追加したことに注意してください。つまり、グラフに表示されたポイントが間違ったポイントに関連付けられている可能性があります。日付は最適な選択ではない可能性があります。可能であれば一意のキーを使用してください。または、1 回のクエリですべてを取得し、後処理でリストを作成することもできます。

于 2012-06-27T12:40:11.120 に答える