Все пытаюся написать свой форум,уже написал,но обнаружились ошибки.Помогите плз...
Когда гость создает тему,автоматически создается таблица
Код
<?php
$id = $_SESSION['user_inf']['login'];
$tema = trim(htmlspecialchars($_POST['tema']));
$text = trim(htmlspecialchars($_POST['textarea']));
$date_reg = date("Y-m-d G:i:s");
$tem_baza=str_replace(" ","_",$tema); //Заменяет все пробелы на знак "_"
//тут всякие проверки...
$baz='CREATE TABLE `'.$tem_baza.'` ('
. ' `login` TINYTEXT NULL, '
. ' `maseg` TINYTEXT NULL, '
. ' `data` DATETIME NULL'
. ' )'
. ' TYPE = myisam';
$result=mysql_query($baz);
mysql_select_db($tem_baza);
$query = "INSERT INTO ".$tem_baza." (login, maseg, data) VALUES ('$id', '$text', '$date_reg')";
mysql_query($query) or die (mysql_error ());
?>
$id = $_SESSION['user_inf']['login'];
$tema = trim(htmlspecialchars($_POST['tema']));
$text = trim(htmlspecialchars($_POST['textarea']));
$date_reg = date("Y-m-d G:i:s");
$tem_baza=str_replace(" ","_",$tema); //Заменяет все пробелы на знак "_"
//тут всякие проверки...
$baz='CREATE TABLE `'.$tem_baza.'` ('
. ' `login` TINYTEXT NULL, '
. ' `maseg` TINYTEXT NULL, '
. ' `data` DATETIME NULL'
. ' )'
. ' TYPE = myisam';
$result=mysql_query($baz);
mysql_select_db($tem_baza);
$query = "INSERT INTO ".$tem_baza." (login, maseg, data) VALUES ('$id', '$text', '$date_reg')";
mysql_query($query) or die (mysql_error ());
?>
С начала бла проблемма когда в названии темы гость использовал пробелы.Это было решенно по средствам
Код
$tem_baza=str_replace(" ","_",$tema); //Заменяет все пробелы на знак "_"
Теперь проблемму вызыввает такое название темы "Мы учиться будем?"
Подозреваю что проблемма из за знака вопроса.
Что подскажите?Как исправить?
Спустя 2 часа, 21 минута, 38 секунд (23.10.2007 - 12:50) md5 написал(а):
а нехер создавать для каждой темы таблицу!
Спустя 1 час, 6 минут, 10 секунд (23.10.2007 - 13:56) Professor написал(а):
Ну я толбко такой метод придумал.Так очань легко находить какое сообщение в какой теме.
А как можно по другому?
А как можно по другому?
Спустя 33 минуты, 47 секунд (23.10.2007 - 14:30) emp написал(а):
Таблица тем. Таблица постов, в ней поле, в котором хранится id темы, к которой относится пост.
Потом при выводе темы соответсвенно
P.S. Сегодня к вечеру у себя на сайте выложу исходники бетки своего мини-форума, можете посмотреть как там реализовано. Я, конечно, не говорю что этот метод лучший, но он лучше чем на каждую тему создавать таблицу
Потом при выводе темы соответсвенно
Код
SELECT * FROM $table_posts WHERE `theme_id`='$theme' ORDER BY `date` DESC
P.S. Сегодня к вечеру у себя на сайте выложу исходники бетки своего мини-форума, можете посмотреть как там реализовано. Я, конечно, не говорю что этот метод лучший, но он лучше чем на каждую тему создавать таблицу
Спустя 2 часа, 28 минут, 29 секунд (23.10.2007 - 16:59) Professor написал(а):
А чем вам не нравится мой вариант реализации базы данных?
Помоему идеальный вариант.
особенно когда мноро сообщений,выборка по темам будет очень долгой,а у меня этой выборки нет.
Помоему идеальный вариант.
особенно когда мноро сообщений,выборка по темам будет очень долгой,а у меня этой выборки нет.
Спустя 17 часов, 48 минут, 44 секунды (24.10.2007 - 10:47) lenich написал(а):
Professor,
таблицы это сущности, а не отдельно взятые объекты. По такой базе вообще невозможно делать выборки. Попробуй допустим выбрать все темы где постил какой - нибудь пользователь.
Только заново переделать.
таблицы это сущности, а не отдельно взятые объекты. По такой базе вообще невозможно делать выборки. Попробуй допустим выбрать все темы где постил какой - нибудь пользователь.
Цитата
Как исправить?
Только заново переделать.
Спустя 5 часов, 36 минут, 6 секунд (24.10.2007 - 16:23) Professor написал(а):
Ести еще одна таблица где хранятся названия тем.И по этим названиям идет обращение к определенной таблице,ведь название тамы и имя таблици это одно и тоже.
Спустя 1 час, 34 минуты, 59 секунд (24.10.2007 - 17:58) emp написал(а):
Цитата
ведь название тамы и имя таблици это одно и тоже
Ну и будете мучаться с названиями таблиц. Зачем изобретать велосипед?
_____________
Легче всего создаются трудности