我正在尝试使用php pdo制作广告系统。如何将以下sql查询的结果ID输入到我的php变量中?
SELECT id FROM ads, ( SELECT id AS sid FROM ads WHERE position="A" ORDER BY RAND( ) LIMIT 5 ) tmp WHERE ads.id = tmp.sid
我只是不知道如何在变量中获取这些值:
$ad_1 = result[1]
$ad_2 = result[2]
$ad_3 = result[3]
$ad_4 = result[4]
$ad_5 = result[5]
借助这些变量($ ad_1 ... 5),我可以在不同的地方展示独特且随机的广告,获取正确的数据并更新广告点击/观看次数......
我感谢您提供的任何帮助。我是php的新手。我试着寻找答案,但无法找到答案。
答案 0 :(得分:0)
试试这个:
$begin = "ad_";
for($i = 0; $i < 6 ; $i++) {
$($begin.$i) = $result[$i];
}
(假设先前已定义数组$result
)
答案 1 :(得分:0)
最好养成使用这样的准备语句的习惯:
<?php
$adIds = array();
$position = 'A'; // probably set dynamicaly
$stmt = $dbh->prepare("SELECT id FROM ads, ( SELECT id AS sid FROM ads WHERE position=? ORDER BY RAND( ) LIMIT 5 ) tmp WHERE ads.id = tmp.sid");
$stmt->bindParam(1, $position);
if ($stmt->execute()) {
while ($row = $stmt->fetch()) {
$adIds[] = $row[0];
}
}
?>
$adIds
现在是一个包含select语句返回的所有id的数组。