Поиск через выпадающие меню

Тема в разделе "PHP программирование", создана пользователем edren_baton, 4 мар 2007.

Статус темы:
Закрыта.
  1. edren_baton

    edren_baton Гость

    Ситуация: есть список выставок с доп параметрами: дата, страна, город.Нужно: 3 выпадающих меню (дата, страна, город). После выбора в каждом меню (напр октябрь, Англия, Лондон) и тыканья на поиск выводились выставки, отвечающие этим параметрам. Пример: http://expoclub.ru/ вот вверху слева.
     
  2. Artexoid

    Artexoid Гость

    Там помоиму просто всё сделано...

    Код (Text):
    <form action="result.php" methot="POST">
    <select name="data">
    <option value="1">Дата 1</option>
    <option value="2">Дата 2</option>
    <option value="3">Дата ...</option>
    </select>
    <select name="strana">
    <option value="1">Страна 1</option>
    <option value="2">Страна 2</option>
    <option value="3">Страна ...</option>
    </select>
    <select name="gorod">
    <option value="1">Город 1</option>
    <option value="2">Город 2</option>
    <option value="3">Город ...</option>
    </select>
    <input type="submit" value="Найти" />
    </form>
    А в result.php на основе присланных данных делаешь выборку из базы.. Вот и всё
     
  3. edren_baton

    edren_baton Гость

    А можно мне это немного поподробнее разжевать? Ибо я пхп знаю на уровне установки модов (copy-past)
    Юзаю движок DLE, вот к нему мод ищу с подобной функцией.
     
  4. Artexoid

    Artexoid Гость

    <!--QuoteBegin-edren_baton @ 04.03.07 21:19+-->
    <span class="vbquote">(edren_baton @ 04.03.07 21:19)</span><!--QuoteEBegin-->А можно мне это немного поподробнее разжевать? Ибо я пхп знаю на уровне установки модов (copy-past)
    Юзаю движок DLE, вот к нему мод ищу с подобной функцией.[/quote]

    Вот более полный пример, так понятней? (Это всё в файл *.php) :
    Код (Text):
    <form action="<?=$_SERVER['PHP_SELF']?>" methot="POST"> <? /*Акшин на самого себя*/ ?>
    <select name="data">
    <option value="1"<? if(@$_POST['data']==1){?> selected="selected"<? }?>>Дата 1</option>
    <option value="2"<? if(@$_POST['data']==2){?> selected="selected"<? }?>>Дата 2</option>
    <option value="3"<? if(@$_POST['data']==3){?> selected="selected"<? }?>>Дата ...</option>
    </select><br />
    <select name="strana">
    <option value="1"<? if(@$_POST['strana']==1){?> selected="selected"<? }?>>Страна 1</option>
    <option value="2"<? if(@$_POST['strana']==2){?> selected="selected"<? }?>>Страна 2</option>
    <option value="3"<? if(@$_POST['strana']==3){?> selected="selected"<? }?>>Страна ...</option>
    </select><br />
    <select name="gorod">
    <option value="1"<? if(@$_POST['gorod']==1){?> selected="selected"<? }?>>Город 1</option>
    <option value="2"<? if(@$_POST['gorod']==2){?> selected="selected"<? }?>>Город 2</option>
    <option value="3"<? if(@$_POST['gorod']==3){?> selected="selected"<? }?>>Город ...</option>
    </select><br />
    <input name="serch" type="submit" value="Найти" />
    </form><br />
    <?
    if (isset($_POST['serch']))
    {
    $query = "SELECT * FROM `DATATABLE` WHERE (`DATA`='".$_POST['data']."' AND `STRANA`='".$_POST['strana']."' AND `GOROD`='".$_POST['gorod']."')";
    $result = mysql_query($query, $connection) or die (mysql_error());
    if (mysql_num_rows($result)>0)
    {
    ?>
    <hr />
    Найдено <?=mysql_num_rows($result)?> совпадений:
    <table border="0" cellpadding="0" cellspacing="0">
    <?
    while ($result_array=mysql_fetch_object($result))
    {
    ?>
    <tr>
    <td><?=$result_array->pole1?></td>
    <td><?=$result_array->pole2?></td>
    <td><?=$result_array->pole3?></td>
    </tr>
    <?
    }
    ?>
    </table>
    <hr />
    <?
    }
    else
    {
    ?>
    <hr />
    По вашему запросу ничего не найдено:
    <?
    }
    }
    ?>
    Значит есть форма которая ссылается на этот же файл. Под формой стоит обработчик, задействуется если была нажата кнопка "Найти" на форме.
    Если по запросу ничего не найдено так и пишет, если найдено, пишет сколько совпадений и ниже выводит все эти совпадения.

    `DATATABLE` = Имя вашей таблицы в которой вы ищите
    `DATA`__= }
    `STRANA`= } Поля таблицы `DATATABLE` соответственно
    `GOROD` = }

    Если нужно использовать метод GET тогда в форме " methot="GET" " и все $_POST["..."] на $_GET["..."] заменить.
     
  5. GOsha

    GOsha Гость

    НАРОД!
    НИКОГДА НЕ ПОЛЬЗУЙТЕСЬ УКОРОЧЕННЫМ ОТКРЫВАЮЩИМ ТЕГОМ "<?" и "<?=" он работает не на всех серверах!
    Вместо этого используйте "<?php".
    Для: Artexoid
    А на самом деле код полностью удовлетворяет вопросу именно так бы и сам делал.
     
  6. Artexoid

    Artexoid Гость

    Для: GOsha

    <!--QuoteBegin-GOsha @ 05.03.07 14:56+-->
    <span class="vbquote">(GOsha @ 05.03.07 14:56)</span><!--QuoteEBegin-->А на самом деле код полностью удовлетворяет вопросу именно так бы и сам делал.[/quote]
    Ну что спросили то и ответил B).
    Общую концепцию я изложил, но если edren_baton и это не поймёт, то ему не на форум тогда :).

    Кстати всегда использую "<? ?>", "<?= ?>", хостился на 3-х разных хостингах и конфликта не было никакого. Особенно "<?= ?>" очень удобно по моему для вывода переменных..
     
  7. edren_baton

    edren_baton Гость

    Спасиб большое, принцип запроса мне понятен был и без пхп, вот тока с ним проблемы =)
    Пошурую код =) Еще раз спасибо.
     
  8. Artexoid

    Artexoid Гость

    Для: edren_baton

    B) Незачто. Удачно пошарудить!!! :)
     
  9. GOsha

    GOsha Гость

    [quot]
    Кстати всегда использую "<? ?>", "<?= ?>", хостился на 3-х разных хостингах и конфликта не было никакого. Особенно "<?= ?>" очень удобно по моему для вывода переменных..
    [/quot]
    Ага, я тоже использовал, пока не нарвался на клиентов, у которых хост был с настройками php.ini:
    Код (Text):
    short_open_tag = Off
    Пришлось полностью лопатить код и заменять
    "<?" на "<?php" и "<?=" на "<?php echo"
    Вот такие вот пирожки.
     
  10. Artexoid

    Artexoid Гость

    Для: GOsha

    Моё мнение такое:

    Кривой Хостинг B). Обычно эта опция включена.
    Думаю можно учесть что данная опция будет отключена при создании готового решения на продажу. Мало ли. Кто-то постарается и найдёт такой Хостинг и продукт не будет работать.

    Я обычно никогда ничего вручную не лопачу в подобных случаях :). Это ведь нудно очень. Я советую делать следующее: Открываешь например C++ Builder. Пишешь маленькую прогу (а для этого случая прога очень маленькая была бы) которая просто по указанному каталогу пробежалась бы (с учётом подкаталогов) открывая все файлы *.php и переправляя '<?' на '<?php', '<?=' на '<?php echo'. Может быть было бы даже быстрей простой заменой обойтись в PHP редакторе или там в блокноте (кто на чём пишет), но всё равно рутина :), я вот терпеть не могу такое!!

    А вообще я когда пишу какую-нибудь прогу, я если нужно напишу еще одну или 2 в помощь для написания этой!! Если есть какие-нибудь однообразные действия, например что-то большое разобрать нужно, или 100 строк и в каждой одно или более значений меняется, или что-то во что-то конвертировать, миллион подобных случаев бывает :)
     
  11. GOsha

    GOsha Гость

    Для: Artexoid
    Ясно, что не вручную. А прогу, которая валит по файлам и все меняет.
    А я и говорю, что все решения на продажу, поэтому пользуюсь "<?php".
    И с клиентами лучше не спорить, а то начнут сомневаться в профессионализме.
     
  12. Artexoid

    Artexoid Гость

    Для: GOsha

    Да и такое бывает B). Точно, точно..
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей