2016-05-10 23 views
0

私はクエリを持っていますが、その結果をループしてテーブル内のレコードを表示しています。これはうまくいきます。foreachループ内の特定の列から値を取得

Myテーブルには、RecID、Name、Feedback、Score、Productの5つの列があります。

以下のループからわかるように、5つの列がすべて一覧表示されます。私がしたいのは、名前、フィードバック、スコア、および製品の列のリスト4だけですが、$RecIDという変数にRecIDを格納します。次に、Deleteリンクの$ RecIDを使用して、IDに基づいてレコードを削除するAjax関数を呼び出します。

表示内の特定の列を除外する方法と、変数に格納するRecID値をキャプチャする方法を教えてください$RecID

<?php 
    while($dataArray = mysql_fetch_array($queryexe, MYSQL_ASSOC)) 
    { 
     echo "<tr>\n"; 
     foreach ($dataArray as $col_value) { 

      echo "\t<td>$col_value</td>\n"; 
     } 
     //echo "<td><a onclick('deleteRecord(" + $recID + ")'>Delete</a></td>"; 
     echo "</tr>\n"; 
    } 
?> 
+0

$ col_value ['column_name'] –

答えて

3

ループを使用して列を表示しないで、直接入力するフィールドには$dataArray['colname']を使用してください。

<?php 
while($dataArray = mysql_fetch_array($queryexe, MYSQL_ASSOC)) 
{ 
    echo "<tr>\n"; 
    echo "<td>{$dataArray['Name']}</td><td>{$dataArray['Feedback']}</td><td>{$dataArray['Score']}</td><td>{$dataArray['Product']}</td>"; 
    echo "<td><a onclick('deleteRecord({$dataArray['RecID']})'>Delete</a></td>"; 
    echo "</tr>\n"; 
} 
?> 
+0

それは動作します。どうもありがとうございます! – Milacay

1

foreachループを変更して、列名とその値を取得することができます。ループ内で、必要な特定の列名をチェックし、他の列名とは異なる方法で処理することができます。

while($dataArray = mysql_fetch_array($queryexe, MYSQL_ASSOC)) { 
    echo "<tr>\n"; 
    foreach ($dataArray as $col_name => $col_value) { 
     if ($col_name == 'RecID') { 
      echo "<td><a onclick('deleteRecord(" . $col_value . ")'>Delete</a></td>"; 
     } else { 
      echo "\t<td>$col_value</td>\n"; 
     } 
    } 
    echo "</tr>\n"; 
} 

あなたはforeachための2つの異なる構文の違いについて読むことができると彼らはPHP documentationで使用されるべきですか。

+0

この方法も機能します。ありがとうございます。ただし、削除リンクを最後の列に揃えるのは難しい作業です。なにか提案を? – Milacay

+1

これは、foreachループを使用するよりも優れています。なぜなら、クエリの列の順序に依存する必要がないからです。 –

関連する問題