快速问题除了过滤器方面,我还有一个功能齐全的数据库网站。我有一个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);
答案 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);