2011-12-02 28 views
1

我有下面的代码根据用户选择的星期从表中获取数据,但只有2个可能的星期可供选择。将数据库中的值输出到html表中PHP

它将配方的标题放入基于if语句的相关表中,但似乎产生了奇怪的输出。

当我试图查看仅填充了零件数据的一周时,将数据串集中到错误的单元格上;看看这个图片: Table problem “沙拉”位于最上面一行应在“周日

这只有在表是不完整的情况。

if(!empty($_POST['selectweek'])) { 
         $selectweek = mysql_real_escape_string($_POST['selectweek']); 

         function ouptutMeal($selectweek, $mealtime, $mealname) { 
          $sqlmeasurement2 = mysql_query("SELECT title, dayid 
                  FROM recipe 
                  JOIN menu ON recipe.recipeid = menu.recipeid 
                  WHERE menu.weekid = '$selectweek' 
                  AND menu.mealtimeid = '$mealtime' 
                  ORDER BY dayid"); 

          echo "<br/> 
           <table> 
            <td></td> 
            <td><strong>Monday</strong></td> 
            <td><strong>Tuesday</strong></td> 
            <td><strong>Wednesday</strong></td> 
            <td><strong>Thursday</strong></td> 
            <td><strong>Friday</strong></td> 
            <td><strong>Saturday</strong></td> 
            <td><strong>Sunday</strong></td> 
           <tr> 
            <td><strong>$mealname</strong></td>"; 
           while($info2 = mysql_fetch_array($sqlmeasurement2)) { 
            if($info2['dayid'] == '1') { 
             echo ' 
               <td>', $info2['title'], '</td>'; 
            } 

            elseif($info2['dayid'] == '2') { 
             echo ' 
               <td>', $info2['title'], '</td>'; 
            } 

            elseif($info2['dayid'] == '3') { 
             echo ' 
               <td>', $info2['title'], '</td>'; 
            } 

            elseif($info2['dayid'] == '4') { 
             echo ' 
               <td>', $info2['title'], '</td>'; 
            } 

            elseif($info2['dayid'] == '5') { 
             echo ' 
               <td>', $info2['title'], '</td>'; 
            } 

            elseif($info2['dayid'] == '6') { 
             echo ' 
               <td>', $info2['title'], '</td>'; 
            } 

            else { 
             echo ' 
               <td>', $info2['title'], '</td>'; 
            } 
           } 
          echo '</tr> 
           </table>'; 
          } 
         ouptutMeal($selectweek, 1, 'Breakfast'); 
         ouptutMeal($selectweek, 2, 'Lunch'); 
         ouptutMeal($selectweek, 3, 'Evening Meal'); 
         ouptutMeal($selectweek, 4, 'Pudding'); 
         ouptutMeal($selectweek, 5, 'Supper & Snacks'); 
         } 

回答

1

做一个仿佛看到了声明,如果

<td>& nbsp;</td> 

所以正确填写您的表中的值存在,如果没有的话。

0

你也可以在运行查询之前声明变量为空,例如:

if(!empty($_POST['selectweek'])) { 
    $info1 = ''; 
    $info2 = ''; 
    $selectweek = mysql_real_escape_string($_POST['selectweek']); 

    function ouptutMeal($selectweek, $mealtime, $mealname) { 
     $sqlmeasurement2 = mysql_query("SELECT title, dayid 
             FROM recipe 
             JOIN menu ON recipe.recipeid = menu.recipeid 
             WHERE menu.weekid = '$selectweek' 
             AND menu.mealtimeid = '$mealtime' 
             ORDER BY dayid"); 

     echo "<br/> 
      <table> 
       <td></td> 
       <td><strong>Monday</strong></td> 
       <td><strong>Tuesday</strong></td> 
       <td><strong>Wednesday</strong></td> 
       <td><strong>Thursday</strong></td> 
       <td><strong>Friday</strong></td> 
       <td><strong>Saturday</strong></td> 
       <td><strong>Sunday</strong></td> 
      <tr> 
       <td><strong>$mealname</strong></td>"; 
      while($info2 = mysql_fetch_array($sqlmeasurement2)) { 
       if($info2['dayid'] == '1') { 
        echo ' 
          <td>', $info2['title'], '</td>'; 
       } 

       elseif($info2['dayid'] == '2') { 
        echo ' 
          <td>', $info2['title'], '</td>'; 
       } 

       elseif($info2['dayid'] == '3') { 
        echo ' 
          <td>', $info2['title'], '</td>'; 
       } 

       elseif($info2['dayid'] == '4') { 
        echo ' 
          <td>', $info2['title'], '</td>'; 
       } 

       elseif($info2['dayid'] == '5') { 
        echo ' 
          <td>', $info2['title'], '</td>'; 
       } 

       elseif($info2['dayid'] == '6') { 
        echo ' 
          <td>', $info2['title'], '</td>'; 
       } 

       else { 
        echo ' 
          <td>', $info2['title'], '</td>'; 
       } 
      } 
     echo '</tr> 
      </table>'; 
    } 
    ouptutMeal($selectweek, 1, 'Breakfast'); 
    ouptutMeal($selectweek, 2, 'Lunch'); 
    ouptutMeal($selectweek, 3, 'Evening Meal'); 
    ouptutMeal($selectweek, 4, 'Pudding'); 
    ouptutMeal($selectweek, 5, 'Supper & Snacks'); 
} 
相关问题