Php 使用变量创建模板循环时出现的问题

Php 使用变量创建模板循环时出现的问题,php,Php,我试图在我的网站上建立一个简单的博客,但没有关于如何正确创建博客的教程,所以我尝试从头开始创建一个。我现在的问题是在带有变量的循环中显示帖子模板。以下是我的表格中的列: 表格博客 身份证 用户id 日期 头衔 内容 变量代码: <?php // query // $sql = mysql_query("SELECT id, user_id, date, title, content FROM blog"); $row = mysql_fetch_array($sql); // varia

我试图在我的网站上建立一个简单的博客,但没有关于如何正确创建博客的教程,所以我尝试从头开始创建一个。我现在的问题是在带有变量的循环中显示帖子模板。以下是我的表格中的列:

表格博客

  • 身份证
  • 用户id
  • 日期
  • 头衔
  • 内容
  • 变量代码:

    <?php 
    // query //
    $sql = mysql_query("SELECT id, user_id, date, title, content FROM blog");
    $row = mysql_fetch_array($sql);
    // variables //
    $user_id = $row['user_id']; //only the id, not the name
    $date = $row['date'];
    $title = $row['title'];
    $content = $row['content'];
    // get user_id name //
    $sql2 = mysql_query("SELECT name FROM users WHERE id = '$user_id'");
    $row2 = mysql_fetch_array($sql2);
    $author = $row2['name']; //last variable
    ?>
    
    试试这个:

       <?php
            // query //
            $sql = mysql_query ( "
                  SELECT b.id, b.user_id, b.date, b.title, b.content, u.name
                  FROM blog b, users u 
                  WHERE b.user_id = u.id
                  ORDER BY b.id DESC" );
            while ( $row = mysql_fetch_array ( $sql ) ) {
                // variables //
                $user_id = $row ['user_id']; // only the id, not the name
                $date = $row ['date'];
                $title = $row ['title'];
                $content = $row ['content'];
                $author = $row ['name']; // last variable
            ?>
            <div id="container">
                <div align="center" style="background-color: gray">
                    <b><?php echo $title;?></b>
                </div>
                <div align="right">Author: <?php echo $author;?> Date: <?php echo $date;?></div>
                <div><?php echo $content;?></div>
            </div>
            <hr>
    <?php
    }
    ?>
    
    然后,您需要使用以下命令循环查询:

    while ( $row = mysql_fetch_array ( $sql ) ) {}
    

    首先,您需要将blog表放入一个数组中:

    $sql = mysql_query("SELECT id, user_id, date, title, content FROM blog");
    while($row = mysql_fetch_array($sql)) {
        $blog[] = $row;
    }
    
    然后,在模板中:

    <div id="container">
    <div align="center" style="background-color:gray"><b><?php echo $title;?></b></div>
    <div align="right">Author: <?php echo $author;?> Date: <?php echo $date;?></div>
    <div><?php
    foreach($blog as $val) {
        echo "<h1>".$val['title']."</h1>"M
        echo $val['content'];
    }
    ?></div>
    </div>
    <hr>
    
    
    作者:日期:
    

    意味着您希望查看
    日志中的所有记录
    ?我希望显示表blog中的所有记录。从id值派生而来。我想您应该了解了,所以我将给您一些提示:1)了解sql
    JOIN
    -无需在其他查询中获取用户。2)
    mysql\u fetch\u array
    只返回结果中的一行,因此您需要对它们进行循环以获取所有行3)假设您有包含REULT的变量,您只需使用foreach循环即可显示所有行4)mysql\u*函数不推荐使用,请尝试检查mysqli或pdo@user3555218例如我把答案贴了出来。请检查它。博客id不是后代,请修复它。它目前的顺序是从低id到高id,我希望它从高到低,所以新的帖子将首先显示。
    $sql = mysql_query("SELECT id, user_id, date, title, content FROM blog");
    while($row = mysql_fetch_array($sql)) {
        $blog[] = $row;
    }
    
    <div id="container">
    <div align="center" style="background-color:gray"><b><?php echo $title;?></b></div>
    <div align="right">Author: <?php echo $author;?> Date: <?php echo $date;?></div>
    <div><?php
    foreach($blog as $val) {
        echo "<h1>".$val['title']."</h1>"M
        echo $val['content'];
    }
    ?></div>
    </div>
    <hr>
    
    $records = mysql_fetch_array($sql);
    
    $blogs_table = '<table> <tr> <th>User id</th> <th>Date</th> <th>Title</th> <th>Content</th></tr>';
    foreach($records as $row) {
       $blogs_table .= '<tr>';
       $blogs_table .= '<td>' . $row ['user_id'] .'</td>';
       $blogs_table .= '<td>' . $row ['date'] .'</td>';
       $blogs_table .= '<td>' . $row ['title'] .'</td>';
       $blogs_table .= '<td>' . $row ['content'] .'</td>';
       $blogs_table .= '</tr>';
    }
    $blogs_table .= '</table>';
    
    <div align="right"><?php echo $blogs_table ?></div>