2010-09-15 145 views
4

我正在拍攝一個攝影網站。在DB中有一個圖像表,事件表和類別表,通過外鍵鏈接。目前,我從數據庫中拍攝照片時生成事件,並將它們變成錨鏈接。

<?php 
while ($a_row = mysql_fetch_row($result)){ 

foreach ($a_row as $field){ 

?> 
<a href="images.php?event=<?php echo $field;?> "> <php? echo $field; ?> </a> 
<?php 
} 
} 
?> 

當鏈接被點擊一個腳本獲取變量從得到的網址:/images.php?**event**=eventCalledParty

foreach($_GET as $value) 
{ 
$event = $value; 
} 
$event = mysql_real_escape_string($event); 

我的問題是 - 如果我是實施類別,並有一個網址,看起來像:

/images.php? 事件 = eventCalledParty & 類別 = categoryCalledFashionPhotography

我怎麼會單獨對這兩個變量從URL在我的查詢使用。

謝謝。

+0

請注意,您目前的代碼沒有意義。不需要使用任何foreach – 2010-09-15 13:40:59

+0

我應該算出來的,我已經知道post是這樣工作的:/ thank you – slexAtrukov 2010-09-15 13:53:19

回答

5
$event = mysql_real_escape_string($_GET['event']); 
$category = mysql_real_escape_string($_GET['category']); 
6

在這些變量中,這些都會自動顯示...

$_GET['event'] 
$_GET['category'] 

PHP做所有這些工作給你。

+1

我還應該注意,除非您在查詢中使用它,否則不應該轉義數據。否則,對其他任何東西都沒有多大用處。 – Brad 2010-09-15 13:32:16

+0

好點。它值得添加到答案,而不是評論 – 2010-09-15 13:36:04

1

每個url參數在$_GET中成爲一個單獨的密鑰。

所以,/images.php?event=eventCalledParty &類別= categoryCalledFashionPhotography您將獲得:

$_GET['event'] => 'eventCalledParty' 
$_GET['category'] => 'categoryCalledFashionPhotography' 

並可以採取相應的行動:

if ($_GET['category'] == 'categoryCalledFashionPhotography') { 
    //do stuff here 
} 
+0

你需要檢查是否首先設置$ _GET ['something']!使用empty()或isset()。 – Brad 2010-09-15 18:25:56

+0

@Brad肯定如此。我主要是試圖將slexAtrukov的注意力集中在如何逐步使用$ _GET。好的建議,但。 – Fanis 2010-09-15 18:55:21

1

我是個位上的PHP生疏,但我認爲,在你的習慣中,你想要得到的是這個領域的名字以及它的價值。

foreach($_GET as $name->$value) 
{ 
    if($name == 'event') { 
    $event = mysql_real_escape_string($value); 
    } 
    else if($name == 'category') 
    { 
    $category = mysql_real_escape_string($category); 
    } 
} 
+0

這裏有什麼循環的用法? – 2010-09-15 13:36:47

+0

這應該是foreach($ _ GET作爲$ name => $ value)。 – James 2010-09-15 13:43:10

1

的foreach($ _ GET爲$密鑰=> $值) { $事件[$鍵] = mysql_real_escape_string($值); }

+0

註冊全局變量將使這個代碼搞笑搞笑:)更好地添加'$ event = array();'上面 – 2010-09-15 13:37:42