2017-04-01 164 views
0

你好,这里是我的代码:PHP添加HTML元素的内部,而循环

<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>[email protected]</td> 
<td>1</td> 
</tr> 
<tr> 
<td>2</td> 
<td>[email protected]</td> 
<td>2</td> 
</tr> 
<tr> 
<td>3</td> 
<td>[email protected]</td> 
<td>2</td> 
</tr> 
<tr> 
<td>4</td> 
<td>[email protected]</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>[email protected]</td> 
<td>1</td> 
</tr> 
<tr> 
<td>4</td> 
<td>[email protected]</td> 
<td>1</td> 
</tr> 
</div> 
<div id="admins"> 
<tr> 
<td>2</td> 
<td>[email protected]</td> 
<td>2</td> 
</tr> 
<tr> 
<td>3</td> 
<td>[email protected]</td> 
<td>2</td> 
</tr> 
</div> 
</table> 

我想添加一个DIV ID = “用户”,将包含user_level = 1和另一个div id =“admins”的user_level = 2的所有用户。

+0

先按'user_level'命令,然后所有的管理员将在后面的结果。当您遇到第一个管理员时,您可以仅回显'

'。 – chris85

+0

请快速浏览[为什么你应该立即停止使用mysql_ *](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) – hassan

+0

使用DIV标签因为表标记的直接子元素不是有效的HTML语法。 – manian

回答

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

答案应该有解释。这将使多个div。 – chris85

+0

是它制作了多个div –

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。

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

+0

在他的评论中,由@ chris85解释的方法完全相同,但是与tbody – manian

+0

相同,问题仍然存在:/这将使每行的tbody为:/ –

+0

您是否检查了我在哪里做了小改动? – manian