Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2016, 17:58   #11
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Вероника99 Посмотреть сообщение
Тоже самое я хотела проделать с городом,занести таким же образом его в переменную и потом использовать в запросе. Разве не так нужно? В конечном запросе мне нужно вывести сформированный тур по заданным критериям.Или приведите,пожалуйста,пример кода,чтобы я наконец-то поняла,что Вы имеете в виду.
Ну и что вам мешает это сделать?
У вас города выбираются в списке с атрибутом name="region":
PHP код:
echo '<select size="1" name="region" >'
Значит, при обработке данных из формы выбранный вами город будет в переменной $_POST['region'].
Вы первый раз с формами работаете, что ли?!?
Andkorol вне форума Ответить с цитированием
Старый 28.04.2016, 18:11   #12
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Я так пробовала делать,и в первом файле и во втором
PHP код:
$id_r=($_POST['region']);
echo 
$id_r
и так пробовала
Код:
if(isset($_POST['submit'])){
    $region = $_GET['region'];
    echo "You have selected :" .$region;
}
переменная не выводится и все,остальные переменные,которые считываются с форм в первом файле,выводятся нормально. А именно город никак не получается занести в переменную
Вероника99 вне форума Ответить с цитированием
Старый 28.04.2016, 22:49   #13
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

index.php:
PHP код:
<?php
if(isset($_POST['submit'])){
    echo 
'<pre>';
    
var_dump($_POST);
    echo 
'</pre>';
}
else{
    
$countries = array(
        
=> '-- Select Country --',
        
=> 'USA',
        
=> 'England',
        
=> 'France',
    );
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<form method="post" action="">
<select name="country" id="country" onchange="getCities(this.options[selectedIndex].value)">
<?php
foreach ($countries as $country_id => $country) {
    echo 
'<option value="' $country_id '">' $country '</option>';
}
?>
</select>

<div id="city"></div>

<script type="text/javascript">
    function getCities(countryId){
        // option value = "0"
        if(countryId === 0){
            $('#city').html('');
            return;
        }
        // option value != "0"
        $.post(
            './city_select.php',
            { country_id : countryId },
            function(data){
                $('#city').html(data);
            },
            'html'
        );
    }
</script>
<input type="submit" name="submit" value="OK" />
</form>
<?php
}
?>
city_select.php:
PHP код:
<?php
$cities 
= array(
    
=> array('New York''Los Angeles''Chicago'),
    
=> array('London''Birmingham''Liverpool'),
    
=> array('Paris''Lyon''Marseille'),
);

if(!empty(
$_POST['country_id']) && in_array($_POST['country_id'], array_keys($cities))){
    
$output '<select name="city" id="city">';
    foreach (
$cities[$_POST['country_id']] as $key => $city) {
        
$output .= '<option value="' $key '">' $city '</option>';
    }
    
$output .= '</select>';
    echo 
$output;
}
?>
Всё работает и передаётся великолепно:
PHP код:
array(3) {
  [
"country"]=>
  
string(1"3"
  
["city"]=>
  
string(1"2"
  
["submit"]=>
  
string(2"OK"

Что вы там у себя в коде пишете – непонятно, но задача элементарная, и решается на раз.

Последний раз редактировалось Andkorol; 29.04.2016 в 08:04.
Andkorol вне форума Ответить с цитированием
Старый 02.05.2016, 16:43   #14
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Спасибо за помощь,как оказалось,дело было в sql -запросе,сама себя перехитрила,как говорится.

Последний раз редактировалось Вероника99; 02.05.2016 в 17:29.
Вероника99 вне форума Ответить с цитированием
Старый 02.05.2016, 20:27   #15
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

За решением одной проблемы следует другая проблема:подскажите пожалуйста,есть два запроса, один сопоставляет Страны и Города,и находит в таблице ключей (каждый ряд которой содержит ключи-ссылки на страну,города и описание тура,чем создает тур-наз. Тур-країна) id туров,содержащих выбранные Страны-Города. Второй запрос осуществляет подбор по заданным критериям в таблице Описание тура и как результат тоже находит id подходящего тура. После чего я создаю общий запрос,который по результатам двух предыдущих запросов выводит сложившийся тур. Проблема в том,что я не знаю,как хранить результаты работы первых двух запросов.
Запрос 1:
PHP код:
$res2 =mysql_query("SELECT * FROM  `Країна` INNER JOIN `Тур-країна` INNER JOIN `Місто` 
    ON (`Тур-країна`.`country_id`='
$selected_val' AND `Тур-країна`.`city`='$region')
     WHERE (`Тур-країна`.`country_id`=`Країна`.`Id` AND `Місто`.`Id`=`Тур-країна`.`city`)"
) or die(mysql_error());
while(
$row2 mysql_fetch_assoc($res2)){
    
$res_query1=$row2['Id_t'];//id найденного тура с подходящей страной и городом

Запрос 2:
PHP код:
$query_tour=mysql_query("SELECT * FROM `Тур` WHERE `Тур`.`Price`<='$price_p' AND `Тур`.`Duration`<='$duration_p
  "
)or die(mysql_error());
  while(
$row4 mysql_fetch_assoc($query_tour)) {
    
$res_query2=$row4['Id'];  //id найденного тура по остальным критериям

Я склоняюсь к мнению,что $res_query1 и $res_query2 должны быть массивами,которые будут хранить id, но как потом эти массивы использовать в конечном запросе подбора тура? В запросе можно как-то указать,что нужно перебирать элементы массива `Тур-країна`.`Id_t`='$res_query1[i++]'?
PHP код:
$query_general=mysql_query("SELECT * FROM `Тур-країна` WHERE `Тур-країна`.`Id_t`='$res_query1
    AND `Тур-країна`.`tour_id`='
$res_query2'")or die(mysql_error()); 
Если я думаю в неправильном направлении и можно каким-то другим способом объединить результаты,поделитесь пожалуйста. Спасибо
Вероника99 вне форума Ответить с цитированием
Старый 02.05.2016, 21:51   #16
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Разобралась)
Вероника99 вне форума Ответить с цитированием
Старый 03.05.2016, 00:03   #17
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Вероника99 Посмотреть сообщение
Запрос 1:
PHP код:
while($row2 mysql_fetch_assoc($res2)){
    
$res_query1=$row2['Id_t'];//id найденного тура с подходящей страной и городом

Запрос 2:
PHP код:
while($row4 mysql_fetch_assoc($query_tour)) {
    
$res_query2=$row4['Id'];  //id найденного тура по остальным критериям

PHP код:
$query_general=mysql_query("SELECT * FROM `Тур-країна` WHERE `Тур-країна`.`Id_t`='$res_query1
    AND `Тур-країна`.`tour_id`='
$res_query2'")or die(mysql_error()); 
Странные решения – потому, что в циклах они получают только по одному варианту (последнему в списке совпавших с условиями запросов).
Однако, как правило, таких совпадений бывает несколько – и ваш код совершенно к этому не готов.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать результат одной функции в качестве аргумента другой Ka2R Помощь студентам 3 11.03.2015 17:55
Как в VB передать данные с одной формы в другую Vceznayka Microsoft Office Excel 1 26.12.2011 17:13
Передать процедуры и функции из одной DLL в другую Alter Общие вопросы Delphi 12 12.06.2011 00:39
Как передать значение пременной из одной функции в другую? mr.-parker Общие вопросы C/C++ 2 27.03.2010 15:01
C#: Передать значение переменной из одной формы в другую Veiron Общие вопросы .NET 3 29.06.2009 17:43