我在MySQL中有一个表。此表的名称为questiontbl
。问题存储在这个表中。向用户随机显示一个问题。这个问题不应重复。因此用户ID存储在名为uid
的列中。我有一些问题:
第一,问题显示多次而不是一次。
第二,uid
字段更新不能正常工作。例如,如果用户ID是40,并且必须添加到字段中一次,则会添加三次。
请审查我的代码,并帮助我解决它的问题。
我的桌子:
注意:用户ID不应重复存储在uid
列中。
我的代码:
<?php
$uid2=$_SESSION['id'];
$get1 = "SELECT * FROM questiontbl ORDER BY RAND() LIMIT 1";
$get2=mysqli_query($conn,$get1);
$get3=mysqli_fetch_assoc($get2);
$questionid=$get3['id'];
$now=$get3['uid'];
$now2=explode(',',$now);
foreach ($now2 as $data)
{
if (strpos($data,$uid2) !== FALSE )
{
header("Location: startnew.php");
}
else
{
$final_show=$get3['questiontitle'];
echo $final_show;
$update_idq = "UPDATE questiontbl SET uid=concat(uid,'$uid2,') WHERE id='$questionid' LIMIT1";
mysqli_query($conn, $update_idq);
}
}
?>
您会得到重复,因为您正在迭代UID
列中的所有值,以查看是否与会话ID
值匹配,每次值不匹配时,您都在更新表。相反,在explorde
ing值之后,使用in_array
查看会话id
值是否存在于uid
列中:
$uid2=$_SESSION['id'];
$get1 = "SELECT * FROM questiontbl ORDER BY RAND() LIMIT 1";
$get2=mysqli_query($conn,$get1);
$get3=mysqli_fetch_assoc($get2);
$questionid=$get3['id'];
$now=$get3['uid'];
$now2=explode(',',$now);
if (in_array($uid2, $now2)) {
header("Location: startnew.php");
}
else {
$final_show=$get3['questiontitle'];
echo $final_show;
$update_idq = "UPDATE questiontbl SET uid=concat(uid,",$uid2") WHERE id='$questionid' LIMIT 1";
mysqli_query($conn, $update_idq);
}
还请注意,变量替换只发生在双引号字符串中(您需要在id
值前加上逗号),因此需要更改
SET uid=concat(uid,'$uid2,')
至
SET uid=concat(uid,",$uid2")
最后,您有一个输入错误,limit1
应该是limit1
,尽管该查询应该不需要它。
我一直在尝试可视化地模拟交通问题,但由于某种原因,我在swing窗口中只得到了空白输出。我只看到一个灰色的屏幕,而不是一个不断移动的汽车画面。 我的绘画课如下所示: 在我的主函数中对类的调用如下: 然后,随着我模拟的每一次迭代,我打电话给 我错过了什么?
我只是想制作一个小而简单的应用程序(两年前我已经在Objective-C和api V1中制作了这个应用程序),它显示一个屏幕,上面有事件时间和描述,还有一个按钮:“在日历中插入事件”。显然,每个用户都必须用自己的谷歌用户名和密码配置应用程序。该应用程序使用第一个可用日历简化了一些过程。 我在尝试使用javascript时遇到了无限的问题(这个应用程序将用html5制作),所以,看看文档,我最终尝试
我在Spring MVC中显示jsp页面时遇到了问题。这是一个带有Gradle和IntelliJ CE的基本hello world Spring MVC: 我得到以下错误页面: 这是我的身材。格拉德尔: 视图解析器文件: 控制器页面: jsp页面位置: application.properties文件内容: 使用默认模板引擎,页面显示正确,但使用jsp,它无法工作 日志错误: https://ha
但有没有更简单的解决办法呢?
但现在,有些服务会变成空的。是否有方法在@Runwith注释中同时使用SpringJunit4ClassRunner.class和PowerMockRunner.class
问题内容: 我正在尝试使用JavaScript计算两次之间的差异。这只是基本的数学运算,但是在使用and 时,我似乎对此有一些疑问。 如果您想知道为什么要将功能应用于日期,那是因为我使用本地存储在客户端存储一些数据,并在客户端再次访问我的网站时使用它(这种方式比发出更多请求要快)到服务器)。该数据通常会不时更新一次(我是通过另一个网站的API获取数据),因此我设置了一个变量,并将其与其他数据一起存