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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2015, 20:04   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию Поиск по таблице

Добрый день. Делаю сайт с онлайн-подбором тура и застряла на следующей задаче: через phpadmin создала 4 таблицы: Польша,Словакия,Англия,Италия. И пока что тур подбирается только по названию таблицы, а как сделать так,чтобы можно было добавить еще выбор городов,даты и цены, я не знаю.
PHP код:
<div id="block2">
 
<form method='post' action=''>
    <select name='categories'>
        <option value=''>-- Виберіть країну --</option>
 
 
 
<?php
            $dbname 
'admin';
            
$db mysql_connect ("localhost","admin1","pass");
mysql_query("SET NAMES 'cp1251'");
            
mysql_select_db ($dbname,$db);
            if (!
$db) {
                echo 
'Ошибка подключения к mysql';
                exit;
            }  
            
$result mysql_query("SHOW TABLES FROM $dbname"$db);
 
if (!
$result) {
                echo 
"Ошибка базы, не удалось получить список таблиц\n";
                echo 
'Ошибка MySQL: ' mysql_error();
                exit;
            } 
while (
$row mysql_fetch_row($result)) {
            echo 
"<option value=' ".$row[0]." '>".$row[0]."</option>";
            } 
 
?>
 
</select>
    <input type='submit' name='vivod' value='Обрати тур'>
</form>
 
 
<?php
 
    
if (isset($_POST['vivod'])) 
    {
 echo 
"<table border=\"1\" width=\"100%\" bgcolor=\"#FFFFFF\">";
echo 
"<tr><td>ID туру</td><td>Країна</td><td>Міста</td><td>Дата</td><td>Віза</td><td>Ціна</td><td>Опис</td></tr>";
        
$table_name $_POST['categories'];
        
$sql_table mysql_query("SELECT * FROM $table_name") or die(mysql_error());
        
$f=mysql_num_fields ($sql_table);
       
            while (
$row_table mysql_fetch_array($sql_tableMYSQL_NUM)) {
             echo 
"\n</tr>";
                    for (
$i=0$i<$f$i++) {
                        
$value=$row_table[$i];
                
            echo 
"<td>$value</td>";
                    }
                echo 
"</tr>";
            }
 
       
echo 
"</table>";
    }
?>
 
</div>
Изображения
Тип файла: jpg 23.JPG (59.9 Кб, 125 просмотров)
Вероника99 вне форума Ответить с цитированием
Старый 09.12.2015, 20:40   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Вероника99 Посмотреть сообщение
Делаю сайт с онлайн-подбором тура
С какой целью делаем?
В целях обучения|изучения программирования, это просто сайт для себя, это задание от заказчика, и т.д.?
Уровень знаний какой?
От этих и некоторых других факторов зависит выбор способа решения задачи.
Andkorol вне форума Ответить с цитированием
Старый 09.12.2015, 21:15   #3
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Это сайт для расчетной работы в университете. Php только недавно начала изучать,поэтому знания не на высоком уровне
Вероника99 вне форума Ответить с цитированием
Старый 09.12.2015, 22:04   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

А чего ж не в разделе «Помощь студентам»?

«4 таблицы: Польша,Словакия,Англия,Италия» – это глупости, на зачет не прокатит.

По-хорошему, нужно сделать такие таблицы и поля:
Страны – id, title – список стран
Города – id, title – список городов
Tуры – id, date, visa, price, description – базовая информация о турах
Туры-Страны – tour_id, country_id – таблица связей тура со страной (или несколькими странами)
Туры-Города – tour_id, city_id – таблица связей тура с городом (или несколькими городами)

Далее:
Списки стран и городов для формы Поиска получаем из соответствующих таблиц в БД. Желательно сделать выбор только тех городов и стран, которые связаны с турами через таблицы связей Туры-Страны и Туры-Города (по country_id и city_id соответственно).
Даты для формы Поиска берем из таблицы Туров (поле date), используя DISTINCT в запросах для получения списка уникальных дат, без повторов.
Цены – там же (поле price), также используя DISTINCT в запросах.

Поиск по Странам и Городам проводим изначально по таблицам Туры-Страны (поле country_id) и Туры-Города (поле city_id) соответственно – выбираем ID совпавших туров (tour_id).
Поиск по Дате и Цене проводим по таблице Туров (поля date и price соответственно).
Комплексный поиск (Страна + Город + Дата + Цена) проводим поэтапно:
– сначала по таблицам Туры-Страны и Туры-Города соответственно
– затем, если есть совпадения, проверяем совпавшие ID туров по Дате и Цене в таблице Туров.

Вот примерно так это должно работать, это в самом простом варианте.
Andkorol вне форума Ответить с цитированием
Старый 26.02.2016, 18:33   #5
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Спасибо за ответ.Сделала все точно как вы написали,связала таблицы.Теперь дошло дело до кода,т.к дела c php не имела,пытаюсь что-то понять и написать.
PHP код:
<form method='post' action=''>
    <select name='categories'>
        <option value=''>-- Выбор стран --</option>


<?php
            $dbname 
'admin';
            
$db mysql_connect ("localhost","admin1","1111");
mysql_query("SET NAMES 'cp1251'");
            
mysql_select_db ($dbname,$db);
            if (!
$db) {
                echo 
'Ошибка подключения к mysql';
                exit;
            }  
$res mysql_query('select `country_id` from `Тур-страна`');
while(
$row mysql_fetch_assoc($res)){
    
?>  
     <option value="<?=$row['Id']?>"><?=$row['сountry_id']?></option>

    <?
}
        
 
?>
                           
</select>
    <input type='submit' name='vivod' value='Выбрать тур'>
</form>
Таблица Тур-страна состоит из "ссылок" на таблицы "Страна" и "Тур". Первая проблема с которой я столкнулась,это вывод в выпадающем списке чисел (т.е ссылок на табл.Страна),вместо названий стран. Ну и второе,я не понимаю,как организовать фильтрацию данных,например:пользователь вводит страну: Австрия и сразу же в следующем выпадающем списке "Выбор города" , появляется список только городов Австрии
Вероника99 вне форума Ответить с цитированием
Старый 26.02.2016, 19:24   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Без базовых знаний будет туго.
Цитата:
Сообщение от Вероника99 Посмотреть сообщение
Первая проблема с которой я столкнулась,это вывод в выпадающем списке чисел (т.е ссылок на табл.Страна),вместо названий стран.
В SQL-запросе нужен JOIN к таблице «Страны», чтоб получить их названия по ID.
Цитата:
Сообщение от Вероника99 Посмотреть сообщение
Ну и второе,я не понимаю,как организовать фильтрацию данных,например:пользователь вводит страну: Австрия и сразу же в следующем выпадающем списке "Выбор города" , появляется список только городов Австрии
Гуглим «связанные списки php» – там примеров реализации есть великое множество.
Andkorol вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск id в таблице tanek Помощь студентам 7 11.03.2012 16:29
Поиск по таблице Pecnekm Microsoft Office Excel 4 11.03.2011 14:38
поиск по таблице sid1868 Помощь студентам 1 10.11.2010 16:23
поиск по таблице ening Microsoft Office Excel 15 28.10.2010 21:39
поиск в таблице puma Помощь студентам 3 22.04.2008 23:56