Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不影响行数的情况下在fix html表上显示php数组_Php_Html - Fatal编程技术网

在不影响行数的情况下在fix html表上显示php数组

在不影响行数的情况下在fix html表上显示php数组,php,html,Php,Html,我仍在学习PHP的过程中,希望您能帮助我解决我的问题。我已经知道如何将数组显示到html表中,这是我通常使用表单所做的。然后我突然想到了这个问题,其中应该有一个固定行数的固定表(假设大约5行) 现在,如果我要显示来自某个特定用户的信息,并且该用户只有来自mysql的2行数据,那么我的html表上将只显示2行数据 发生了什么: ***************** ** A ** B ** C ** ***************** ** 1 ** 2 ** 3 ** **************

我仍在学习PHP的过程中,希望您能帮助我解决我的问题。我已经知道如何将数组显示到html表中,这是我通常使用表单所做的。然后我突然想到了这个问题,其中应该有一个固定行数的固定表(假设大约5行)

现在,如果我要显示来自某个特定用户的信息,并且该用户只有来自mysql的2行数据,那么我的html表上将只显示2行数据

发生了什么:

*****************
** A ** B ** C **
*****************
** 1 ** 2 ** 3 **
*****************
** 4 ** 5 ** 6 **
*****************
我想要的输出:

*****************
** A ** B ** C **
*****************
** 1 ** 2 ** 3 **
*****************
** 4 ** 5 ** 6 **
*****************
**   **   **   **
*****************
**   **   **   **
*****************
有没有一种简洁的方法来编写代码。你的想法已经帮了大忙;我不是要代码,但你可以指导我在这里可以做什么,以实现我想要的输出


谢谢。

您可以使用固定数字计算维护第二个计数器。在伪代码中,它可能如下所示:

$rowCount = 0;
while (getNextDataRow()) {
    printDataRow();
    $rowCount++;
}
while ($rowCount <= 5) {
    printEmptyRow();
    $rowCount++;
}
$myData = array(
    array('A', 'B', 'C'),
    array('1', '2', '3'),
    array('4', '5', '6')
);
for ($i = 0; $i < 5; $i++)
{
    echo '<tr>';
    if (isset($myData[$i]))
    {
        echo '<td>'.$myData[$i][0].'</td>';
        echo '<td>'.$myData[$i][1].'</td>';
        echo '<td>'.$myData[$i][2].'</td>';
    }
    else
    {
        echo '<td>&nbsp;</td>';
        echo '<td>&nbsp;</td>';
        echo '<td>&nbsp;</td>';
    }
    echo '</tr>';
}
$rowCount=0;
while(getNextDataRow()){
printDataRow();
$rowCount++;
}

while($rowCount使用带有
if
语句的
for
循环。类似如下:

$rowCount = 0;
while (getNextDataRow()) {
    printDataRow();
    $rowCount++;
}
while ($rowCount <= 5) {
    printEmptyRow();
    $rowCount++;
}
$myData = array(
    array('A', 'B', 'C'),
    array('1', '2', '3'),
    array('4', '5', '6')
);
for ($i = 0; $i < 5; $i++)
{
    echo '<tr>';
    if (isset($myData[$i]))
    {
        echo '<td>'.$myData[$i][0].'</td>';
        echo '<td>'.$myData[$i][1].'</td>';
        echo '<td>'.$myData[$i][2].'</td>';
    }
    else
    {
        echo '<td>&nbsp;</td>';
        echo '<td>&nbsp;</td>';
        echo '<td>&nbsp;</td>';
    }
    echo '</tr>';
}
$myData=array(
数组('A','B','C'),
数组('1','2','3'),
数组('4','5','6')
);
对于($i=0;$i<5;$i++)
{
回声';
if(isset($myData[$i]))
{
回显'.$myData[$i][0].';
回显“.$myData[$i][1]”;
回显“.$myData[$i][2]”;
}
其他的
{
回声';
回声';
回声';
}
回声';
}

您可以用空字符串填充数组,直到其计数为5:

$array = array(array(1,2,3),array(4,5,6));
for($i=0, $add = 5-count($array);$i<$add;$i++){
    $array[]=array('','','');
}
var_dump($array);

计算从mysql获得的行数。如果少于所需的行数,则在另一个循环中将更多行添加到表中。因此,如果数据库结果“更小”,则输出更多行谢谢@Michel我现在有了这个想法,我会尝试一下,并更新我的结果,但我相信这就是我所需要的。谢谢所有的帮助人员仍在尝试你提供的所有建议。我会随时通知你。谢谢@David我现在有了这个想法,我会尝试一下,并更新我的结果,但我不会我相信这就是我需要的。你搞定了。非常感谢。