我目前有一张如下表所示的表格。
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];
现在,当我运行脚本时,它将编写测试2.png,或测试2或http://www.google.com。
我希望能够从随机行中单独回显,但需要单独的列等于同一行。
echo filePath
echo adName
echo adLink
答案 0 :(得分: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查询中找到的最后一行。
答案 1 :(得分:0)
您可以使用MySQL
RAND()
功能
$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'];