2013-02-08 67 views
0

Im建立一个网站,它将返回mysql的结果并将它们显示在网页上。 我在将数据存储在mysql中或检索数据 并将其显示在网页上没有问题。 当数据返回到页面时,我想将它存储在一个表中并运行一个循环,以便每个记录都会有一个像列表号一样向下递增的数字。 任何帮助,将不胜感激。 我一直运行到我的代码错误:显示来自mysql的数据,在表中显示

<?php 
    $con = mysql_connect("localhost","root",""); 
    if (!$con) 
     { 
     die('Could not connect: ' . mysql_error()); 
     } 

    mysql_select_db("forloops", $con); 

    $result = mysql_query("SELECT * FROM userinfo ORDER BY age DESC"); 

    echo "<table border='1'> 
    <tr> 
     <th>Position</th> 
    <th>Firstname</th> 
    <th>Lastname</th> 
    <th>Age</th> 
    </tr>"; 
    $counter = 0; 
     $position= 0; 
    $row = mysql_fetch_array($result); 

    if($counter <=10){ 

      echo "<tr>"; 
         echo "<td>" . $position . "</td>"; 
      echo "<td>" . $row['firstname'] . "</td>"; 
      echo "<td>" . $row['lastname'] . "</td>"; 
      echo "<td>" . $row['age'] . "</td>"; 
      echo "</tr>"; 
      $counter++; 
      } 
    echo "</table>"; 
    mysql_close($con); 
    ?> 
+0

你得到了什么错误? – dziwna 2013-02-08 13:46:49

回答

0

与您现有的代码的问题是,你只能从查询获取的第一行,看看我怎么样了向下跌破它:

echo "<table border='1'> 
<tr> 
    <th>Position</th> 
<th>Firstname</th> 
<th>Lastname</th> 
<th>Age</th> 
</tr>"; 
$counter = 0; 
    $position= 0; 

while ($row = mysql_fetch_array($result)) { // This is new code 
    if($counter <=10){ 

     echo "<tr>"; 
        echo "<td>" . $position . "</td>"; 
     echo "<td>" . $row['firstname'] . "</td>"; 
     echo "<td>" . $row['lastname'] . "</td>"; 
     echo "<td>" . $row['age'] . "</td>"; 
     echo "</tr>"; 
     $counter++; 
    } 
} // This is new code 
echo "</table>"; 
mysql_close($con); 
?> 

如果你发现,我已经创建了周围的表行<tr>和细胞<td>的呼应循环。

这个while循环将遍历查询返回的每一行。

0

如果你从数据库中一个以上的结果,你应该使用:

while ($row = mysql_fetch_array($result)) { 
//process one row 
} 

用自己的方式,$行是永远不变的。 其次,如果我看到正确的,你不增加$位置变量。

+0

这正是我已经解释过的。 – 2013-02-08 13:35:49

+0

我在写文章的同时发布它,所以很抱歉加倍:) – 2013-02-08 13:39:34