2009-05-11 8 views
1

自分のユーザーデータベースをループして、テーブル内の各ユーザー名をそれぞれの行に表示しようとしています。私は1人のユーザを見せてもらうことができますが、そこには行数があります。データベースをループしてテーブルに表示

echo "<table><tr><td>".($row_users['email'])."</td></tr>"; 

あなたは再び<table>タグをエコーし​​ています。コードは、あなたの問題は、このラインである

<?php 
require_once ('../login/connection.php'); 
include ('functions.php'); 

$query = "SELECT * FROM users"; 
$results=mysql_query($query); 
$row_count=mysql_num_rows($results); 
$row_users = mysql_fetch_array($results); 

echo "<table>"; 
    for ($i=0; $i<$row_count; $i++) 
    { 
    echo "<table><tr><td>".($row_users['email'])."</td></tr>"; 
    } 
    echo "</table>"; 
?> 

おかげ

+0

を使用しています。彼の答えはあなたの問題を解決するものではありませんが、あなたのコードでは別のエラーを修正します。 – Travis

答えて

13

mysql_fetch_arrayは、単一の行をフェッチ - あなたは、一般的に、結果セット内のすべての行を食べるようにwhileループでそれを使用し、例えばあなたは決してあなたが本当に何をループしていないので、再びフェッチ呼び出しんだ

$row_users = mysql_fetch_array($results); 

echo "<table>"; 

while ($row_users = mysql_fetch_array($results)) { 
    //output a row here 
    echo "<tr><td>".($row_users['email'])."</td></tr>"; 
} 

echo "</table>"; 
+0

ありがとうございました:) – Elliott

+0

古くなった答え、MySQLの代わりにMySQLiを使用してくださいhttp://php.net/manual/en/mysqli-result.fetch-array.php – Syno

0

を下回っています。ので、あなたのコードは次のようになりますことを削除します。

echo "<table>"; 
    for ($i=0; $i<$row_count; $i++) 
    { 
    echo "<tr><td>".($row_users['email'])."</td></tr>"; 
    } 
echo "</table>"; 
4

は、あなただけの1行をフェッチしています。

私は次のようにあなたのループを変更することをお勧めしたい:結果を通じて

echo "<table>"; 
while ($row = mysql_fetch_array($results)) { 
    echo "<tr><td>".($row['email'])."</td></tr>"; 
} 
echo "</table>"; 

whileループの意志ループを、あなたが行を使い果たすまで、$行に行を割り当てます。さらに、その時点で結果の数を得ることに対処する必要はありません。これは、PHPのDBからの結果をループする「通常の」方法です。

0

テーブル内にテーブルを出力する必要はありません。

$result = mysql_query("SELECT `email` FROM `users`"); 
$num_emails = mysql_num_rows($result); 

echo "<table><caption>There are/is $num_emails email(s)</caption>"; 
while ($row = mysql_fetch_assoc($result)) { 
    echo "<tr><td>{$row['email']}</td></tr>"; 
} 
echo '</table>'; 

何かがうまくいくはずです。新しいmysqliので

2

ポール・ディクソンの答えは、マーク・Wさんを見てください素晴らしいですが、が、私はこのコーディング

$query = "SELECT * FROM users"; 
$results=mysqli_query($con,$query); 
$row_count=mysqli_num_rows($results); 

echo "<table>"; 
while ($row = mysqli_fetch_array($results)) { 
echo "<tr><td>".($row['id'])."</td></tr>"; 
} 
echo "</table>"; 

mysqli_query($con,$query); 
mysqli_close($con); 
関連する問題