0

2D 配列に値を配置し、データを表示するテーブルを作成する PHP を作成しようとしています。私の問題は、各行の最後にボタンを作成しようとしたときに発生します。SQL クエリ (配列の最初の次元) の $row['ID'] に基づいて一意の名前を付けようとしています。ループ コンテキストでこのデータを取得する方法がわかりません。

$result = mysql_query($query) or die(mysql_error());
$num_rows = mysql_num_rows($result);

if ($num_rows > 0){
while($row = mysql_fetch_assoc($result))
    {
    $list[$row['ID']]['ProductionNo']=$row['ProductionNo'];
    $list[$row['ID']]['UserID']=$row['UserID'];
    $list[$row['ID']]['StartTime']=$row['StartTime'];
    $list[$row['ID']]['EndTime']=$row['EndTime'];

    }

$openproduction = '<table><tbody><td>';
foreach ($list as &$value) 
    {
    $openproduction .= '<tr>';
        foreach ($value as &$valueitem)
        {
        $openproduction .= '<td> '.$valueitem.'</td>';
            }
    $openproduction .= "<td><input type='button' name='$key' class='button' ></td></tr></tr>";
    }
$openproduction .= '</tbody></td></table>';
unset($valueitem);
unset($value); 
4

3 に答える 3

0

独自の方法で実行したい場合は、次のコードを参照してください。

$result = mysql_query($query) or die(mysql_error());
$num_rows = mysql_num_rows($result);

if ($num_rows > 0){
while($row = mysql_fetch_assoc($result))
    {
    $row_id=0;// This variable will denote row number. 
    $list[$row_id]['ProductionNo']=$row['ProductionNo'];
    $list[$row_id]['UserID']=$row['UserID'];
    $list[$row_id]['StartTime']=$row['StartTime'];
    $list[$row_id]['EndTime']=$row['EndTime'];
    $row_id++;
    }

$openproduction = '<table><tbody><td>';
foreach ($list as &$value) 
    {
    $openproduction .= '<tr>';
        foreach ($value as &$valueitem)
        {
        $openproduction .= '<td> '.$valueitem.'</td>';
            }
    $openproduction .= "<td><input type='button' name='$key' class='button' ></td></tr></tr>";
    }
$openproduction .= '</tbody></td></table>';
unset($valueitem);
unset($value); 
于 2013-03-15T23:07:40.607 に答える
0

この行で:

foreach ($list as &$value) 

使用する:

foreach ($list as $row_id => &$value) 

次に、そのループ内に有効な $row_id を参照できるようにします。

于 2013-03-15T22:41:47.447 に答える
0

あなたがしていたことのいくつかは単に奇妙で、場合によっては間違っていました。代わりに次のようなことを試してください(実際よりもはるかに複雑になっています):

$openProduction = "<table><tbody>";
$openProduction .= "<td>productionId</td>";
$openProduction .= "<td>userID</td>";
$openProduction .= "<td>startTime</td>";
$openProduction .= "<td>endTime</td>";

while($row = mysql_fetch_assoc($result))
{
    $id = $row['ID'];
    $productionId = $row['ProductionNo']; 
    $userID = $row['UserID'];
    $startTime = $row['StartTime'];
    $endTime = $row['EndTime'];

    $openProduction .= "<tr id='row_$id'>";
         $openProduction .= "<td>$productionId</td>";
         $openProduction .= "<td>$userID</td>";
         $openProduction .= "<td>$startTime</td>";
         $openProduction .= "<td>$endTime</td>";
         $openProduction .= "<td><input type='button' id='button_$id' class='button' /></td>";
    $openProduction .= "</tr>";
}

$openProduction = ."</tbody></table>";
于 2013-03-15T22:42:26.683 に答える