2011-10-04 167 views
0

我是PHP新手,我認爲這是一個簡單的問題。php&mysql while循環

我可以顯示來自我的數據庫這樣的內容:

... 
... 
<?php while($rows = mysql_fetch_array($queryNews)){ ?> 
    <div class='title_news'><?php echo $row['Title'] ?> </div> 
.... and so on... 

那好吧到目前爲止

然後我想模擬一種分頁的:我的意思是出盡可能多的數字新聞 我第一次嘗試了for循環

<?php for($i=1; $i<= sizeof(mysql_fetch_array($queryNews)); $i++){ ?> 
    <div class="num_txt"><?php echo $i ?></div> 
<?php } ?> 

沒有成功。所以我嘗試了與第一種類似的方式,也沒有成功。

<?php 
     $i=1; 
     while($row = mysql_fetch_array($queryNews)){ ?> 
     echo '<script language="javascript">confirm('.$i.')</script>;'; 
      <div class="num_txt"><?php echo $i ?></div> 
    <?php $i++; } ?> 

有誰知道我在做什麼錯? 謝謝

回答

1

您的for循環幾乎是正確的,但sizeof(mysql_fetch_array($queryNews))從結果集中獲取一行並返回該行中的列數。你想行的結果集數:

<?php for($i=1, $numRows = mysql_num_rows($queryNews); $i<= $numRows; $i++){ ?> 
    <div class="num_txt"><?php echo $i ?></div> 
<?php } ?> 
2

使用mysql_num_rows來計算總行數,或創建一個變量,當你循環你的記錄來獲得總數增量。

+0

不知道爲什麼,但增量的代碼塊沒有顯示出來..現在是...當你引用一個增量變量,就像這樣?同時,我會設置mysql_num_rows。謝謝 – peterK

1

要生成的數字陣列試試這個:

$r = range(mysql_num_rows(YOUR_RESULT_SET)); 

foreach($r as $n){ 
echo $n; 
} 

那不是分頁,因爲大多數定義它,但你可以輕鬆地搜索PHP分頁如果您想要學習如何使用Mysql中的LIMIT子句一次獲得10個結果組。