2017-08-22 5 views
4

以下のコードは完全に動作し、 "id" "firstname"と "lastname"を与えてくれます。私が欲しいのは、以下のmysqlクエリから結果行の個々の列値をPHPにエコーする方法は?

$row["id"] 

のように、各列名を引用しなくても、結果の行のすべてのフィールド値をエコーするループを使用することです任意の考えは

を喜ば作業コード

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "myDB"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT id, firstname, lastname FROM MyGuests"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
// output data of each row 
while($row = $result->fetch_assoc()) { 
    echo "<br> id: ". $row["id"]. " - Name: ". $row["firstname"]. " " . 
$row["lastname"] . "<br>"; 
} 
} else { 
echo "0 results"; 
} 

$conn->close(); 
?> 

です

答えて

1

これは動作するはずです。..

while($row = $result->fetch_array()) { 
    $i=0; 
    while($i<count($row)){ 
    echo $row[$i]; 
    $i++; 
    } 
} 
+0

:内部サーバーエラー サーバが内部エラーや設定ミスが発生したため、リクエストを完了できませんでした。 このエラーが発生した時刻とこのエラーの直前に実行した操作をサーバー管理者に連絡して、[email protected]*****.comに連絡してください。 このエラーの詳細は、サーバーのエラーログで確認できます。 さらに、ErrorDocumentを使用して要求を処理しようとしたときに、500 Internal Server Errorエラーが発生しました。 – Neo

+0

PHPのコードには関係ありません。答えを更新しました。再度確認してください。通知 'fetch_array()' –

+0

以下のようにコードを編集しました。 while($ row = $ result-> fetch_array()){ \t \t $ i = 0; \t \t while($ i Neo

1

すぐ内側foreachループを使用この

foreach($row as $key=>$value){ 
echo "<br> $key: ". $value. "<br>"; 
} 
+0

この回答は私だけの最初の列を提供します: "Username:Someuser" – Neo

+0

@ Zaheer Attarが示唆したように、私は私の質問で間違いを考え出しました。あなたのコードはそのままで動作し、すべての列に対して「Username:Someuser」などを出力します。ありがとう。 – Neo

0

のように私はあなたが何をしたいのか理解していればしながら、その値(あなたが得るの列の数とは無関係)と、各列の名前の出力を自動化です。

だから、このようにそれを実行します。私は以下のように、このためにエラーが発生しました

if ($result->num_rows > 0) { 
    foreach($result->fetch_assoc() as $row) { // browse each records 
     foreach($row as $col => $value) { // browse each columns on a record 
      echo "<br>$col: $value<br>"; 
     } 
    } 
} 
else { 
    echo "no result"; 
} 
+0

試してみると、レコードの列数に対して連続して




が生成されます。 – Neo

+0

itはArray()を出力します。Array()Array()Array()Array()は列の数だけ連続しています。 – Neo

+0

ありがとう、しかし私は答えを得た。 – Neo

関連する問題