2012-02-02 26 views
-1

快速問題除了過濾器方面,我有一個功能齊全的數據庫網站。我有一個JavaScript過濾器,但它不能正常工作,因爲它通過li類過濾並使其成爲li class ='。名稱 。 ' 不工作。使用php過濾if語句

無論如何,我試圖用這種方法來解決過濾器問題。

但是,我不知道在哪裏運行的查詢不會創建一個錯誤,因此爲什麼它被註釋掉。任何人都可以提供幫助,甚至可以提出一個更好的解決方法嗎?

$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 
}; 

希望你能幫助,甚至告訴我一個更好的方式來做它請。

在此先感謝!

* 編輯 **

在我的索引頁,我有一個網格或鏈接(其中有一個形象和一些信息都是從數據庫中抽取)畫廊。

每個數據庫條目都有一個稱爲扇區的字段。

我希望能夠僅顯示(過濾)屬於例如數字(扇區名稱)或非數字(扇區名稱)。

因此,過濾器將使用每個數據庫條目中的扇區字段值。

此刻,我在過濾索引頁上的鏈接如下所示。設計或開發

我希望這已經夠清楚了。

*編輯* *

//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

你到底想幹什麼?你的問題不清楚。 – 2012-02-02 22:49:04

+0

我很困惑,你想做什麼? – 2012-02-02 22:49:40

+0

你正在嘗試做什麼? – Joe 2012-02-02 22:51:43

回答

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); 
+0

非常感謝,這是一個偉大的幫助隊友,正是我之後的事情。如果我要添加更多我會每次運行查詢還是隻運行一次?編輯我的原創上面。 ^^^ – Nils 2012-02-02 23:04:47

+1

取決於一些事情。也就是說,如果從數據庫中搜索的領域相同或不同。您只需要相應地構建您的查詢。如果它是相同的字段,則可以使用IN(),或者可以使用OR並分別添加每個值。如果它是不同的字段,則需要使用AND並附加字段名稱/值組合。重要的是,在將其抽入mysql_query()函數之前,首先構建查詢。 – 2012-02-02 23:09:35

+1

好的,我看到你的編輯...我會編輯我的回覆 – 2012-02-02 23:13:16