【问题标题】:Pulling array ID values?拉数组 ID 值?
【发布时间】:2013-03-15 22:33:21
【问题描述】:

我正在尝试编写一些 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); 

【问题讨论】:

  • 好的,应该会好一点
  • 是的,太好了。 :-) 看起来自从你修复了代码之后,人们开始回答了。

标签: php arrays loops key key-value-store


【解决方案1】:

在这一行:

foreach ($list as &$value) 

用途:

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

然后,您将在该循环中拥有一个有效的 $row_id 供您参考。

【讨论】:

    【解决方案2】:

    你做的一些事情很奇怪,在某些情况下是不正确的,试试这样的事情(你让它变得比实际更复杂):

    $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>";
    

    【讨论】:

    • 之前使用的代码是创建一个我可以在其他地方访问的二维数组,这将创建表而不是数组。
    【解决方案3】:

    好吧,如果你想用自己的方式做,那么请看下面的代码:

    $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); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 2020-04-29
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 2021-08-15
      相关资源
      最近更新 更多