2017-07-27 20 views
-1

管理TABLEforeachの警告

+--------------+---------------+ 
| Username  | Password  | 
+--------------+---------------+ 
| JOHN   | 123   | 
| EDWARD  | 123   | 
+--------------+---------------+ 

私のコード

$result = mysqli_query($connection, $query); 
    echo" <table >"; 
    $row = mysqli_fetch_assoc($result);  
echo "<tr>"; 
    foreach($row as $key => $val){ 
     echo"<th>$key</th> "; 
    echo "</tr>"; 
    /////////////////////////////// 
    $result = mysqli_query($connection, $query); 

     echo"<tr>"; 
    while($row = mysqli_fetch_assoc($result)){ 
    foreach($row as $key => $val){ 
     echo "<td>$val</td>"; 

    } 
    echo "</tr>"; 

    } 


    echo "</table>"; 
} 

だから、問題は、私は例えばのために何をしたい、それが正確に出力し、結果以上の1行が存在する場合であるならば、私言う:

SELECT Username from admin; 


     +--------------+ 
     | Username  | 
     +--------------+ 
     | JOHN   | 
     | EDWARD  | 
     +--------------+ 

しかし、一つだけの行がある場合には、列名を表示し、この警告を与えていない

Select Username from admin where Username = 'JOHN'; 

    Warning: Invalid argument supplied for foreach() on line 65 
     +--------------+ 
     | JOHN   | 
     +--------------+ 
+1

私はなぜあなたはforeachの()を使用しているにもわかりません。あなたの結果を反復するだけで、あなたがしなければならないことはすべてあります。 –

+0

'print_r($ row)'呼び出しを追加して、出力を私たちと共有できますか? – Mureinik

+0

この '$ result = mysqli_query($ connection、$ query);'を2回使用することは冗長です。 –

答えて

0

ひどいタイプミス/論理コーディングエラー:すべてをねじ込む中括弧(中括弧)があります。見出しを生成するために使用するforeachの最後を見てください:

foreach($row as $key => $val) 
    echo"<th>$key</th> "; 

そして一番最後にスプリアスブレースを削除:

foreach($row as $key => $val){ 
    echo"<th>$key</th> "; 

これがなければなりません。

これは(それほど長いheaedrsを取得するには、少なくとも1行があるとして)動作します。

$result = mysqli_query($connection, $query); 

echo " <table >"; 

$row = mysqli_fetch_assoc($result);  

echo "<tr>"; 
foreach($row as $key => $val) 
    echo"<th>$key</th> "; 

echo "</tr>"; 

$result = mysqli_query($connection, $query); 

echo"<tr>"; 
while($row = mysqli_fetch_assoc($result)) 
{ 
    foreach($row as $key => $val) 
    { 
     echo "<td>$val</td>"; 
    } 
    echo "</tr>"; 

} 

echo "</table>"; 
+0

ありがとうございました。 – Ng21