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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2015, 23:44   #1
Dina_93
Новичок
Джуниор
 
Регистрация: 16.04.2015
Сообщений: 7
По умолчанию Переменная PHP

Здравствуйте, у меня возникла проблема :

Есть 2 файла PHP на одном находится форма куда пользователь при поиске пишет название города, на втором файле выводится информация исходя из того какой пользователь город написал.

Файл первый:

$messages_search = array();

if (isset($_GET['hotel_search'])) {
if (empty($_GET['city'])) {
$messages_search[] = 'Введите город;';
}
if (empty($_GET['hotel_data_1'])) {
$messages_search[] = 'Введите дату заезда;';
}
if (empty($_GET['hotel_data_2'])) {
$messages_search[] = 'Введите дату отъезда;';
}
if (!$messages_search) {
header("Location: http://$_SERVER[HTTP_HOST]/result_hotel");
die;
}
}

Файл 2 :

$city_name = @$_GET['city'];

if ($city_name) {
$g = db_connect();
$g1 = $g->prepare('SELECT * FROM mydb.hotel WHERE city=? LIMIT 5');
$g1->execute();
}

Но если я пишу город и нажимаю кнопку поиск, меня перекидывает на страницу с результатами, но там ничего не выводится. Я понимаю что надо объявить переменую содержащую название города глобальной но как это сделать?
Dina_93 вне форума Ответить с цитированием
Старый 17.04.2015, 00:00   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

В первом файле не наблюдаю никакой HTML-формы – зато вижу код обработки полей формы.
В этом случае не совсем понятно такое вот разделение этих файлов.
Должно быть всё просто:
1-й файл – HTML-форма для поиска
2-й файл – обработка полей формы, запрос и вывод результатов поиска
Andkorol вне форума Ответить с цитированием
Старый 17.04.2015, 00:06   #3
Dina_93
Новичок
Джуниор
 
Регистрация: 16.04.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
В первом файле не наблюдаю никакой HTML-формы – зато вижу код обработки полей формы.
В этом случае не совсем понятно такое вот разделение этих файлов.
Должно быть всё просто:
1-й файл – HTML-форма для поиска
2-й файл – обработка полей формы, запрос и вывод результатов поиска
У меня все сложней, примерно выглядет так :

файл1.php (здесь все что связано с php пишется)
файл1.phtml (здесь все что связано с html пишется)

файл2.php (здесь все что связано с php пишется)
файл2.phtml (здесь все что связано с html пишется)
Dina_93 вне форума Ответить с цитированием
Старый 17.04.2015, 00:07   #4
Dina_93
Новичок
Джуниор
 
Регистрация: 16.04.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
В первом файле не наблюдаю никакой HTML-формы – зато вижу код обработки полей формы.
В этом случае не совсем понятно такое вот разделение этих файлов.
Должно быть всё просто:
1-й файл – HTML-форма для поиска
2-й файл – обработка полей формы, запрос и вывод результатов поиска
Просто нам говорили так делать, говорили нельзя писать php код вместе с html
Dina_93 вне форума Ответить с цитированием
Старый 17.04.2015, 00:10   #5
Dina_93
Новичок
Джуниор
 
Регистрация: 16.04.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
В первом файле не наблюдаю никакой HTML-формы – зато вижу код обработки полей формы.
В этом случае не совсем понятно такое вот разделение этих файлов.
Должно быть всё просто:
1-й файл – HTML-форма для поиска
2-й файл – обработка полей формы, запрос и вывод результатов поиска
Форма поиска выглядет так :

<input id="search_hotel_city" type="text" name="city" placeholder="Введите город">
<input id="hotel_data_1" type="text" name="hotel_data_1" class="tcal" placeholder="мм.дд.гг">
<input id="hotel_data_2" type="text" name="hotel_data_2" class="tcal" placeholder="мм.дд.гг">
Dina_93 вне форума Ответить с цитированием
Старый 17.04.2015, 00:32   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Dina_93 Посмотреть сообщение
Просто нам говорили так делать, говорили нельзя писать php код вместе с html
Что, прям совсем никогда-никогда?
А как тогда вы собираетесь выводить информацию, которая обрабатывается средствами PHP (результаты запросов к БД, например)?
Andkorol вне форума Ответить с цитированием
Старый 17.04.2015, 00:38   #7
Dina_93
Новичок
Джуниор
 
Регистрация: 16.04.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Что, прям совсем никогда-никогда?
А как тогда вы собираетесь выводить информацию, которая обрабатывается средствами PHP (результаты запросов к БД, например)?
Мне легче будет вам отправить эти два файла чтобы вы их посмотрели, может быть сразу поймете почему так сделала. Напишите свою почту
Dina_93 вне форума Ответить с цитированием
Старый 17.04.2015, 00:46   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Зачем почта?
Код вполне можно опубликовать прямо в сообщении.
Только нужно свой код отформатировать:
Andkorol вне форума Ответить с цитированием
Старый 17.04.2015, 00:56   #9
Dina_93
Новичок
Джуниор
 
Регистрация: 16.04.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Зачем почта?
Код вполне можно опубликовать прямо в сообщении.
Только нужно свой код отформатировать:

ФАЙЛ1.php
PHP код:

$messages_search 
= array();

if (isset(
$_GET['hotel_search'])) {
    if (empty(
$_GET['city'])) {
        
$messages_search[] = 'Введите город;';
    }
    if (empty(
$_GET['hotel_data_1'])) {
        
$messages_search[] = 'Введите дату заезда;';
    }
    if (empty(
$_GET['hotel_data_2'])) {
        
$messages_search[] = 'Введите дату отъезда;';
    }
    if (!
$messages_search) {
        
header("Location: http://$_SERVER[HTTP_HOST]/result_hotel");
        die;
    }

ФАЙЛ1.phtml

Код HTML:
<form method="get">
<input id="search_hotel_city" type="text" name="city" placeholder="Введите город">   
<input id="hotel_data_1" type="text" name="hotel_data_1" class="tcal" placeholder="мм.дд.гг">   
<input id="hotel_data_2" type="text" name="hotel_data_2" class="tcal" placeholder="мм.дд.гг">  
</form>

ФАЙЛ2.php

PHP код:

$city_name 
= @$_GET['city'];

if (
$city_name) {
    
$g db_connect();
    
$g1 $g->prepare('SELECT * FROM mydb.hotel WHERE city=? LIMIT 5');
    
$g1->execute();

    
$hotel_res = array();

    foreach (
$g1->fetchAll() as $g2) {
        
$hotel_res[] = array(
            
'hotel_name' => $g2['hotel_name'],
            
'city' => $g2['city'],           
        );
    }

ФАЙЛ2.phtml

Код HTML:
<?php if (isset($hotel_res)): ?>
                <?php if (count($hotel_res)): ?>
                    <?php foreach ($hotel_res as $h_r): ?>

<h1><?php echo htmlspecialchars($h_r['hotel_name']) ?></h1>
<h2><?php echo ' ' . htmlspecialchars($h_r['city']) ?></h2>

                   <?php endforeach ?>
              <?php endif ?>
<?php endif ?>
Вот что представляют собой эти файлы. Надеюсь хоть как то сможете мне помочь эту проблему решить.
Dina_93 вне форума Ответить с цитированием
Старый 17.04.2015, 01:18   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Форма – form.html:
Код HTML:
<form method="post" action="form.php">
<input id="search_hotel_city" type="text" name="city" placeholder="Введите город">   
<input id="hotel_data_1" type="text" name="hotel_data_1" class="tcal" placeholder="мм.дд.гг">   
<input id="hotel_data_2" type="text" name="hotel_data_2" class="tcal" placeholder="мм.дд.гг">  
</form>
Обработчик формы – form.php:
PHP код:
if (isset($_GET['hotel_search'])) {
    
$messages_search = array();
    
    if (empty(
$_GET['city'])) {
        
$messages_search[] = 'Введите город;';
    }
    if (empty(
$_GET['hotel_data_1'])) {
        
$messages_search[] = 'Введите дату заезда;';
    }
    if (empty(
$_GET['hotel_data_2'])) {
        
$messages_search[] = 'Введите дату отъезда;';
    }

    if (!empty(
$messages_search)) {
        echo 
implode('<br/>'$messages_search); // ошибки заполнения формы
    
}
    else{
        
$g db_connect();
        
$g1 $g->prepare('SELECT * FROM mydb.hotel WHERE city=? LIMIT 5');
        
$g1->execute(array($_GET['city']));

        
$hotel_res = array();

        foreach (
$g1->fetchAll() as $g2) {
            
$hotel_res[] = array(
                
'hotel_name' => $g2['hotel_name'],
                
'city' => $g2['city'],           
            );
        }

        include 
'form_results_tpl.php'// подключаем шаблон для вывода результатов
    
}

Шаблон для вывода результатов поиска – form_results_tpl.php:
PHP код:
<?php if (isset($hotel_res)): ?>
                <?php if (count($hotel_res)): ?>
                    <?php foreach ($hotel_res as $h_r): ?>

<h1><?php echo htmlspecialchars($h_r['hotel_name']) ?></h1>
<h2><?php echo ' ' htmlspecialchars($h_r['city']) ?></h2>

                   <?php endforeach; ?>
              <?php endif; ?>
<?php 
endif; ?>
Andkorol вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переменная linkoln_7 JavaScript, Ajax 1 03.02.2015 13:31
php Переменная опустошается sir.andrey Помощь студентам 1 19.11.2012 16:06
Не отображается переменная Nikita090 JavaScript, Ajax 8 30.12.2011 19:54
переменная vefer Microsoft Office Word 5 14.11.2011 20:11
Переменная в C# bead C# (си шарп) 8 01.05.2011 12:32