Вход | Регистрация | FAQ
Anonymous

Помощь в MySQL

+ Ответить

Сообщений: 6 Страница 1 из 1


Помощь в MySQL

Vlad » Сб июн 16, 2012 3:35 pm

Помогите. Проблема такая. Через форму в уже заранее созданной таблице создается запись. В таблице есть имя, название, текст и идентификатор. Нужно чтобы вместе с записью создавалась новая таблица с названием "commentID", и чтобы вместо ID был идентификатор записи. Как это можно сделать?
Аватара пользователя

Vlad

  • Сообщения: 5
  • Зарегистрирован: Пт июн 15, 2012 2:30 pm

Re: Помощь в MySQL

Muxa » Сб июн 16, 2012 4:07 pm

Код: Выделить всё
$id=$вашID;
$query="CREATE TABLE IF NOT EXISTS table_name$id (
id INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR (30) NOT NULL,
comment CHAR (30) NOT NULL,
PRIMARY KEY (id)
)ENGINE = MYISAM ;";
mysql_query($query) or die(mysql_error());

но это полный бред.
не проще ли добавить поле в таблицу с комментами и туда записывать этот самый ид??
представьте сколько у вас будет (причем пустых) таблиц если хотя бы 50 комментов будет
сервак просто положите, хостер вас выкинет
Аватара пользователя

Muxa

  • Сообщения: 181
  • Зарегистрирован: Вт май 15, 2012 7:14 pm

Re: Помощь в MySQL

Vlad » Сб июн 16, 2012 4:16 pm

Я пока просто думал над возможным решением проблем с комментариями. Может мое решение и глупое, но просто я хочу посмотреть что будет. С id я уже решил. Таблицы создает нормальные. Но теперь не может отобразить данные. Пишет что лишний > в строчке
Код: Выделить всё
echo "<p>" $row["name"] "<p>";

Код: Выделить всё
<?php
   // Соединиться с сервером БД
   mysql_connect("openserver", "qwerty", "qwerty") or die (mysql_error ());

   // Выбрать БД
   mysql_select_db("creepy") or die(mysql_error());
   $id = mysql_insert_id();
   // Получить данные из БД, в зависимости от значения id в URL
   $strSQL = "SELECT * FROM comment$id ;
   $rs = mysql_query($strSQL);
   
   // Цикл по $rs
   while($row = mysql_fetch_array($rs)) {
      // Записать данные человека
      echo "<p>" $row["name"] "<p>";
      echo "<p>" $row["text"] "<p>";
   }

   // Закрыть соединение с БД
   mysql_close();
   ?>
Аватара пользователя

Vlad

  • Сообщения: 5
  • Зарегистрирован: Пт июн 15, 2012 2:30 pm

Re: Помощь в MySQL

Vlad » Сб июн 16, 2012 4:17 pm

И еще. Почему случиться крэш если будет 50 таблиц?
Аватара пользователя

Vlad

  • Сообщения: 5
  • Зарегистрирован: Пт июн 15, 2012 2:30 pm

Re: Помощь в MySQL

Muxa » Сб июн 16, 2012 7:29 pm

Код: Выделить всё
echo "<p>".$row["name"]."<p>";

Код: Выделить всё
<?php
   // Соединиться с сервером БД
   mysql_connect("openserver", "qwerty", "qwerty") or die (mysql_error ());

   // Выбрать БД
   mysql_select_db("creepy") or die(mysql_error());
   $id = mysql_insert_id();
   // Получить данные из БД, в зависимости от значения id в URL
   $strSQL = "SELECT * FROM comment$id";
   $rs = mysql_query($strSQL);
   
   // Цикл по $rs
   while($row = mysql_fetch_array($rs)) {
      // Вывести данные человека
      echo "<p>".$row["name"]."<p>";
      echo "<p>".$row["text"]."<p>";
   }

   // Закрыть соединение с БД
   mysql_close();
   ?>

вот так правильно должно быть..
Ваш SQL-запрос был успешно выполнен (Запрос занял 0.0854 сек)
SQL-запрос:
CREATE TABLE IF NOT EXISTS `comid` (
`id` INT NOT NULL AUTO_INCREMENT ,
`fsdfsd` VARCHAR( 244 ) NOT NULL ,
`fsdfsdfsfs` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM

заходим в калькулятор, умножаем время на 50 (к примеру) получаем 4.27 секунды. это раз
второе - хостеру навряд ли понравится куча таблиц в бд
третье.. как вы сами то собираетесь там разбираться?
ну и четвертое, наконец.. зачем вам вообще этот лишний геморрой!? куда проще вставлять этот ид в другое поле той же таблицы - и времени меньше займет запрос, и кода намного меньше писать.
Добавлены ряды: 1
Вставить id ряда: 1 (Запрос занял 0.0010 сек)
SQL-запрос:
INSERT INTO `comid` ( id, fsdfsd )
VALUES (
'', '122'
)

опять же, заходим в калькулятор, умножаем на 50 - и получаем всего лишь 0,05 секунды
намного быстрее, не правда ли?) почти в 86 раз
если создавать таблицу только с одним полем без ключа - то не намного быстрее выходит
Ваш SQL-запрос был успешно выполнен (Запрос занял 0.0682 сек)
SQL-запрос:
CREATE TABLE IF NOT EXISTS `comid` (
number INT NOT NULL
) ENGINE = MYISAM

при умножении на 50 получается 3 с чем то секунды - все равно в 60 раз медленнее
и вообще, если честно, я не совсем понимаю что именно вы хотите, зачем вообще такая затея..
это все для расчета на 50.
а представьте 100 пользователей хотя бы одновременно?
Аватара пользователя

Muxa

  • Сообщения: 181
  • Зарегистрирован: Вт май 15, 2012 7:14 pm

Re: Помощь в MySQL

XainPro » Пн июн 18, 2012 6:09 am

Сделать ID авто прирост
Аватара пользователя

XainPro

  • Сообщения: 3933
  • Зарегистрирован: Пт фев 17, 2012 8:10 pm


+ Ответить

Страница 1 из 1