2010-09-15 2 views
4

Я делаю сайт фотографии. В БД есть таблица изображений, таблица событий и таблица категорий, которые связаны через внешние ключи. В настоящий момент я генерирую события, когда фотография была взята из базы данных и превращена в якорные ссылки.

<?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 
} 
} 
?> 

При щелчке на ссылке скрипт получает переменную из Входят в URL: /images.php?**event**=eventCalledParty

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

Мой вопрос - если я должен был реализовать категории и есть URL, который выглядит как:

/images.php? событие = eventCalledParty & категория = categoryCalledFashionPhotography

Как бы я отделить эти две переменные из URL, чтобы использовать в своих запросах.

Thank you.

+0

Обратите внимание, что ваш текущий код не имеет смысла. Не нужно использовать foreach –

+0

Я должен был подумать, что я уже знал, что почта работает так:/thank – slexAtrukov

ответ

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

Они будут автоматически отображаться в этих переменных ...

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

PHP делает всю эту работу за вас.

+1

Я также должен отметить, что вы не должны избегать ваших данных, пока не поработаете, чтобы использовать их в своем запросе. В противном случае вам не пригодится ни для чего другого. – Brad

+0

хорошо пункт. стоит добавить его к ответу, а в комментарии –

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

+0

@Brad, безусловно, так. В основном я пытался сосредоточить внимание slexAtrukov на том, как $ _GET используется шаг за шагом. Хороший совет. – Fanis

1

Im немного ржавый на PHP, но Я думаю, что в вашем foreach вы хотите получить название поля, а также его ценность.

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

что здесь используется в цикле? –

+0

Это должно быть foreach ($ _ GET as $ name => $ value). – James

1

Еогеасп ($ _ GET, как $ ключ => $ значение) {$ событие [$ ключ] = mysql_real_escape_string ($ значение); }

+0

register globals сделает смешной беспорядок из этого кода :) Лучше добавить '$ event = array();' выше –

Смежные вопросы