php在循环中添加html元素

时间:2017-04-01 18:54:28

标签: php html mysql

你好,这是我的代码:

<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 =&#34;用户&#34;将包含来自数据库的所有用户,其中user_level = 1,另一个div id =&#34; admins&#34; for user_level = 2。

2 个答案:

答案 0 :(得分:0)

尝试以下代码,您需要根据条件创建div,例如,如果迭代编号1然后在内容之前和内容之后插入div(打开)以及在内容之后插入...(如果迭代编号为3)然后在内容之后再插入div(打开)内容(关闭)

   <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>';
    ?>

答案 1 :(得分:0)

尝试使用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。

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