将SQL查询结果插入到单独的PHP变量中


Insert SQL query results into separate PHP variables

我正在尝试用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
$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。

试试这个:

$begin = "ad_";
for($i = 0; $i < 6 ; $i++) {
    $($begin.$i) = $result[$i];
}

(假设您的数组$result是先前定义的)