Zaloguj | Zarejestruj | FAQ
Anonymous

Помощь в MySQL

+ Odpowiedz

Posty: 6 Strona 1 z 1


Помощь в MySQL

przez Vlad » So cze 16, 2012 3:35 pm

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

Vlad

  • Posty: 5
  • Dołączył(a): Pt cze 15, 2012 2:30 pm

Re: Помощь в MySQL

przez Muxa » So cze 16, 2012 4:07 pm

Kod: Zaznacz cały
$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 комментов будет
сервак просто положите, хостер вас выкинет
Avatar użytkownika

Muxa

  • Posty: 181
  • Dołączył(a): Wt maja 15, 2012 7:14 pm

Re: Помощь в MySQL

przez Vlad » So cze 16, 2012 4:16 pm

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

Kod: Zaznacz cały
<?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();
   ?>
Avatar użytkownika

Vlad

  • Posty: 5
  • Dołączył(a): Pt cze 15, 2012 2:30 pm

Re: Помощь в MySQL

przez Vlad » So cze 16, 2012 4:17 pm

И еще. Почему случиться крэш если будет 50 таблиц?
Avatar użytkownika

Vlad

  • Posty: 5
  • Dołączył(a): Pt cze 15, 2012 2:30 pm

Re: Помощь в MySQL

przez Muxa » So cze 16, 2012 7:29 pm

Kod: Zaznacz cały
echo "<p>".$row["name"]."<p>";

Kod: Zaznacz cały
<?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 пользователей хотя бы одновременно?
Avatar użytkownika

Muxa

  • Posty: 181
  • Dołączył(a): Wt maja 15, 2012 7:14 pm

Re: Помощь в MySQL

przez XainPro » Pn cze 18, 2012 6:09 am

Сделать ID авто прирост
Avatar użytkownika

XainPro

  • Posty: 3933
  • Dołączył(a): Pt lut 17, 2012 8:10 pm


+ Odpowiedz

Strona 1 z 1