1

我目前有一张如下表。

ID  adPlacement     filePath    dateAdded   adName  adLink
12  1           Test 1.png  2013-02-12  Test 1  http://www.cuad.coop
13  1           Test 2.png  2013-02-12  Test 2  http://www.google.com

我正在尝试随机选择一行并在单独的 echo 语句中回显 adName、adLink 和 filePath。

这是我现在正在使用的代码:

$query_adSpot1 = "SELECT * FROM advertisements WHERE adPlacement = 1";
$result = mysql_query($query_adSpot1, $server) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$row = array(
    'adName' => $row['adName'],
    'filePath' => $row['filePath'],
    'adLink' => $row['adLink']
);
$fileLocation = $row;
$fileLocations[] = $fileLocation;   
}
shuffle($fileLocation);
echo $fileLocation[0];

现在,当我运行脚本时,它会编写 test 2.png、test 2 或http://www.google.com

我希望能够与随机行分开回显,但需要单独的列等于同一行。

echo filePath
echo adName
echo adLink
4

2 回答 2

1

您正在改组错误的数组,您应该使用:

shuffle($fileLocations);
                     ^ This is the one with all your values
var_dump($fileLocations[0]);
// will show you an array with 3 elements from the same row in the database

您正在做的是重新排序在您的 sql 查询中找到的最后一行。

于 2013-02-12T18:41:45.070 回答
0

您可以RAND()在中使用该功能MySQL

$query_adSpot1 = "SELECT * FROM advertisements WHERE adPlacement = 1 ORDER BY RAND() LIMIT 1";
$result = mysql_query($query_adSpot1, $server) or die(mysql_error());
$row = mysql_fetch_array($result);
echo $row['filePath'];
echo $row['adName'];
echo $row['adLink'];
于 2013-02-12T18:42:24.570 回答