2013-08-10 5 views
1

ОК, так вот.Застрял с SQL, повторяющим только первую строку

Я пытаюсь написать систему ведения блогов (учиться, как в любом случае), и проблема заключается в том, что SQL возвращает только первую строку в базе данных. Он делает это столько раз, сколько записей, которые у меня есть. Я не могу понять, что происходит не так. Может ли кто-нибудь указать мне в правильном направлении, пожалуйста?

<?php 
    include "db_connect.php"; 
    include "functions.php"; 
    include "style/header.php"; 
?> 

<link href="style/style.css" rel="stylesheet" type="text/css"> 

<div id="main"> 

<?php 
     echo 'Welcome to the forest, '.$_SESSION['username']; 

    $sql = mysql_query("SELECT post_id, post_user, post_title, post_description, post_info, post_date FROM posts"); 
    $row = mysql_fetch_array($sql); 

    $post_id = $row['post_id']; 
    $post_user = $row['post_user']; 
    $post_title = $row['post_title']; 
    $post_description = $row['post_description']; 
    $post_info = $row['post_info']; 
    $post_date = $row['post_date']; 
    do { ?> 

<article> 
<h2> 

<?php 
echo $post_title; 
?> 
</h2> 
<?php 
    echo $post_description; 
    echo $post_info; 
    echo 'Posted by '.$post_user.' on '.$post_date; 

} while ($row = mysql_fetch_array($sql)); 
?> 
</article> 
</div> 

ответ

1

Вы бы лучше служил написать такой код (например, из this page)

$result = mysql_query("SELECT id, name FROM mytable"); 

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    printf("ID: %s Name: %s", $row["id"], $row["name"]); 
} 

Также обратите внимание, что использование mysql_ * функции не рекомендуется, так как эти функции являются устаревшими и будут удалены в будущих версиях PHP.

+0

Спасибо за помощь. Я разработал, что сделал свое заявление не в том месте :) – s4n3x

Смежные вопросы