【问题标题】:Get columns data maually手动获取列数据
【发布时间】:2015-08-19 08:01:24
【问题描述】:

我正在做一个项目,其中有一个包含 4 列的表格。我想获取每一列的最后一个非空数据,比如它将显示

  • column1 + 最后一个非空数据
  • column2 + 最后一个非空数据
  • column3 + 最后一个非空数据
  • column4 + 最后一个非空数据

那么你能解释一下应用了哪些代码来做到这一点

【问题讨论】:

  • 有什么你自己试过的吗?
  • 'not null' 检查行数据,但我会检查整行
  • 可能是 switch case 的工作,现在我正在尝试是否使用 switch case 但更好地获得每个案例的正确查询
  • 我静态地得到它,但有什么办法可以动态地只使用一个数组而不是 $a, $b, $c
  • while ($row = mysqli_fetch_array($result)) { if($row['name']!='' && $row['password']=='' && $row['用户名']=='' ) { $a['name']=$row['name']; $a['username']=$row['username']; $a['密码']=$row['密码']; } if($row['name']=='' && $row['username']!='' && $row['password']=='') { $b['name']=$row ['姓名']; $b['username']=$row['username']; $b['密码']=$row['密码']; } if($row['name']=='' && $row['username']=='' && $row['password']!='') { $c['name']=$row ['姓名']; $c['username']=$row['username']; $c['密码']=$row['密码']; } }

标签: php mysql database


【解决方案1】:

我静态地得到它,但有什么办法可以动态地只使用一个数组而不是 $a、$b、$c

        while ($row = mysqli_fetch_array($result)) 
    {  
    if($row['name']!='' && $row['password']=='' && $row['username']=='' )
    {
        $a['name']=$row['name'];
        $a['username']=$row['username'];
        $a['password']=$row['password'];
    }
    if($row['name']=='' && $row['username']!='' && $row['password']=='')
    {
        $b['name']=$row['name'];
        $b['username']=$row['username'];
        $b['password']=$row['password'];            
    }
    if($row['name']=='' && $row['username']=='' && $row['password']!='')
    {
        $c['name']=$row['name'];
        $c['username']=$row['username'];
        $c['password']=$row['password'];
    }
}

    echo "<tr>";
    echo '<td>'.$a['name'].'</td>';
    echo '<td>'.$a['username'].'</td>';
    echo '<td>'.$a['password'].'</td>';
    echo "</tr>";

    echo "<tr>";
    echo '<td>'.$b['name'].'</td>';
    echo '<td>'.$b['username'].'</td>';
    echo '<td>'.$b['password'].'</td>';
    echo "</tr>";

    echo "<tr>";
    echo '<td>'.$c['name'].'</td>';
    echo '<td>'.$c['username'].'</td>';
    echo '<td>'.$c['password'].'</td>';
    echo "</tr>";

【讨论】:

    【解决方案2】:

    使用以下代码。

    $result = array(); 
    $i = 0; 
    
     while ($row = mysqli_fetch_array($result)){  
        if($row['name']!='' || $row['password']!='' || $row['username']!='' ){
            $result[$i]['name']=$row['name'];
            $result[$i]['username']=$row['username'];
            $result[$i]['password']=$row['password'];
        }
        $i++;
     }
    

    【讨论】:

      【解决方案3】:

      先创建变量,然后将非空数据存入其中。

      $name = $pass = $username = '';
      while ($row = mysqli_fetch_array($result)) {
          $name = (!empty($row['name'])) ? $row['name'] : $name;
          $pass = (!empty($row['password'])) ? $row['password'] : $pass;
          $username = (!empty($row['name'])) ? $row['name'] : $username;
      }
      echo "<tr>";
      echo '<td>'.$name.'</td>';
      echo '<td>'.$username.'</td>';
      echo '<td>'.$pass.'</td>';
      echo "</tr>";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-23
        相关资源
        最近更新 更多