0

我在我的 PHP 页面中使用 PDO 方法来内爆两个字符串(为了创建一个图表......长篇大论!),但我不知道如何过滤它们。MySQL中的表结构是这样的:

Column Name: item(被投票的item的名称); nvote(该项目获得的票数); 日期(投票日期)

这是我到目前为止所拥有的:

$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 轴)

这非常适合为我的图表生成字符串。

我如何过滤这些以便被投票的项目的名称(在“项目”列中)被一个 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 条件,并在传递数组时使用由执行绑定的参数。

请注意,我还为您添加了一个订单声明,因为没有它就无法保证结果排序,这意味着您在图表上看到的点可能与错误的点相关联。日期可能不是最佳选择,如果可以,请使用唯一键。或者,您可以在单个查询中获取所有内容并使用后处理构建您的列表。

于 2012-06-27T12:40:11.120 回答