我需要一些帮助来创建使用2个表的搜索,这可能是语法错误。
在表respostas中,我只需要$ logado用户的aquestion_id和user_id中的日期。
从表问题中,我需要来自pergunta和question_id的问题,这些问题仅需要从aquestion_id中未监听的ID中创建。 为了进行测试,我提出了4个问题,但没有成功。
问题是随机出现的,但是$ logado似乎未包含在搜索中,因为它在echo $exibir['user_id'];
中显示为0。
所有问题都是随机出现的,但回答完后不要停下来显示。
<?php
$sqluser = "SELECT a.aquestion_id, a.user_id, b.pergunta, b.question_id FROM respostas a INNER JOIN questions b ON a.aquestion_id != b.question_id WHERE a.user_id = '$logado' ORDER BY RAND() LIMIT 1";
$executarquest=mysqli_query($conuser, $sqluser);
while ($exibir = mysqli_fetch_array($executarquest)){
if ($exibir['question_id'] > 0)
{
$guarda = ($exibir['question_id']);
echo '<b>Quesion ID: </b>';
echo $exibir['question_id'];
echo '<br>';
echo $exibir['pergunta'];
echo $exibir['user_id'];
}
else{
header('location:/quiz/acabou.php');
}
}
?>
感谢您的帮助,对于第一次以葡萄牙语发布,再次表示歉意。
答案 0 :(得分:0)
首先,该查询应该在语法上起作用,但是我怀疑它是否返回您想要的内容。您是在随机选择用户的答案之一以及一些不相关的问题。
关于WHERE a.user_id = '$logado'
:'$logado'
是一个字符串。它包含一个美元符号和单词logado。 MySQL希望将数字user_id
与它进行比较,因此它将字符串转换为数字。我认为这最好失败,但MySQL会返回0。这就是您在结果中看到的结果:用户0给出的答案和问题。
我想您想使用一个变量代替
"...WHERE a.user_id = ".$logado." ORDER ..."
(然后您可能必须修正查询以返回有意义的内容。)