MySQL PHP根据输出

时间:2015-12-05 10:36:22

标签: php html mysql

我正在为我正在处理的项目提供一周的可用性表。桌子打印一切都很好,但我需要' doctorName'字段是某些颜色取决于它们是否可用(绿色)或不是(红色)。因此,为了更清楚,请查看此屏幕截图 - https://www.dropbox.com/s/ikxww1yqy10198j/Screen%20Shot%202015-12-05%20at%2010.23.55.png?dl=0

正如你所看到的那样,第二列在每个时间段都打印出3个医生的名字,如果医生预约就像周三上午10点用Moe那样打印出timeSlotId。我想弄清楚如果医生预约如何让第二栏中的医生姓名变成红色,如果不是,那么就是绿色。如果医生可用它会使该字段为空,因此为什么有大量的字段是空的,我还没有很多虚拟数据。

这是打印出我的表格的if语句:

$results = @mysqli_query ($conn, $query);
//$numrows = mysqli_num_rows($results);

if ($results) {
    echo '<table>
    <tr> <td bgcolor="#DC0E03"><font color="#fff"><strong>The Time</stong>     </font></td> <td bgcolor="#DC0E03"><font color="#fff"><strong>Doctor Name</stong>   </font></td> <td bgcolor="#DC0E03"><font color="#fff"><strong>Monday</stong>   </font></td> <td bgcolor="#DC0E03"><font color="#fff"><strong>Tuesday</stong>   </font></td> <td bgcolor="#DC0E03"><font color="#fff"><strong>Wednesday</stong>   </font></td> <td bgcolor="#DC0E03"><font color="#fff"><strong>Thursday</stong>    </font></td> <td bgcolor="#DC0E03"><font color="#fff"><strong>Friday</stong>  </font></td> </tr>';

    while ($row = mysqli_fetch_array($results, MYSQLI_ASSOC)) {
     echo '<tr><td bgcolor="#DC0E03"><font color="#fff">' . $row['theTime'] .    '</font></td> <td bgcolor="#bababa">' . $row['doctorName'] . '</td> <td    bgcolor="#9f9f9f"><font color="#fff">' . $row['bMon'] . '</font></td> <td    bgcolor="#9f9f9f"><font color="#fff">' . $row['bTue'] . '</font></td> <td    bgcolor="#9f9f9f"><font color="#fff">' . $row['bWed'] . '</font></td> <td    bgcolor="#9f9f9f"><font color="#fff">' . $row['bThu'] . '</font></td> <td    bgcolor="#9f9f9f"><font color="#fff">' . $row['bFri'] . '</font></td></tr>';
    }
    echo '</table>'; 

    mysqli_free_result ($results);  
} else {
    echo '<p class="error">There are no patient's.</p>';
}

我是否需要在此下创建另一个if语句? &#34;如果单元格null将医生姓名更改为绿色,否则更改医生姓名红色&#34;。 我试过在网上搜索,但找不到任何东西。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

您可以这样做:

$results = @mysqli_query ($conn, $query);
//$numrows = mysqli_num_rows($results);

if ($results) {
    ?>
    <table>
        <tr> 
            <td bgcolor="#DC0E03"><font color="#fff"><strong>The Time</stong></font></td> 
            <td bgcolor="#DC0E03"><font color="#fff"><strong>Doctor Name</stong></font></td> 
            <td bgcolor="#DC0E03"><font color="#fff"><strong>Monday</stong></font></td> 
            <td bgcolor="#DC0E03"><font color="#fff"><strong>Tuesday</stong></font></td> 
            <td bgcolor="#DC0E03"><font color="#fff"><strong>Wednesday</stong></font></td> 
            <td bgcolor="#DC0E03"><font color="#fff"><strong>Thursday</stong></font></td> 
            <td bgcolor="#DC0E03"><font color="#fff"><strong>Friday</stong></font></td> 
        </tr>
    <?php
        while ($row = mysqli_fetch_array($results, MYSQLI_ASSOC)){
            ?>
            <tr>
                <td bgcolor="#DC0E03"><font color="#fff"><?php echo $row['theTime']; ?></font></td> 
                <td bgcolor="#bababa"><?php $row['doctorName']; ?></td> 
                <td bgcolor="<?php if(empty($row['bMon'])){ echo '#00ff00'; }else{ echo '#ff0000'; } ?>"><font color="#fff"><?php echo $row['bMon']; ?></font></td> 
                <td bgcolor="<?php if(empty($row['bTue'])){ echo '#00ff00'; }else{ echo '#ff0000'; } ?>"><font color="#fff"><?php echo $row['bTue']; ?></font></td> 
                <td bgcolor="<?php if(empty($row['bWed'])){ echo '#00ff00'; }else{ echo '#ff0000'; } ?>"><font color="#fff"><?php echo $row['bWed']; ?></font></td> 
                <td bgcolor="<?php if(empty($row['bThu'])){ echo '#00ff00'; }else{ echo '#ff0000'; } ?>"><font color="#fff"><?php echo $row['bThu']; ?></font></td> 
                <td bgcolor="<?php if(empty($row['bFri'])){ echo '#00ff00'; }else{ echo '#ff0000'; } ?>"><font color="#fff"><?php echo $row['bFri']; ?></font></td>
            </tr>
            <?php
        }
    ?>
    </table>
    <?php
    mysqli_free_result ($results);  
} else {
    echo '<p class="error">There are no patient's.</p>';
}

答案 1 :(得分:0)

由于只有两种颜色,我会使用ternary operator(类似的东西):

<?php while ($row = mysqli_fetch_array($results, MYSQLI_ASSOC)) : ?>
    <tr>
        <td bgcolor="#DC0E03"><font color="#fff"><?= $row['theTime'] ?></font></td>
        <td bgcolor="#<?= ($apointment ? '#66cc00' : 'cc0000') ?>"><?= $row['doctorName'] ?></td>
        <td bgcolor="#9f9f9f"><font color="#fff"><?= $row['bMon'] ?></font></td>
        <td bgcolor="#9f9f9f"><font color="#fff"><?= $row['bTue'] ?></font></td>
        <td bgcolor="#9f9f9f"><font color="#fff"><?= $row['bWed'] ?></font></td>
        <td bgcolor="#9f9f9f"><font color="#fff"><?= $row['bThu'] ?></font></td>
        <td bgcolor="#9f9f9f"><font color="#fff"><?= $row['bFri'] ?></font></td>
    </tr>
<?php endwhile; ?>

答案 2 :(得分:0)

这是一个简单的答案,用于检查他们是否在一周内预约或没有预约。 if(empty($row['bMon']) && empty($row['bTue']) && empty($row['bWed']) && empty($row['bThu']) && empty($row['bFri'])) {   echo '<td bgcolor="green">' . $row['doctorName'] . '</td>'; } else {   echo '<td bgcolor="red">' . $row['doctorName'] . '</td>'; } 希望它有所帮助。