Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с категориями
 
 автор: Kien   (31.10.2006 в 16:51)   письмо автору
 
 

Может быть я повторюсь, но я новичок и поэтому для меня это еще сложновато....
Итак, такая проблема:

есть таблица с отелями: 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

Помогите пожалуйста

   
 
 автор: elenaki   (31.10.2006 в 16:57)   письмо автору
 
   для: Kien   (31.10.2006 в 16:51)
 

а откуда берется категория или город? есть сначала какой-то выбор условий?

   
 
 автор: Kien   (31.10.2006 в 17:05)   письмо автору
 
   для: elenaki   (31.10.2006 в 16:57)
 

Это пародия на инет магазин:

Выбираем город из списка, в городе категорию из списка, в категории отель из списка.
Отель должен соответствовать конкретной категории в конкретном городе

   
 
 автор: elenaki   (31.10.2006 в 17:17)   письмо автору
 
   для: 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"] и
проверить их на спецсимволы.

   
 
 автор: Kien   (31.10.2006 в 17:33)   письмо автору
 
   для: elenaki   (31.10.2006 в 17:17)
 

Я извиняюсь за свою тупость, но что значит рисовать select?

   
 
 автор: elenaki   (31.10.2006 в 21:08)   письмо автору
 
   для: Kien   (31.10.2006 в 17:33)
 

не нравится рисовать? тогда создать. построить. слепить. у вас есть таблицы для городов и категорий. вы же не будете код писать руками, когда это может сделать РНР быстрее и красивее? :)

   
 
 автор: cheops   (31.10.2006 в 19:00)   письмо автору
 
   для: Kien   (31.10.2006 в 16:51)
 

А вы что хотите сделать вывести полный список оттлей или список должен выводится для выбранного города (категории)?

   
 
 автор: Kien   (31.10.2006 в 20:41)   письмо автору
 
   для: cheops   (31.10.2006 в 19:00)
 

Для выбранного города и категории

   
 
 автор: cheops   (31.10.2006 в 23:23)   письмо автору
 
   для: Kien   (31.10.2006 в 20:41)
 

Т.е. нам перед запросом известны category_id и city_id?

   
 
 автор: Kien   (01.11.2006 в 16:20)   письмо автору
 
   для: cheops   (31.10.2006 в 23:23)
 

да, известны. Принцип такой, как я уже и писал:

Из списка городов выбираем город, потом категорию в городе, и в этой категории отели должны отсортироваться.

   
 
 автор: cheops   (01.11.2006 в 17:47)   письмо автору
 
   для: 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 - переменные с соответствующими ключами.

   
 
 автор: Kien   (01.11.2006 в 19:15)   письмо автору
 
   для: 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 в 22:07)   письмо автору
 
   для: Kien   (01.11.2006 в 19:15)
 

help please.....

   
 
 автор: cheops   (01.11.2006 в 23:28)   письмо автору
 
   для: Kien   (01.11.2006 в 19:15)
 

А как функция себя ведёт? Возвращает false? Исправьте строки
return false;

на
{
  echo mysql_error();
  return false;
}

Что теперь выводится?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования