在使用外部和内部foreach循环显示数据时遇到问题

时间:2011-02-24 11:33:46

标签: php foreach

我遇到了一个我无法解决的问题。 我不知道它是否可以解决。 我一整天都在寻找和尝试。 我非常希望你能帮助我。

我想用表格数据创建表格。 因此,我需要人的名字(在我的情况下是学生)和一些输出,比如'他生病了多少小时'。

我从MySQL数据库获取数据并用PHP调用它们。 这只是一个例子,但描述了我需要的东西:

  1. 每个学生应该有一个新的表格行。 (没问题)
  2. 对于每个学生,我都需要他生病的时间。
  3. 这应该显示在名称下的表格中。 我的问题是每个名字下都会显示病人的生病时间。我举一个例子看它看起来和它的样子:

    Shall look like:
    |Name    |Hours Been Sick   
    |Sam      | 0                               
    |Samantha | 3                               
    |Sammy  | 25                            
    
    
    Looks like:
    |Name    |Hours Been Sick   
    |Sam      | 0 3 25                  
    |Samantha | 0 3 25                  
    |Sammy  | 0 3 25                    
    

    这是因为我的第一个foreach循环。 我只是看不到以另一种方式输出数据的方法。

    这是我的代码:

    
    //For every student 
    foreach ($someQuery as $student => $value) {
    $name = ucfirst($student);
        echo "<thead><tr><td>" . $student . "</td>";
        echo "</tr></thead>";
        echo "<tbody>";
            echo "<td>";
                echo "<table>";
                    echo "<tr>";
                        //for every student the hours he has been sick
                        foreach ($hoursBeenSick as $name => $value) {
                                $value = round($value, 1);
                                echo "<td>" . $value . "</td>"
                        }
    [more code]
    }

3 个答案:

答案 0 :(得分:0)

尝试更换:

foreach ($hoursBeenSick as $name => $value) {
  $value = round($value, 1);
  echo "<td>" . $value . "</td>"
}

with:

echo "<td>" . round($hoursBeenSick[$student], 1) . "</td>"

答案 1 :(得分:0)

替换

 //for every student the hours he has been sick
 foreach ($hoursBeenSick as $name => $value) {
   $value = round($value, 1);
   echo "<td>" . $value . "</td>";
 }

$value = round($hoursBeenSick[$student], 1);
echo "<td>" . $value . "</td>";

答案 2 :(得分:0)

如果您在与学生相同的查询中选择hours_been_sick,您将有一个很好的数据阵列可以打印出来。

如果不知道你的桌子是什么样的,就不能完全说出来,但是像

那样
SELECT student_name, hours_sick FROM students_table, sickness_table
WHERE students_table.student_id = sickness_table.student_id