使用php if语句过滤

时间:2012-02-02 22:45:44

标签: php mysql if-statement while-loop

快速问题除了过滤器方面,我还有一个功能齐全的数据库网站。我有一个javascript过滤器,但它不能正确使用数据库,因为它通过li类过滤并使其成为li class ='。名称 。 “没用。

无论如何,我试图使用这种方法解决过滤问题。

但是我不知道在哪里运行不会产生错误的查询,因此它被注释掉了。任何人都可以帮助甚至建议一个更好的方法来解决这个问题吗?

$result = mysql_query("SELECT * FROM ddcompanies");

/*
while($row = mysql_fetch_array($result)) {
    $cname = $row["company"]; //runs through the company column and populates the array varcompany with those names
    $csect = $row["sector"]; //runs through the website column and populates the array varwebsite with those names
    $cslog = $row["slogan"]; //runs through the story column and populates the array varstory with the text
*/

echo "<ul id='portfolio'>";

if($_GET['link']=='design'){

    echo "design";// TEST
    $result .= "AND sector = 'design'";

echo "<li>
    <a href='single.php?link=" . $cname . "'><img src='images/companies/" . $cname . ".png' alt='' height='115' width='200' />$cname</a>
    <div id='sector'>$csect</div>
    <div id='details'>$cslog</div>
</li>";

}else{
    echo "no way";// TEST
};

希望你能帮助甚至告诉我更好的方法。

提前致谢!

*的 修改 **

在我的索引页面上,我有一个网格或链接库(其中包含一个图像和一些从数据库中提取的信息)。

每个数据库条目都有一个名为sector的字段。

我希望能够只显示(过滤)属于例如数字(部门名称)或非数字(部门名称)。

因此,过滤器将使用每个数据库条目中的扇区字段值。

目前,我在索引页面上进行过滤的链接如下所示:设计或开发

我希望这很清楚。

*编辑* *

//QUERY IN EACH

$query = "SELECT * FROM ddcompanies ";
if($_GET['link']=='design') {
    $query .= "WHERE sector = 'design'";
$result = mysql_query($query);
}elseif($_GET['link']=='development') {  
    $query .= "WHERE sector = 'development'";
$result = mysql_query($query);
};

//OR

$query = "SELECT * FROM ddcompanies ";
if($_GET['link']=='design') {
    $query .= "WHERE sector = 'design'";
}elseif($_GET['link']=='development') {  
    $query .= "WHERE sector = 'development'";
};
$result = mysql_query($query);

1 个答案:

答案 0 :(得分:2)

在您上面发布的案例中,您似乎尝试根据URL参数(链接)附加到查询字符串。你这样做的方式不会起作用,因为$ result是一个资源,而不是一个字符串,所以你不能只是将另一个字符串附加到资源。

您必须为查询创建一个字符串变量,然后将其插入到mysql_query()函数中。

您还必须将逻辑移到检查如何修改查询的字符串声明之上。

最后,你需要一个WHERE子句,只需使用 AND sector ='design'就会破坏现在的查询。

编辑(添加了一些伪代码):

$query = "SELECT * FROM ddcompanies ";
if(isset($_GET['link']))    
        $query .= "WHERE sector = '".mysql_real_escape_string($_GET['link'])."'";
    $result = mysql_query($query);