Передача параметра $_GET

Тема в разделе "PHP", создана пользователем Stripe, 20 май 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Stripe

    Stripe

    Регистр.:
    21 окт 2007
    Сообщения:
    164
    Симпатии:
    9
    Есть следующий код:
    PHP:
    <?
    if (isset(
    $_GET['idpress'])) {
    $idpress $_GET["idpress"];
    $pressquery mysql_query("SELECT * FROM `press` WHERE idpress = '".$idpress."'");
    $press mysql_fetch_array($pressquery);

        
    $idpress $press["idpress"];
        
    $titlepress $press["titlepress"];
        
    $keywordspress $press["keywordspress"];
        
    $descriptionpress $press["descriptionpress"];
        
    $lidpress $press["lidpress"];
        
    $contentpress $press["contentpress"];
        
    $urlpress $press["url"];
        echo 
    '<h3>'.$titlepress.'</h3><p>'.$lidpress.'</p><p>'.$contentpress.'<p>';
    }

    else {
    $pressquery mysql_query("SELECT * FROM `press`");
    while(    
    $press mysql_fetch_array($pressquery)    )
        {
        
    $idpress $press["idpress"];
        
    $titlepress $press["titlepress"];
        
    $lidpress $press["lidpress"];
        
    $urlpress $press["url"];
        echo 
    '<a href="'.$domain.'/press.php?idpress=1"><h3>'.$titlepress.'</h3></a><p>'.$lidpress.'</p>';
        }
    }
    ?>
    Параметр idpress формируется из части ELSE, если он передан то должна отработать часть IF. Если передавать не idpress, а id то все работает на ура. Как заставить работать скрипт с параметром idpress?
     
  2. rex1963

    rex1963

    Регистр.:
    19 фев 2007
    Сообщения:
    228
    Симпатии:
    47
    что-то не понял смысла этой строки? Параметр idpress передается одинаковый для всех значений?
    Тогда смысл вообще цикла?

    И в первой части, если уж выводить таким образом, то сразу в запросе ограничивать вывод одной строкой
    PHP:
    $pressquery mysql_query("SELECT * FROM `press` WHERE idpress = '".$idpress."' LIMIT 1"); 
    На счет работы с параметром id, то чудес не бывает:)) срабатывает else.
    Сделай проще
    PHP:
    echo $_GET['idpress'];
    и посмотри, что заходит в скрипт.
     
  3. rsang

    rsang Прохожие

    На какой-то версии PHP замечал глюк с isset. Попробуй вместо
    PHP:
    if (isset($_GET['idpress'])) {
    вставить безотказный вариант
    PHP:
    if (strlen($_GET['idpress'])>0) {
    либо, аналог isset'a
    PHP:
    if (!empty($_GET['idpress'])) {
     
  4. mironovad

    mironovad Писатель

    Регистр.:
    13 ноя 2009
    Сообщения:
    6
    Симпатии:
    1
    isset($_GET['idpress']) не совсем корректно возможен(и довольно часто) вариант когда переменная в запросе будет выведена а значение не присвоено
    оптимально if (!empty($_GET['idpress'])) {
     
  5. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    а не проще сделать один раз
    PHP:
    extract ($_GET);
    чем для каждой переменной делать
    PHP:
    $idpress $_GET["idpress"]; 
     
  6. smsina

    smsina Создатель

    Регистр.:
    20 ноя 2009
    Сообщения:
    46
    Симпатии:
    3
    Да. Один раз.
    PHP:
    print_r($_GET);
    или
    PHP:
    vardump($_GET);
     
Статус темы:
Закрыта.