0

So I am trying to create a posting system in PHP, but I can't seem to figure out how to display all content from my "posts" database. Only the first row of the table will display.

Here's some code from the index.html file:

<div class="message_container">
                <div class="submit_message_container">

                    <form action="includes/messages.php" method="post" class="message_function_form">
                        <input type="text" name="message" class="newmessage" placeholder="Vad har du på tungan?">
                        <input type="submit" value="skicka" class="send_button">
                    </form>

                </div>
                <div class="message_box">
                    <?php
                        include_once "includes/database.php";
                        $sql = "SELECT * FROM posts WHERE user ='".$uname."';";

                        $result = mysqli_query($conn, $sql);
                        $row = mysqli_fetch_assoc($result);
                        $message = $row["user_message"];
                        $user = $row["user"];
                        $date = $row["user_date"];
                        $id = $row["id"];
                    ?>
                    <?php echo '<div class="message">
                        <div class="top_row_message">
                            <div class="message_writer">
                            <p>'.$user.'</p>
                            </div> 
                            <div class="message_datetime">
                            <p>'.$date.'</p>
                            </div> 
                        </div>
                        <div class="bottom_row_message">
                        <p>'.$message.'</p>
                        </div>
                    </div>'?>

                </div>

And here's all the code from my message.php file:

<?php
    session_start();
    include_once "database.php";

    $message = $_POST["message"];
    $uname = $_SESSION["uname"];
    $date = date("Y/m/d");

    $sql = "INSERT INTO posts (user_message, user, user_date)
    VALUES ('$message', '$uname', '$date');";

    $result = mysqli_query($conn, $sql);
    header("Location: ../index.php?success");
    die($result);

    mysqli_query($conn, $sql);

As most of you probably can tell, I am very new to PHP..

deceze
  • 510,633
  • 85
  • 743
  • 889
  • You are missing the loop aspect of your code. https://www.w3schools.com/php/php_mysql_select.asp – Mech Feb 20 '20 at 23:00
  • Please be sure to accept an answer to close the post and to show others the solution if they have a similar issue. – Mech Feb 28 '20 at 19:58

2 Answers2

1

I've removed the div's since I don't know what they are for. This will give you what you need to work off of.

<?php 
    while($row = mysqli_fetch_assoc($result)) {
        echo "<p>" . $row['user'] . "</p>";
        echo "<p>" . $row['date'] . "</p>";
        echo "<p>" . $row['message'] . "</p>";
}
?>
Mech
  • 3,952
  • 2
  • 14
  • 25
0

Please see if data is coming from Database or Not. I think data is not coming from Database.

$sql = "SELECT * FROM posts WHERE user ='".$uname."';";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
print_r($row);
Azhar
  • 13
  • 5