2016-12-01 124 views
1

我正在設計一個簡單的博客,首先我讀了6條記錄(圖片+標題),其他人我想讀7到10. 爲6第一我使用此代碼:MySQL選擇區域

$sql = "SELECT * FROM blogcontents ORDER BY bid DESC"; 
$result = mysql_query($sql) or die("Error Query [" . $sql . "]"); 
$num_rows = mysql_num_rows($result); 

for ($i = 0; $i < 6; $i++) 
    { 
    $row = mysql_fetch_array($result); 
    echo '<li class="navblog"><a href="blogpage.php?id= ' . $row['bid'] . '"><div class="blogwrap"><img class="img-thumbnail img-responsive bphoto" src="images/blog/' . $row['btimg'] . '" alt="Smiley face" height="200" width="300"><span class="sizeoftitle">' . $row['btitle'] . '</span></div></a></li>'; 
    } 

但我不知道我怎樣才能從7到10

enter image description here

+1

請更新到新的MySQL驅動程序 - 「mysqli」。 [見這裏。](http://stackoverflow.com/questions/548986/mysql-vs-mysqli-when-using-php)它在PHP 5.5中被棄用,並在7.0中被刪除 –

回答

0

您可以使用限制和偏移(而不是循環的限制)閱讀檢索所需 一個行firts選擇6行

"SELECT * FROM blogcontents ORDER BY bid DESC limit 6 "; 

和第二選擇與其他4行開始形式5(offeset是基於0)

"SELECT * FROM blogcontents ORDER BY bid DESC limit 5,4 "; 

或者第一環路之後retrive其他

while ( $row = mysql_fetch_array($result)) 
    { 
    echo '<li class="navblog"><a href="blogpage.php?id= ' . $row['bid'] . '"><div class="blogwrap"><img class="img-thumbnail img-responsive bphoto" src="images/blog/' . $row['btimg'] . '" alt="Smiley face" height="200" width="300"><span class="sizeoftitle">' . $row['btitle'] . '</span></div></a></li>'; 
} 

基於你代碼在評論這應該工作

$sql2 = "SELECT * 
      FROM blogcontents 
      LIMIT 5, 4"; 
      $result2 = mysql_query($sql2) or die("Error Query [" . $sql2 . "]"); 

,你不需要爲循環。雖然

while ( $row = mysql_fetch_array($result2)) { 
      echo '<p><a href="blogpage.php?id= ' . $row['bid'] . '">' . $row['btitle'] . '</a></p>'; 
} ?> 
+0

我以前使用過,但它不起作用,在這裏你可以看到: $ sql2 =「SELECT * FROM blogcontents LIMIT 4 OFFSET 6」; $ result2 = mysql_query($ sql2)或死(「Error Query [」。$ sql2。「]」); 爲($ J = 0; $Ĵ<$ NUM_ROWS-1; $ J ++) \t { \t $行= mysql_fetch_array($ RESULT2); \t echo'

' . $row['btitle'] . '

'; \t} ?> –

+0

您得到的錯誤是什麼.. – scaisEdge

+0

如您在圖片中看到的那樣,所選記錄再次從最新記錄中檢索!但我只想要剩下的記錄... –

0

的result_array()函數將將mysql結果格式化成php數組。

function result_array($sql) 
    { 
     $result = array(); 
     $query = mysql_query($sql) or die("Error: " . mysql_error()); 
     while ($data = mysql_fetch_array($query)) { 
      $result[] = $data; 
     } 
     $rows = count($result); 
     if ($rows) { 
      $total_global_rows = count($result); 
      $total_inner_rows = count($result[0]); 
      $count_total_inner_rows = $total_inner_rows/2; 

      for ($i = 0; $i < $total_global_rows; $i++) { 
       for ($j = 0; $j < $count_total_inner_rows; $j++) { 
        unset($result[$i][$j]); 
       } 
      } 
     } 
     return $result; 
    } 

    $sql = "SELECT * FROM blogcontents ORDER BY bid DESC LIMIT 10"; 

    $blogPosts = result_array($sql); 

    //print till 6th and break the loop 
    foreach ($blogPosts as $key => $row) { 
     echo '<li class="navblog"><a href="blogpage.php?id= ' . $row['bid'] . '"><div class="blogwrap"><img class="img-thumbnail img-responsive bphoto" src="images/blog/' . $row['btimg'] . '" alt="Smiley face" height="200" width="300"><span class="sizeoftitle">' . $row['btitle'] . '</span></div></a></li>'; 
     if ($key > 5) { 
      break; 
     } 
    } 

    //print from 7th to the end 
    foreach ($blogPosts as $key => $row) { 
     if ($key > 5) { 
      echo $row['btitle']; 
     } 
    }