Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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
Php 循环数据库查询_Php_Mysql_For Loop - Fatal编程技术网

Php 循环数据库查询

Php 循环数据库查询,php,mysql,for-loop,Php,Mysql,For Loop,我正在创建一个非常简单的脚本。脚本的目的是从数据库中提取问题,并显示与该特定问题相关的所有答案。我们在这里处理两个表,问题数据库和答案数据库之间有一个外键,因此答案与问题相关联 希望这是足够的解释。这是我的密码。我想知道这是完成这项工作最有效的方法还是有更简单的方法 <html> <head> <title>Advise Me</title> <head> <body> <h1>Today's

我正在创建一个非常简单的脚本。脚本的目的是从数据库中提取问题,并显示与该特定问题相关的所有答案。我们在这里处理两个表,问题数据库和答案数据库之间有一个外键,因此答案与问题相关联

希望这是足够的解释。这是我的密码。我想知道这是完成这项工作最有效的方法还是有更简单的方法

<html>
<head>
<title>Advise Me</title>
<head>
    <body>

    <h1>Today's Question</h1>
    <?php 

    //Establish connection to database
    require_once('config.php');
    require_once('open_connection.php');

    //Pull the "active" question from the database
    $todays_question = mysql_query("SELECT name, question 
                                    FROM approvedQuestions
                                    WHERE status = active")
                                    or die(mysql_error());

    //Variable to hold $todays_question aQID
    $questionID = mysql_query("SELECT commentID FROM approvedQuestions
                                WHERE status = active")
                                or die(mysql_error());

    //Print today's question
    echo $todays_question;

    //Print comments associated with today's question
    $sql = "SELECT commentID FROM approvedQuestions WHERE status = active";
    $result_set = mysql_query($sql);
    $result_num = mysql_numrows($result_set);
    for ($a = 0; $a < $result_num; $a++)
        {
            echo $sql;
        }

    ?>


    </body>
</html>

我觉得你并不是在喋喋不休地谈论问题或评论文字。。。不知道这是否是一个问题。因为只有一个问题????我将加入所有对问题的评论,并这样做:

$query = "SELECT q.*, c.* FROM approvedQuestions q LEFT JOIN comments c ON (q.id = c.questionID) WHERE q.status = 'active'";

$result = mysql_query($query);
if(mysql_num_rows()){
  while(false !== ($row = mysql_fetch_assoc($result)){
     // $row contains all columns for both question and record as array keys
     echo $row['commentID'];
     echo $row['id'];
     echo $row['name'];
  }
}

不是每次打印答案信息时都会显示问题信息,但这很容易解决,方法是在循环之前提取第一个ro,将问题数据拉入另一个数组,然后倒带结果集并调用循环。

为什么要进行3次不同的查询,以从同一行获取不同的列?而且,在您的循环中,您实际上是在打印SQL查询,而不是结果集。+1对于jerluc,@DrakeNET,$SQL对我来说毫无意义。