首页 > 解决方案 > SQL conn 在使用 POST 和标头(位置)评级时失败

问题描述

我创建了一个评分系统,用户一次显示一个电影标题,然后可以对标题“好”、“差”或“没看过”进行评分。然后脚本将电影 id 插入到带有电影 id 和用户 id 的“已评分”表中,并用标题('位置')刷新页面。

评级进入数据库,但在刷新的站点上,脚本崩溃并且无法执行相同的 sql 查询来获取下一个电影标题。

我在两个表上使用了 array_diff 函数: - 电影标题 id - 电影标题 id 的用户已经评分

该函数将未分级的电影标题 id 数组返回给变量 $notrated。

然后我设置

  $nexttitle = $notrated[0]; 

然后我运行:

$nexttitle = "";
$sql = "SELECT * FROM movies WHERE movid=$nextid";
$result = $conn->query($sql);
if(!$result) die("Trouble connecting to database");    
while($row = $result->fetch_assoc()){
$nexttitle = $row['title'];}

触发连接到数据库的问题。

标签: phpmysql

解决方案


我解决了这个问题!

问题是这样的:我用 ass arrayName[0] 处理了有效输出。array_diff 函数维护主数组(第一个参数)的索引号,因此当循环继续并且项目 index[0] 无效时,它会被抛出 array_diff 生成的数组。因此,索引[0] 处不会有一个项目。仅当它是现有密钥时才通过寻址有效输出来解决此问题。


推荐阅读