1

这让我发疯!我需要用从数据库中提取的值填充 HTML 表。HTML 表的每个值都有 100 个 td。

我有一个我填充的数组:

$x = 1;
$ArrayA = array();
    for ($x = 1; $x <= 100; $x++) {
        $ArrayA[$x] = 0;
    }

所以现在我有一个包含 100 个值的数组,对吧?

然后我查询我的数据库,并得到我“想要”的结果(从 table1 中选择 num)6 行具有以下值: 1,3,14,50,100.

然后我将查询中的值插入到我之前用一百个 0 填充的 $ArrayA 中

$x = 1;
while ($row = mysql_fetch_array($result)) 
    { 
    extract($row);
    $ArrayA[$x] = "$num";
        $x++;   
}

现在$ArrayA有这个: 1,3,14,17,100,0,0,0,0,0,0,0,0,0,0,0,0.....

我的目标是用0我应该有一个“下一个”数字的地方替换,这很难解释。我需要这个结果: 1,0,3,0,0,0,0,0,0,0,0,0,0,14,0,0,17,0....

我尝试使用 PHP array_splice,但它不起作用。我尝试了一些 if 语句,但我的逻辑和编程经验并不是那么好。

有什么建议么?谢谢

4

3 回答 3

0
$match_rows = mysql_fetch_array($result);
$rows = range(1,100);

    foreach( $rows as $row){

    echo '<td>';

        if( in_array($row, $match_rows) ){
        echo $row;
        }else{
        echo 0;
        }

    echo '</td>' . PHP_EOL; 

    }

抱歉,这是未经测试的 - 它可能更短或更整洁,但这样可能说明了实现您想要的另一种方式。

于 2012-07-05T21:16:09.813 回答
0

认为这是您想要的第二个代码块:

while ($row = mysql_fetch_array($result)) 
{ 
    extract($row);
    if($num > 0 && $ <= 100 )
    {
        $ArrayA[$num] = "$num";
    } 
}

如果您的数据库值为 3、10、15、22、100,那么您最终会得到 0,0,3,0,0,0,0,0,0,10,0,0,0,0,15等等等等。

于 2012-07-05T20:46:59.893 回答
0

如果我理解这一点,您想在查询返回的每个元素之后添加一个零吗?正确的?如果是这样,为什么不在将元素添加到数组后立即添加零呢?

$x = 1; while ($row = mysql_fetch_array($result))      {

extract($row);     
$ArrayA[$x] = "$num";       
$x++;
$ArrayA[$x] = "0"; //adds zero after every $num insert    
}

也许您可以澄清这是否不是您要问的...

于 2012-07-05T20:49:37.170 回答