首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >判断sql语句返回true还是false的正确方法是什么?

判断sql语句返回true还是false的正确方法是什么?
EN

Stack Overflow用户
提问于 2013-12-26 09:24:02
回答 1查看 67关注 0票数 0

因此,我要做的是通过权限DB过滤文件夹中的应用程序,以决定当前用户是否能够访问该应用程序。在这个文件的开头,我打印会话id以确保它的设置并返回我的id。但是,当我到达if语句时,它会返回一个值是否天气,我的sql语句为true或false。判断sql语句是否返回true或false的正确方法是什么?

代码语言:javascript
复制
<?php

Print_r($_SESSION[user_id]);
$matches = glob("Apps/*.php");
if (is_array($matches)) {
    foreach ($matches as $filename) {
        $filenamesans = basename($filename, ".php"); // $file is set to "index" 
        include"db.inc.php"; //database connection
        $item = "SELECT * FROM Apps WHERE UserID='$_SESSION[user_id]' AND App ='$filenamesans'";
        $result = mysql_query($item);
        if ($result == TRUE) {
            echo "<a class='nav2' href='Apps/$filenamesans/index.php'>$filenamesans</a></br>";
        }
    }
}
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-26 09:37:06

应该注意的是,您正在为循环的每一次迭代建立到数据库的连接,而且在循环中使用查询通常是个坏主意,因为它几乎肯定可以得到改进。

试试这个:

代码语言:javascript
复制
include("db.inc.php");
$items = mysql_query("SELECT `App` FROM `Apps` WHERE
       `UserID`='".mysql_real_escape_string($_SESSION['user_id'])."'");
$itemarr = array();
while($item = mysql_fetch_assoc($items)) $itemarr[$item['App']] = true;

$files = glob("Apps/*.php");
foreach($files as $file) {
    $basefile = basename($filename,".php");
    if( isset($itemarr[$basefile])) {
        echo "<a class='nav2' .......>...</a>";
    }
}

这使用一个查询来获取用户的应用程序,然后在数组中查找它们--这是一个非常快的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20782278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档