|
|
|
| Может быть я повторюсь, но я новичок и поэтому для меня это еще сложновато....
Итак, такая проблема:
есть таблица с отелями: HOTEL (hotel_id, hotel_name, category_id, city_id, ...)
есть таблица категорий отелей: Category (category_id, category_name)
есть таблица городов в которых ети отели находятся: CITY (city_id, city_name)
Городов несколько, категорий тоже. Каждая категория есть в каждом городе, т.е. в Москве, Питере и Новгороде есть одинаковые категории отелей (2*, 3*, 4* и т.д.)
Надо чтобы отели выводились в своей категории в своем городе.
Например:
Отель1 3* в Москве
Отель2 2* в Питере
Извиняюсь, что много букв, но я только начинаю и не могу понять как правильно написать select from HOTEL
Помогите пожалуйста | |
|
|
|
|
|
|
|
для: Kien
(31.10.2006 в 16:51)
| | а откуда берется категория или город? есть сначала какой-то выбор условий? | |
|
|
|
|
|
|
|
для: elenaki
(31.10.2006 в 16:57)
| | Это пародия на инет магазин:
Выбираем город из списка, в городе категорию из списка, в категории отель из списка.
Отель должен соответствовать конкретной категории в конкретном городе | |
|
|
|
|
|
|
|
для: Kien
(31.10.2006 в 17:05)
| | 1. рисуете select с именем city для выбора города (их, надеюсь, будет не тыща?)
2. рисуете select с именем category для выбора категории
3. строите запрос:
SELECT * form hotel WHERE city_id=$city_id AND category_id=$category_id
4. выводите результат запроса
надо учесть, что селекты строятся по запросам к соответствующим таблицам базы, a
переменные в запросе лучше переписать так: $_POST["city_id"] или $_GET["city_id"] и
проверить их на спецсимволы. | |
|
|
|
|
|
|
|
для: elenaki
(31.10.2006 в 17:17)
| | Я извиняюсь за свою тупость, но что значит рисовать select? | |
|
|
|
|
|
|
|
для: Kien
(31.10.2006 в 17:33)
| | не нравится рисовать? тогда создать. построить. слепить. у вас есть таблицы для городов и категорий. вы же не будете код писать руками, когда это может сделать РНР быстрее и красивее? :) | |
|
|
|
|
|
|
|
для: Kien
(31.10.2006 в 16:51)
| | А вы что хотите сделать вывести полный список оттлей или список должен выводится для выбранного города (категории)? | |
|
|
|
|
|
|
|
для: cheops
(31.10.2006 в 19:00)
| | Для выбранного города и категории | |
|
|
|
|
|
|
|
для: Kien
(31.10.2006 в 20:41)
| | Т.е. нам перед запросом известны category_id и city_id? | |
|
|
|
|
|
|
|
для: cheops
(31.10.2006 в 23:23)
| | да, известны. Принцип такой, как я уже и писал:
Из списка городов выбираем город, потом категорию в городе, и в этой категории отели должны отсортироваться. | |
|
|
|
|
|
|
|
для: Kien
(01.11.2006 в 16:20)
| | Тогда можно использовать следующий запрос
SELECT * form hotel
WHERE city_id=$city_id AND category_id=$category_id
ORDER BY hotel_name
|
Где $city_id и $category_id - переменные с соответствующими ключами. | |
|
|
|
|
|
|
|
для: cheops
(01.11.2006 в 17:47)
| | Как-то не особо помогло. Может быть я где-то туплю. Вот функция для запроса отеля из базы данных:
function get_hotel()
{
$city_id = $HTTP_GET_VARS['city_id'];
$category_id = $HTTP_GET_VARS['category_id'];
if (!$category_id || $category_id=='')
return false;
else if (!$city_id || $city_id=='')
return false;
$conn = db_connect();
$query = "SELECT * form hotel
WHERE city_id=$city_id AND category_id=$category_id
ORDER BY hotel_name";
$result = @mysql_query($query);
if (!$result)
return false;
$num_hotel = @mysql_num_rows($result);
if ($num_hotel ==0)
return false;
$result = db_result_to_array($result);
return $result;
}
Посмотрите пожалуйста, если она правильна | |
|
|
|
|
|
|
|
для: Kien
(01.11.2006 в 19:15)
| | help please..... | |
|
|
|
|
|
|
|
для: Kien
(01.11.2006 в 19:15)
| | А как функция себя ведёт? Возвращает false? Исправьте строки
на
{
echo mysql_error();
return false;
}
|
Что теперь выводится? | |
|
|
|