Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法通过MYSQL在PHP网站中按要求显示输出_Php_Html_Mysql - Fatal编程技术网

无法通过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'].'&emsp;&emsp;"'.$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'].'&emsp;&emsp;"'.$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'].'&emsp;&emsp;"'.$row1["question"].'"<br></p>';
    foreach($answers as $answer)
        if($row1['id']==$answer['id']){
            echo "<pre align='right'>".$answer["reg"]."answered:-" ;
            echo '<br>'.$answer['id'].'&emsp;&emsp;"'.$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'].'&emsp;&emsp;"'.$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'].'&emsp;&emsp;"'.$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他回答问题是为了帮助别人