2016-01-24 3 views
0

У меня возникла проблема, когда я пытаюсь получить данные из db!Мои скрипты PHP возвращают только одну строку из моей таблицы

Вот мой синтаксический код, который я включил & будет получать данные из MySQL таблицы:

$select_posts = "select * from posts order by RAND() LIMIT 0,6"; 
$run_posts = mysqli_query($con,$select_posts); 
while($row=mysqli_fetch_array($run_posts)){ 
    $post_id = $row['post_id']; 
    $post_title = $row['post_title']; 
    $post_date = $row['post_date']; 
    $post_author = $row['post_author']; 
    $post_image = $row['post_image']; 
    $post_keywords = $row['post_keywords']; 
    $post_content = $row['post_content']; 
    $post_summary = $row['post_summary']; 
} 

Как вы можете видеть, что я добавить LIMIT 0,6 что означает «начинается с 1-го ряда & показать 6 элементов из таблицы "...

Но я не знаю, почему появляется только 1 результат.

Это страница, которую я показываю результаты моего стола:

<div id="box"> 
       <div class="BJadidBold"> 
       <?php 
       if (mysqli_num_rows($run_posts) > 0){ 
        echo " 
        <h1>$post_title</h1> 
        <p>$post_summary</p></br> 
        <a style='float:right;font-size:30px;margin-top:-30px;' href='blog_post_content.php?post_id=$post_id'>readmore</a> 
        "; 
       }else{ 
        echo "<h1>No posts yet!</h1>"; 
       } 
       ?> 
       </div> 
      </div> 

Я хочу, чтобы показать, по крайней мере 6 пунктов на моей странице. Как я могу это сделать?

+2

в цикле перезаписи каждой переменной. вы получите последнюю строку db в каждой из этих переменных. –

ответ

1

изменить первый блок, чтобы не перезаписать:

$select_posts = "select * from posts order by RAND() LIMIT 0,6"; 
$run_posts = mysqli_query($con,$select_posts); 
$post=array(); 
while($row=mysqli_fetch_array($run_posts)){ 
    $post[$row['post_id']]['id'] = $row['post_id']; 
    $post[$row['post_id']]['title'] = $row['post_title']; 
    $post[$row['post_id']]['date'] = $row['post_date']; 
    $post[$row['post_id']]['author'] = $row['post_author']; 
    $post[$row['post_id']]['image'] = $row['post_image']; 
    $post[$row['post_id']]['keywords'] = $row['post_keywords']; 
    $post[$row['post_id']]['content'] = $row['post_content']; 
    $post[$row['post_id']]['summary'] = $row['post_summary']; 
} 

затем петли результаты для отображения:

foreach($post as $p){ 
echo " 
<h1>$p['title']</h1> 
<p>$p['summary']</p></br> 
<a style='float:right;font-size:30px;margin-top:-30px;' href='blog_post_content.php?post_id=$p['id']'>readmore</a>"; 
} 
+0

Спасибо большое, но я думаю, мне нужно изменить $ post ['title'] на $ p ['title'], чтобы сделать это для отображения результатов! –

+0

doh, да, извините, обновит это –

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