从数组中回显特定行

时间:2013-02-12 18:35:54

标签: php database arrays row

我目前有一张如下表所示的表格。

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

2 个答案:

答案 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'];