#php #mysql #sql #codeigniter #codeigniter-datamapper
#php #mysql #sql #codeigniter #codeigniter-datamapper
Вопрос:
В моей базе данных есть две таблицы, одна для «ЗАЛОВ ОЖИДАНИЯ», а другая для «ГОРОДОВ». Между ними нет явной связи. Я имею в виду, что я не поместил столбец «city_id» в «ТАБЛИЦУ ЗАЛОВ ОЖИДАНИЯ». Я просто беру столбец «name» из «CITIES» и выбираю его для «LOUNGE».
Я использую Codeigniter и DataMapperPHP, поэтому на данный момент я использую функцию index в lounge.php перечисляет все «ГОРОДА» из таблицы «ГОРОДА», и у меня есть столбец с именем «поиск», который является именем имени функции в lounge.php и оттуда это легко, я просто говорю » .где (‘city’, ‘London’) и у меня есть все залы ожидания в Лондоне, где он указан.
Мой вопрос в том, как сделать это лучше. Я имею в виду сделать так, чтобы иметь только одну функцию «просмотр», например, и ссылки, которые будут генерироваться автоматически, без необходимости добавлять новую функцию с названием города, когда мне нужно добавить новый город?
Есть идеи, как это должно работать?
Это пример того, как все это можно увидеть в коде:
public function index()
{
$cities = new City_model();
$cities->where('active', '1')->order_by('id', 'ascen')->get();
$recent_cities = array();
foreach ($cities as $city)
{
$single_city = array
(
'id' => $city->id,
'city_name' => $city->city_name,
'search' => $city->search,
);
array_push($recent_cities, $single_city);
}
$data = array
(
'cities' => $recent_cities,
'main_content' => 'templates/city_lounges',
'active_state' => 'lounge',
);
$this->parser->parse('template_main', $data);
}
public function london()
{
$lounges = new Lounge_model();
$lounges->where('city', 'London')->order_by('date_added', 'desc')->get();
$recent_lounges = array();
foreach ($lounges as $lounge)
{
$id = $lounge->id;
$fetch_slug = $lounge->club_slug;
$trimpdate = $lounge->date_added;
$date = explode(" ", $trimpdate);
$single_lounge = array
(
'id' => $lounge->id,
'club_name' => $lounge->club_name,
'club_logo' => $lounge->club_logo,
'facebook_page' => $lounge->facebook_page,
'date_added' => $date[0],
'city' => $lounge->city,
);
array_push($recent_lounges, $single_lounge);
}
$data = array
(
'lounges' => $recent_lounges,
'main_content' => 'templates/content_lounges',
'active_state' => 'lounge',
);
// Parse it to the template
$this->parser->parse('template_main', $data);
}
Комментарии:
1. пожалуйста, добавьте табличную структуру обеих таблиц
Ответ №1:
Я нашел лучший способ сделать это. Я установил соединение между 2 таблицами и использую URI, чтобы получить сегмент из ссылки, которая также идет в запросе, чтобы выбрать только залы ожидания из городов.
Теперь это кажется глупым вопросом…