繁体   English   中英

PHP的while循环内添加HTML元素

[英]php add html element inside while loop

您好,这是我的代码:

<table class="table table-hover table-bordered">
<tr>
<th class="well" style="text-align:center">ID</th>
<th class="well" style="text-align:center">Email</th>
<th class="well" style="text-align:center">User level</th>
</tr>';

<?
$code_sql = "SELECT user_id, user_email,user_level FROM users ORDER BY user_id ASC ";   
$code_query = mysql_query($code_sql) or die(error_sql(mysql_error(),__LINE__,__FILE__));
$sql_rows = mysql_num_rows($code_query);
if($sql_rows > 0){  
while($rows = mysql_fetch_object($code_query)){
$user_id = intval($rows->user_id);
$user_level= intval($rows->user_level);
$user_email = htmlspecialchars($rows->user_email);
echo '      <tr>
<td>'.$user_id.'</td>
<td>'.$user_email.'</td>
<td>'.$user_level.'</td>
</tr>';
}
mysql_free_result($code_query);
}else{
echo '<tr>
<td>
<font color="red">no data found</font>
</td>
</tr>';
}
echo '</table>';
?>

代码的输出将是。

<table class="table table-hover table-bordered">
<tr>
<th class="well" style="text-align:center">ID</th>
<th class="well" style="text-align:center">Email</th>
<th class="well" style="text-align:center">User level</th>
</tr>
<tr>
<td>1</td>
<td>test1@gmail.com</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>test2@gmail.com</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>test3@gmail.com</td>
<td>2</td>
</tr>
<tr>
<td>4</td>
<td>test4@gmail.com</td>
<td>1</td>
</tr>
</table>

(1 =普通用户,2 =管理员级别的用户),但是我想要的是类似的东西

<table class="table table-hover table-bordered">
<tr>
<th class="well" style="text-align:center">ID</th>
<th class="well" style="text-align:center">Email</th>
<th class="well" style="text-align:center">User level</th>
</tr>
<div id="users">
<tr>
<td>1</td>
<td>test1@gmail.com</td>
<td>1</td>
</tr>
<tr>
<td>4</td>
<td>test4@gmail.com</td>
<td>1</td>
</tr>
</div>
<div id="admins">
<tr>
<td>2</td>
<td>test2@gmail.com</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>test3@gmail.com</td>
<td>2</td>
</tr>
</div>
</table>

我想添加一个div id =“ users”,它将包含数据库中所有具有user_level = 1的用户,以及另一个div id =“ admins”的user_level = 2。

尝试以下代码,您需要根据条件创建div,例如如果迭代次数1然后在content之前和内容(close)之后插入div(open)...如果迭代次数为3,则再次插入div(open )内容之前和之后的内容(关闭)

   <table class="table table-hover table-bordered">
    <tr>
    <th class="well" style="text-align:center">ID</th>
    <th class="well" style="text-align:center">Email</th>
    <th class="well" style="text-align:center">User level</th>
    </tr>

    <?php
    $code_sql = "SELECT user_id, user_email,user_level FROM users ORDER BY user_id ASC ";   
    $code_query = mysql_query($code_sql) or die(error_sql(mysql_error(),__LINE__,__FILE__));
    $sql_rows = mysql_num_rows($code_query);
    if($sql_rows > 0){
        $i=0;  
    while($rows = mysql_fetch_object($code_query)){
      $user_id = intval($rows->user_id);
      $user_level= intval($rows->user_level);
      $user_email = htmlspecialchars($rows->user_email);
      if($i==0){?><div id='users'><?php }elseif($i==2){?><div id='admins'><?php }
      echo '      <tr>
      <td>'.$user_id.'</td>
      <td>'.$user_email.'</td>
      <td>'.$user_level.'</td>
      </tr>';
      if($i==0){?></div><?php }elseif($i==2){?></div><?php }
       $i++;
      }
      mysql_free_result($code_query);
      }else{
    echo '<tr>
    <td>
    <font color="red">no data found</font>
    </td>
    </tr>';
    }
    echo '</table>';
    ?>

尝试使用下面的代码和tbody对表行进行分组,

<?php
$code_sql = "SELECT user_id, user_email,user_level FROM users ORDER BY user_level ASC, user_id ASC ";   
$code_query = mysql_query($code_sql) or die(error_sql(mysql_error(),__LINE__,__FILE__));
$sql_rows =        mysql_num_rows($code_query);
if($sql_rows > 0){  
  $newgroup = false;
  $groupid = array(1=>'users', 2=>'admins');
  while($rows = mysql_fetch_object($code_query)){
    $user_id = intval($rows->user_id);
    $user_level= intval($rows->user_level);
    $user_email = htmlspecialchars($rows->user_email);
    if($newgroup != $user_level) {
      if($newgroup != false) echo '</tbody>';
      echo '<tbody id="'.$groupid[$user_level].'">';
      $newgroup = $user_level;
    }
  echo '      <tr>
  <td>'.$user_id.'</td>
  <td>'.$user_email.'</td>
  <td>'.$user_level.'</td>
  </tr>';
}
echo '</tbody>';
mysql_free_result($code_query);
}else{
 echo '<tr>
  <td>
    <font color="red">no data found</font>
  </td>
</tr>';
}
echo '</table>';
?>

注意:如果您只想对表行进行分组,则可以使用。 但是,如果要添加动画等其他功能,则可能需要添加更多的CSS / jQuery。

其他建议:1.您应该开始使用mysqli或PDO。2.您应该开始使用css替换字体标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM