如何获得上一篇文章的用户名?

威尔士人

我正在建立自己的论坛,我希望能够显示在主题中发布的最后一个人的用户名。以下是我现在获得的代码,但是我尝试更改SQL函数,但似乎无法正确执行。它将仅在表的每一行中显示相同的用户名。

以下是显示我想要的所有相关代码。

$host = "host"; // Host name 
$username = "username"; // Mysql username 
$password = "password"; // Mysql password 
$db_name = "db"; // Database name 
$tbl_name = "fquestions"; // Table name 
$tbl_name2 = "fanswer"; // Table name 

// Connect to server and select databse.
$conn = mysqli_connect($host, $username, $password)or die("cannot connect"); 
mysqli_select_db($conn, $db_name)or die("cannot select DB");

<table width="100%" style="font-size: 20px;">
    <tr>
    <td align="center" width="20%"><h4>Topic</h4></td>
    <td align="center" width="20%"><h4>Posted By</h4></td>
    <td align="center" width="20%"><h4>Replies</h4></td>
    <td align="center" width="20%"><h4>Last Post</h4></td>
    <td align="center" width="20%"><h4>Date / Time</h4></td>
    </tr>

<?php

// Start looping table row
$sql2 = "SELECT * FROM $tbl_name";
$result2 = mysqli_query($conn, $sql2);

if (mysqli_num_rows($result2) > 0) {
    while($rows = mysqli_fetch_array($result2)) {
        $topic = strtolower(htmlentities($rows['topic']));
        $topic = str_replace(get_html_translation_table(), "-", $topic);
        $topic = str_replace(" ", "-", $topic);
        $topic = preg_replace("/[-]+/i", "-", $topic);
        ?>
        <tr>
            <td align="center"><a href="view-topic?id=<?php echo $rows['id']; ?>/<?echo $topic ?>"><?php echo $rows['topic']; ?></a><br></td>
            <td align="center"><?php echo $rows['username']; ?></td>
            <td align="center"><?php echo $rows['reply']; ?></td>
            <?php
            $sql3 = "SELECT * FROM $tbl_name2 ORDER BY a_id DESC, LIMIT 1";
            $result3 = mysqli_query($conn, $sql3);

            while($rows2 = mysqli_fetch_array($result3)) {
                ?>
                <td align="center"><?php echo $rows2['a_username']; ?></td>
                <?php
            }
            ?>
            <td align="center"><?php echo $rows['datetime']; ?></td>
        </tr>

        <?php
    // Exit looping and close connection 
    }
} else {
    ?>
    <tr>
        <td align="center"><?php echo "0 records"; ?></td>
        <td align="center"><?php echo "0 records"; ?></td>
        <td align="center"><?php echo "0 records"; ?></td>
        <td align="center"><?php echo "0 records"; ?></td>
        <td align="center"><?php echo "0 records"; ?></td>
    </tr>
    <?php
}
?>
</table>

如果有帮助,我还添加了表结构的图像!

问题表结构

fanswer表结构

fquestions表中保存了所有主题标题和详细信息,以及查看它们的次数,发帖人等内容,fanswer是所有答案的存储位置,question_id是与第一个相同的id表。a_id是回复号,然后是发帖人的详细信息和用户名以及日期和时间。

耶罗恩

在循环中,您选择的最后一行fanswer,无论它是否与您的问题/答案相关:

$sql3 = "SELECT * FROM $tbl_name2 ORDER BY a_id DESC, LIMIT 1";

您想要类似(取决于您的表结构和关系)的东西:

$sql3 = "SELECT * FROM $tbl_name2 WHERE question_id = ? ORDER BY a_id DESC LIMIT 1";

要么:

$sql3 = "SELECT * FROM $tbl_name2 WHERE a_id = ? ORDER BY a_id DESC LIMIT 1";

将占位符绑定?您所在的特定项目的位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章