无法通过MYSQL在PHP网站中按要求显示输出
我首先想显示一个问题,然后从两个不同的表格中显示相应的答案。我的代码如下:无法通过MYSQL在PHP网站中按要求显示输出,php,html,mysql,Php,Html,Mysql,我首先想显示一个问题,然后从两个不同的表格中显示相应的答案。我的代码如下: $reg = $_SESSION['reg']; $sql1="select users.reg,questions.question,questions.id from users,questions where users.reg=questions.reg and questions.company='infosys' and questi
$reg = $_SESSION['reg'];
$sql1="select users.reg,questions.question,questions.id
from users,questions
where users.reg=questions.reg
and questions.company='infosys'
and questions.reg!='$reg'
limit 0,5";
$query1=mysqli_query($conn,$sql1);
$sql2="select answers.id,answers.reg,answers.answer from answers";
$query2=mysqli_query($conn,$sql2);
while($row1 = mysqli_fetch_assoc($query1))
{
echo "<p class='fill'>".$row1["reg"]."asked:-" ;
echo '<br>QID:-'.$row1['id'].'  "'.$row1["question"].'"<br></p>';
while($row2 = mysqli_fetch_assoc($query2))
{
if($row1['id']==$row2['id'])
{
echo "<pre align='right'>".$row2["reg"]."answered:-" ;
echo '<br>'.$row2['id'].'  "'.$row2["answer"].'"</pre>';
}
}
$reg=$\u会话['reg'];
$sql1=“选择users.reg,questions.question,questions.id
来自用户的问题
其中users.reg=questions.reg
还有问题。company='infosys'
还有问题。reg!='$reg'
限制为0.5”;
$query1=mysqli\u查询($conn,$sql1);
$sql2=“选择answers.id、answers.reg、answers.answer from answers”;
$query2=mysqli\u查询($conn,$sql2);
而($row1=mysqli\u fetch\u assoc($query1))
{
echo“”$row1[“reg”]”问:“;
回音“
QID:-”.$row1['id'.&emsp;&emsp;”.$row1[“问题”]。“
”;
而($row2=mysqli\u fetch\u assoc($query2))
{
如果($row1['id']=$row2['id']))
{
回声“$row2[“reg”]”回答:-;
回显“
”.$row2['id'.&emsp;&emsp;”.$row2[“应答”]。”;
}
}
我只能显示第一个问题的答案。我的代码中有什么错误吗?是的,您的代码中有问题。一旦您从执行的查询中遍历,它将不会再次从循环中遍历,直到您再次执行查询。因此,您可以将结果存储在数组中,然后再从中遍历
<?php
$reg = $_SESSION['reg'];
$sql1="select users.reg,questions.question,questions.id from users,questions where users.reg=questions.reg and questions.company='infosys' and questions.reg!='$reg' limit 0,5";
$query1=mysqli_query($conn,$sql1);
$sql2="select answers.id,answers.reg,answers.answer from answers";
$query2=mysqli_query($conn,$sql2);
//traverse naswer loops
$answers = array();
while($row2 = mysqli_fetch_assoc($query2)){
$answers[] = $row2;
}
while($row1 = mysqli_fetch_assoc($query1)){
echo "<p class='fill'>".$row1["reg"]."asked:-" ;
echo '<br>QID:-'.$row1['id'].'  "'.$row1["question"].'"<br></p>';
foreach($answers as $answer)
if($row1['id']==$answer['id']){
echo "<pre align='right'>".$answer["reg"]."answered:-" ;
echo '<br>'.$answer['id'].'  "'.$answer["answer"].'"</pre>';
}
}
}
您可以获取所有问题。通过在where条件中传递问题的ID,循环这些问题并在循环本身中获取相关答案。这样,您将确保获得该问题的所有相关答案
像下面这样的
$reg = $_SESSION['reg'];
$sql1="select users.reg,questions.question,questions.id from users,questions where users.reg=questions.reg and questions.company='infosys' and questions.reg!='$reg' limit 0,5";
$query1=mysqli_query($conn,$sql1);
while($row1 = mysqli_fetch_assoc($query1)){
echo "<p class='fill'>".$row1["reg"]."asked:-" ;
echo '<br>QID:-'.$row1['id'].'  "'.$row1["question"].'"<br></p>';
$sql2="select answers.id,answers.reg,answers.answer from answers where questionid = ".$row1['id'];
$query2=mysqli_query($conn,$sql2);
while($row2 = mysqli_fetch_assoc($query2)){
echo "<pre align='right'>".$row2["reg"]."answered:-" ;
echo '<br>'.$row2['id'].'  "'.$row2["answer"].'" </pre>';
}
}
$reg=$\u会话['reg'];
$sql1=“选择users.reg,questions.question,questions.id from users,questions where users.reg=questions.reg和questions.company='infosys'和questions.reg!=”$reg'限制0,5”;
$query1=mysqli\u查询($conn,$sql1);
而($row1=mysqli\u fetch\u assoc($query1)){
echo“”$row1[“reg”]”问:“;
回音“
QID:-”.$row1['id'.&emsp;&emsp;”.$row1[“问题”]。“
”;
$sql2=“选择answers.id,answers.reg,answers.answer from answers where questionid=“.row1['id]”;
$query2=mysqli\u查询($conn,$sql2);
而($row2=mysqli\u fetch\u assoc($query2)){
回声“$row2[“reg”]”回答:-;
回显“
”.$row2['id'.&emsp;&emsp;”.$row2[“应答”]。”;
}
}
如果您想让我们了解发生了什么,您需要向我们展示您的数据库架构和一些示例数据。您还应该研究如何使用sql-“JOIN”,而不是用逗号分隔查询中的多个表。如果要联接两个表,则必须有一个公共字段…在问答表中,我想没有公共id,如果是,则使用该外键联接两个表,然后为问题y写入where条件有效!!@B.Desai.@Pro如果有效,则向上投票并接受t他回答问题是为了帮助别人