当我对 PHP 数组进行硬编码时,它与从 mysql 获取它时不一样

标签 php mysql arrays

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

注意: undefined offset :line 38 ($i = rand(0, count($bg)-1);) 上的 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']; 

关于当我对 PHP 数组进行硬编码时,它与从 mysql 获取它时不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26990073/

相关文章:

php - 首次加载 Minify 时出现错误 330 net::ERR_CONTENT_DECODING_FAILED

PHP 编译时间与运行时间。了解差异

php - 与本地时间相比更改 PHP 变量

php - 轮类时间计算问题

javascript - JavaScript 中的人类口语密码生成器

php - 带有 Nginx 1.6.2 和 PHP 5.6.4 的 Ubuntu 14.04 上的 502 Bad Gateway

php - Docker 容器关闭脚本

mysql - 用户注册时出错(Express.Js、Passport、MySQL)

python - 什么是指向数组数据开头的 Python 缓冲区对象?

javascript - 在 JavaScript 中压缩数组