Josh Walshaw
Josh Walshaw

Reputation: 210

Grab and echo out multiple SQL rows with PHP

I'm wanting to fill a database with news article information such as PostID, PostTitle, PostDescription, PostContent and so on - I tried writing some code to constantly echo out the data in the SQL query but it only works for the first row that the query picks up

$SQL = "SELECT * FROM posts"; // get all info from posts
$result = mysql_query($SQL);        
$row = mysql_fetch_array($result);

if (mysql_numrows($result) > 0) {
    $row = mysql_fetch_array($result);
    $Title = $row["PostTitle"];
    $Description = $row["PostDescription"];
    $Date = $row["PostDate"];
    $AuthorID = $row["AuthorID"];

    echo "<div id='preview'>";
        echo "<div class='group selection'>";
            echo "<div class='col span_1_of_3'>"; 
                echo "<div id='previewmedia'>";
                echo "</div>";                        
            echo "</div>";
            echo "<div class='col span_2_of_3'>";
                echo "<h1>".$Title."</h1>";
                echo "<p class='preview'>".$Description."</p>";

                echo "<a href='bloglayout.php' class='orange readmore'>Read More...</a>";
            echo "</div>";
        echo "</div>";
    echo "</div>";                       
}

I then thought about doing a SELECT query to then count the number of ID's in the table and then set that as $ID and then give each variable a number and then +1 after each loop but realised that wouldn't work so I'm kinda stuck on how to loop out several rows automatically from my database.

Also, I know I shouldn't be using mysql_numrows and whatnot in PHP and I should move to mysqli or PDO but this is for something where I've been asked to use mysql specifically.

Upvotes: 0

Views: 946

Answers (1)

bassxzero
bassxzero

Reputation: 5041

You're only fetching one row. Try looping through your results.

$SQL = "SELECT * FROM posts"; // get all info from posts
$result = mysql_query($SQL);        

while( $row = mysql_fetch_array($result);)
{
    $Title = $row["PostTitle"];
    $Description = $row["PostDescription"];
    $Date = $row["PostDate"];
    $AuthorID = $row["AuthorID"];

    echo "<div id='preview'>";
        echo "<div class='group selection'>";
            echo "<div class='col span_1_of_3'>"; 
                echo "<div id='previewmedia'>";
                echo "</div>";                        
            echo "</div>";
            echo "<div class='col span_2_of_3'>";
                echo "<h1>".$Title."</h1>";
                echo "<p class='preview'>".$Description."</p>";

                echo "<a href='bloglayout.php' class='orange readmore'>Read More...</a>";
            echo "</div>";
        echo "</div>";
    echo "</div>";                       
}

Upvotes: 2

Related Questions