php循环反对mysql中的ids

时间:2012-12-18 23:11:48

标签: php mysql loops foreach

我的页面的某些部分只应显示符合此条件的ID:

<?php
    $admins = mysql_query("SELECT id FROM users WHERE is_admin='y'");
?>

所以它可以像1,4或1,4,7,3,10,无论如何,所以这些人(ID)可以看到smth专用,现在......

以前,我有点像:

<?php
    if ($_SESSION['id'] == $customer['id']) 
    { 
        echo "<br />";
                [...] Dedicated content [...]
        }
?>

直到今天仍然有效。现在我需要为($_SESSION['id'] == result SELECT的{​​{1}}以及更多与数据库相关的人创建。我怎样才能做到这一点?

感谢您的建议!

3 个答案:

答案 0 :(得分:0)

您可以将会话ID放入查询中,并使用mysql_num_rows()检查是否选择了任何行:

<?php
$admins = mysql_query("SELECT id FROM users WHERE id=".(int)$_SESSION['id']." AND is_admin='y'");
?>

答案 1 :(得分:0)

将所有这些人放入数据库并检查如下:

<?php
    $admins = mysql_query("SELECT * FROM users WHERE id='". mysql_real_escape_string($_SESSION['id']) ."' and  is_admin='y'");

?>

此时,如果至少有一行将返回(是的,它应该只返回一行),您可以继续使用专用内容。

答案 2 :(得分:0)

如果会话ID与数据库中的用户ID相同,则可以检查会话ID在数据库中的管理员身份。这将简化您的需求