Форум → Программирование → PHP для идиотов → Вопрос о PHP / MySQL
Вопрос о PHP / MySQL
Страницы: ← Следующая страница →
-
Привет всем. Я не так давно начал учить PHP. Нужна помощь с MySQL Базой Данных и выводом информации из неё.
Я не уверен как мне сделать таблицу. То есть у меня сейчас есть поля:
cat_id
cat
make_id
make
model_id
model
type_id
type
Требуется сделать выбор Типа автомобиля, затем марку, модель и тип двигателя. В базе данных у меня есть несколько автомобилей:
1)
cat_id - cars
cat - Легковой Автомобиль
make_id - alfa
make - Alfa Romeo
model_id - 145
model - 145 (1994-2001)
type_id - 145
type - 145 1.3/1.4 (1994-1997)
2)
cat_id - cars
cat - Легковой Автомобиль
make_id - alfa
make - Alfa Romeo
model_id - 146
model - 146 (1994-2001)
type_id - 146
type - 146 1.3/1.4 (1995-1996)
Проблема заключается в том, что в форме получается, что выводится 2 раза Легковой Автомобиль. Возможно ли используя PHP написать что если такое имя уже было, второй раз не выводить.
Надеюсь меня хоть кто-нибудь понял
зарание Спасибо!
P.S. Прошу прощения за название темы, другово не придумал! -
15 ноября 2007 г. 23:56, спустя 2 часа 24 минуты 49 секунд
Не надо пытаться все запихнуть в одну таблицу.
А вообще, тебе надо сначала почитать теорию проектирования баз данных.
В поиск по словам: "основы БД", "реляционная модель данных", "нормальная форма", "третья нормальная форма". -
-
16 ноября 2007 г. 9:36, спустя 7 часов 12 минут 15 секунд
Не надо пытаться все запихнуть в одну таблицу.
А вообще, тебе надо сначала почитать теорию проектирования баз данных.
В поиск по словам: "основы БД", "реляционная модель данных", "нормальная форма", "третья нормальная форма".
Помню объясняли нам эти нормальные формы, и первые, и вторые. итретьи. Ничерта в свое время не понял. Нас тогда аксесу учили. Ипанутей программы я не видел еще ))) Вобщем читать про все это бесполезно, надо на личном опыте все делать.
Для данного случая я бы сделал такую структуру:
id (ну с этого должна начинатся любая таблица)
type (тип авто)
mark (марка)
model (модель)
engine (двигатель)
Если все это дело надо будет выводить в единичном экземпляре то тогда наверное стоит сперва все занести в масив, потом его пересобрать только с уникальными значениями ну и в конце уже вывести. Либо для БД писать точный запрос или ставить лимит.from TRIAL with LOVE -
-
16 ноября 2007 г. 14:13, спустя 21 минуту 31 секунду
У меня есть свой извращенный ум которому я больше доверяю чем разной писанине :) Хотя не спорю, почитать бывает полезно :)from TRIAL with LOVE -
-
9 апреля 2008 г. 17:34, спустя 144 дня 23 часа 58 минут
Кстати, я хочу кое-что узнать, но для этого не буду создавать тему.
У меня есть таблица с юзерами и с id.
Например на сайте 6 юзеров. Если зарегиться, то id потом будет 7 (так как auto_increment (как пишется не помню))
Мне нужно сделать так, чтобы если мы напрмер уберём/удалим всю строку с id 3, то все остальные последующие id уменьшаются на 1.
Как мне это сделать? Не могу в инете найти подходящую функцию для этого случаи. -
9 апреля 2008 г. 17:40, спустя 6 минут 11 секунд
Во первых, поле id особенно автоинкрементное грязными руками не лапать!!! :)
Во вторых, если нужен порядковый номер, заводишь специальное поле Ord и после удаления
UPDATE table SET Ord=Ord-1 WHERE Ord > deleted_ord
Да, если совсем по хорошему DELETE и UPDATE желательно засунуть в транзакцию. -
9 апреля 2008 г. 17:46, спустя 5 минут 29 секунд
А можно дурацкий вопрос - зачем такое делать? :)from TRIAL with LOVE -
9 апреля 2008 г. 17:49, спустя 3 минуты 2 секунды
Ну например для сортировки.
А можно дурацкий вопрос - зачем такое делать? :) -
9 апреля 2008 г. 18:22, спустя 33 минуты 24 секунды
Ну например для сортировки.
По-моему, сортировку проще делать средствами PHP.Например на сайте 6 юзеров. Если зарегиться, то id потом будет 7 (так как auto_increment (как пишется не помню))
Мне нужно сделать так, чтобы если мы напрмер уберём/удалим всю строку с id 3, то все остальные последующие id уменьшаются на 1.
Нельзя, нельзя, и еще раз нельзя так делать. -
9 апреля 2008 г. 19:14, спустя 51 минуту 24 секунды
Чего, чего?
По-моему, сортировку проще делать средствами PHP. -
9 апреля 2008 г. 20:16, спустя 1 час 2 минуты 14 секунд
А как можно вывести число сколько запросов к дб было на данной странице? И сколько времени затратило генерация страницы? -
9 апреля 2008 г. 21:32, спустя 1 час 15 минут 30 секунд
проще простого..
будем считать, что ты юзаешь mysql_query() напрямую (без всяких классов-оболочек)
для подсчета кол-ва запросов придется написать функцию типа
function db_query($sql) {
global $_profiling_data;
$begin = microtime(1);
$resource = mysql_query($sql);
$total = microtime(1) - $begin;
$_profiling_data[] = $total;
return $resource;
}
и по всему коду просто заменить mysql_query на db_query
в самом конце скрипта var_dump($_profiling_data); - увидишь сколько элементов (столько было и запросов) и время на каждый запрос
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!