Php数组是';当我硬编码它的时候和从mysql获取它的时候是不一样的

Php数组是';当我硬编码它的时候和从mysql获取它的时候是不一样的,php,mysql,arrays,Php,Mysql,Arrays,我试图获取一个包含picname的php数组,其中nsfwlevel==x。 如果我从数组中滚动一个0 pic0加载(ecchi.jpg)。但如果我掷1,我会得到: 注意:未定义的偏移量:第38行的1($i=rand(0,count($bg)-1);) Stil count($bg)返回2,因此应该有一些内容 如果我加上 //$bg = array('ecchi.jpg', 'bg3.jpg'); 在$i=rand(…它工作正常,所以我从mysql获取数组的方式或处理数组的方式可能有问题 我

我试图获取一个包含picname的php数组,其中nsfwlevel==x。 如果我从数组中滚动一个0 pic0加载(ecchi.jpg)。但如果我掷1,我会得到:

注意:未定义的偏移量:第38行的1($i=rand(0,count($bg)-1);) Stil count($bg)返回2,因此应该有一些内容

如果我加上

 //$bg = array('ecchi.jpg', 'bg3.jpg');
在$i=rand(…它工作正常,所以我从mysql获取数组的方式或处理数组的方式可能有问题

我的数据库如下所示:

| picid | picname | nsfwlevel |   
|   1   | ecchi.jpg|     1    |   
|   2   | bg3.jpg |      1    |

$connection = mysql_connect("localhost", "root", "");

$db = mysql_select_db("animeclub", $connection);
if{...}
elseif($_SESSION['nsfwlevel'] == 1){


$query = mysql_query("SELECT picname from backgrounds WHERE nsfwlevel='0'", $connection);
$backgroundArray = mysql_fetch_array($query);

$bg = $backgroundArray; 
}
elseif{...}
mysql_close($connection);
$i = rand(0, count($bg)-1);
$selectedBg = "$bg[$i]";

感谢您的阅读和帮助!

您必须循环以获取所有数据:

$bg = array();
$query = mysql_query("SELECT picname from backgrounds WHERE nsfwlevel='0'", $connection);

while ($backgroundArray = mysql_fetch_array($query))
    $bg[] = $backgroundArray['picname']; 

1) 更好地将mysql_*函数(已弃用)迁移到mysqli_*或pdo。2) 你需要将$backgroundArray的每一行(而$row=mysql\u fetch\u array($query))放入你的数组中,然后你的rand就可以工作了,你现在只使用第一行。你在一个
if else
分支中设置
$bg
,但在第二个分支中计算($bg)(在
else
一个分支中)。@panther I有$bg=$backgroundArray;在每一个,但我已经移动了它,所以我有它之后,所有的如果的权利之前,mysql\u关闭。谢谢你的反馈!