如何根据PHP条件显示隐藏HTML表行


how to show hide html table row based on php condition

我想使用 php 根据 mysql 获取列的状态值显示/隐藏表行。

工作代码:此部分工作正常

while($row = mysql_fetch_array($sql))  
{
$name[] = $row['name'];
$title[] = $row['title'];
$prize[] = $row['prize'];
$status[] = $row['status'];  // this  will save values as enabled or disabled
$points[] = $row['points'];
}

<?php 
      while($row = mysql_fetch_array($sql))  
{
     echo "<tr> ";
     echo "<td>" .$row[name] . "</td>";
    echo "<td>" .$row[points] . "</td>";
        }
     echo "</tr> " ;
?>

问题:我需要解决方案。

我无法显示上面给出的表格,因为还有一些值,这些值将从其他表中获取,以显示在表格行中。我像这样显示表格。

<tr ><td><?php echo "$title[0]";?></td><td>complete <?php echo "$task[0]";?> </td><td></td></tr>
<tr ><td><?php echo "$title[1]";?></td><td>complete <?php echo "$task[1]";?> </td><td></td></tr>

问题:

请指导我如何隐藏或显示问题中定义的行 部分,使用

$status[] = $row['状态'];

,将被启用或禁用

像这样

 while($row = mysql_fetch_array($sql))  
{
   if($row['status']=="enabled")
  {
   echo "<tr> ";
   echo "<td>" .$row[name] . "</td>";
   echo "<td>" .$row[points] . "</td>";
   echo "</tr> " ;
  }
}

对于其他行,您可以这样做

<?php if($status[0] == "enabled") { ?>
    <tr ><td><?php echo "$title[0]";?></td><td>complete <?php echo "$task[0]";?> </td><td></td></tr>
<?php } ?>

编辑

for 循环,如果所有数组的大小相同,您可以尝试这样的事情

<?php for($i=0;$i<sizeof($title);$i++) {
if($status[$i]=="enabled"){
?>
<tr ><td><?php echo $title[$i];?></td><td>complete <?php echo $task[$i];?> </td><td></td></tr>
<?php  }
} ?>
这对

你有用,这只是一个例子,我认为你也需要使用<table>

<?php 
echo "<table border='1'>";
while($row = mysql_fetch_array($sql))  
{
  if($row['status'] == 1){
    echo "<tr>";
      echo "<td>" .$row['name'] . "</td>";
      echo "<td>" .$row['points'] . "</td>";
    echo "</tr>";
  }  
}
echo "</table>";
?>

旁注:

停止使用mysql_*扩展已弃用并在 PHP 7 中关闭,使用 mysqli_*PDO

<?php 
while($row = mysql_fetch_array($sql))  
{
    if($row['status']=='enabled') {
        echo "<tr> ";
        echo "<td>" .$row[name] . "</td>";
        echo "<td>" .$row[points] . "</td>";    
        echo "</tr> " ;
    }
}
?>

如果$row['status']=='enabled'为假,它将进入下一个循环。

你可以使用这样的东西:

<?php while($row = mysql_fetch_array($sql)): ?>
    <?php if($row['status'] == 'enabled'):?>
        <tr>
            <td><?php echo $row['name']; ?></td>
            <td><?php echo $row['points']; ?></td>
        </tr>
    <?php else: ?>
        <?php continue; ?>
    <?php endif; ?>
<?php endwhile; ?>

或:

<?php
    while($row = mysql_fetch_array($sql)){
        if($row['status'] == 'enabled'){
            echo '<tr><td>' . $row[name] . '</td><td>' . $row[points] . '</td></tr>';
        }
    }
?>