当我从mysql获取它时,我将它硬编码时,Php数组是不一样的

时间:2014-11-18 08:50:11

标签: php mysql arrays

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

注意:未定义的偏移量:line 38 ($i = rand(0, count($bg)-1);)上的1 Stil计数($ bg)返回2,所以应该有一些东西。

如果我添加

 //$bg = array('ecchi.jpg', 'bg3.jpg');
在$ i = rand之前

(...它工作得很好,因为我从mysql获取数组的方式或者我如何处理它的方式可能有些不对。< / p>

我的数据库如下所示:

| 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]";

感谢阅读和帮助!

1 个答案:

答案 0 :(得分:0)

你必须创建一个循环来获取所有数据:

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

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