Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подскажите насчёт хранения данных в базе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
D1mOn
Отправлено: 28 Февраля, 2008 - 14:17:46
Post Id



Частый гость


Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008  
Откуда: Гагастан


Помог: 0 раз(а)

[+][+][+][+][+]


Здарова! Я здесь уже столько раз здоровался, что мне кажется будто Мы знакомы 100 лет )))

Подскажите! У меня на сайте, мона оставлять вопросы. Я хочу добавить к каждому этому вопросу, возможность добавлять комментарии. Так вот где мне лучше хранить эти коментарии, если вид базу вопросов выглядит так:

articles_books
articles_bussines
articles_culture
articles_foods
articles_games
articles_inrussia
articles_internet
articles_media
articles_movies
articles_music
articles_officials
articles_others
articles_politic
articles_private
articles_restaurants
articles_service
articles_shops
articles_society
articles_sport
articles_technics
articles_world

это категории, в них уже хранятся сами вопросы. структура каждой такой категории:

user varchar(32)
theme varchar(100)
date datetime
text text
url text
ip varchar(20)
ref text
show char(2)

что мне создать новую базу, таблицу? как делают все?

спасибо!
 
 Top
EuGen Администратор
Отправлено: 28 Февраля, 2008 - 15:48:17
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Создайте таблицу articles, где храните название, содержание, дату создания и т.п. каждой статьи.
Для комментариев создайте таблицу comments, в которой храните содержание комментария, его дату и id статьи, к которой он относится.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
D1mOn
Отправлено: 28 Февраля, 2008 - 16:03:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008  
Откуда: Гагастан


Помог: 0 раз(а)

[+][+][+][+][+]


Цитата:
Создайте таблицу articles, где храните название, содержание, дату создания и т.п. каждой статьи.


А как потом соотнести опр. статью к опр. категории. То есть если у меня есть страница car.php в которой мне надо вывести все статьи про машины, в порядке убывания.
Как такое сделать?
 
 Top
evgenijj
Отправлено: 28 Февраля, 2008 - 16:25:21
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




D1mOn пишет:
А как потом соотнести опр. статью к опр. категории.

Создать таблицу "Категории". На эту таблицу будет ссылаться каждая запись в таблице articles. Выбрать статьи определенной тематики
SELECT * FROM articles WHERE id_ctg=5 ORDER BY puttime DESC;
 
 Top
Dastar
Отправлено: 28 Февраля, 2008 - 16:26:32
Post Id



Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008  
Откуда: Израиль


Помог: -6 раз(а)




Получаешь id данной статьи, потом ищешь по этому id все комментарии, у которых в поле artical_id = id статьи.


-----
Не знаешь - молчи.
 
 Top
EuGen Администратор
Отправлено: 28 Февраля, 2008 - 17:31:55
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Вот примерно так:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. CREATE TABLE categories(category_id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255));
  3.  
  4. CREATE TABLE articles(article_id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, category_id INT(11) UNSIGNED NOT NULL, title VARCHAR(255), content LONGTEXT, creation_date DATETIME NOT NULL, author VARCHAR(255));
  5.  
  6. CREATE TABLE comments(comment_id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, article_id INT(11) UNSIGNED NOT NULL, title VARCHAR(255), content MEDIUMTEXT, creation_date DATETIME NOT NULL, author VARCHAR(255));
  7.  


Соответственно связка между категориями и статьями - по category_id; связка между статьями и комментариями - по article_id.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
D1mOn
Отправлено: 29 Февраля, 2008 - 15:18:17
Post Id



Частый гость


Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008  
Откуда: Гагастан


Помог: 0 раз(а)

[+][+][+][+][+]


Давайте попробуем на примере меню для сайта.

У меня есть таблица menu. В ней много записей вида:

cat_menu // это категория (an, ph, vi, au - названия категорий)
name // русское название для вывода
url // собственно урл куда топать по этой сылке

Так вот! Допустим мне нужны только записи из категории an. Подскажите, как мне их вытащить?
 
 Top
valenok
Отправлено: 29 Февраля, 2008 - 15:22:51
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Может вам книжку какую нибудь посоветовать?
SELECT `field` FROM `tbl` WHERE 'field'=`val`

(Отредактировано автором: 29 Февраля, 2008 - 16:26:50)



-----
Truly yours, Sasha.
 
My status
 Top
EuGen Администратор
Отправлено: 29 Февраля, 2008 - 16:05:34
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Мм-да..
Вот, советую прочесть например это:
http://www[dot]mysql[dot]ru/docs/gruber/


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SergeantPEPPER
Отправлено: 29 Февраля, 2008 - 18:20:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


Помог: 0 раз(а)




Текст запроса:

CODE (text):
скопировать код в буфер обмена
  1. SELECT `name`, `url` FROM `menu` WHERE `cat_menu`='an'


После чего можно слить результат в массив с помощью mysql_fetch_array (), который будет содержать элемента вида: название для вывода, URL
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB