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 :: Создание таблицы MySQL с помощью php

 PHP.SU

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


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

> Без описания
alena_pl
Отправлено: 16 Марта, 2012 - 09:26:09
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Дек. 2011  


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




Всем, добрый день!
Подскажите, пожалуйста, каким образом можно динамически создавать новые таблицы MySQL с помощь php.
Например у меня БД есть 2 таблицы - table1 и table2, как нужно построить запрос, чтобы по необходимости создавались таблицы table3, table4, table5 и тд.....


Спасибо, буду рада помощи! Улыбка
 
 Top
DlTA
Отправлено: 16 Марта, 2012 - 09:48:05
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


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




по формату запроса CREATE TABLE
 
 Top
alena_pl
Отправлено: 16 Марта, 2012 - 09:54:02
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Дек. 2011  


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




DlTA пишет:
по формату запроса CREATE TABLE

Запрос по созданию таблицы понятно как создавать
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include "db.php";
  4. mysql_query("CREATE TABLE test (id int auto_increment primary key,
  5. name VARCHAR(16),
  6. description text,
  7. image text)") or die(mysql_error());
  8.  
  9. print "Таблица создана!<br>";
  10. ?>
  11.  


А как же сделать так, что бы создавались по необходимости таблицы test1, table2, table3...и тд. Не все сразу(это можно сделать циклом), а по одной.
 
 Top
Мелкий Супермодератор
Отправлено: 16 Марта, 2012 - 09:56:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




0) путь правильный:
спроектировать базу нормально
1) запрос на создание таблицы ничем не отличается от прочих запросов, того же insert'а и update


-----
PostgreSQL DBA
 
 Top
Dezmont
Отправлено: 16 Марта, 2012 - 10:01:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


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




alena_pl, ну только вы можете определить "необходимость" создания таблиц. Следовательно вам нужно спроектировать логику скрипта, который будет выполнять за вас эту задачу.
 
 Top
alena_pl
Отправлено: 16 Марта, 2012 - 12:54:50
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Дек. 2011  


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




Dezmont пишет:
alena_pl, ну только вы можете определить "необходимость" создания таблиц. Следовательно вам нужно спроектировать логику скрипта, который будет выполнять за вас эту задачу.


Спасибо, вы правы.

Вот, может кому пригодится.
В моём случае существует таблица с категориями продуктов, номер id соответствует каждому названию категории, то есть если хотим создать новую категорию мы добавляем её с помощью INSERT (добавляем новую запись в таблицу products)и далее при нажатии на ссылку-название категории
PHP:
скопировать код в буфер обмена
  1. <a href="products_list1.php?id='.$id.'">'.$name.'</a>
выполняем следующий скрипт(представлен ниже). То есть каждой новой таблице мы присваиваем id соответствующей категории в другой таблице. И получаем таблицы products1, products2, products3......и тд. Извиняюсь заранее, если вдруг не понятно объясняю Улыбка :
PHP:
скопировать код в буфер обмена
  1.  
  2. products_list1
  3.  
  4. $id = $_GET['id'];
  5. $table = mysql_query("CREATE TABLE products$id(id int auto_increment primary key,
  6. name VARCHAR(100),
  7. description text,
  8. image text)");
  9.  
  10. if($table){
  11.                         echo"<script>
  12.                         alert ('Таблица успешно создана!');
  13.                         document.location.href = 'products_list.php'
  14.                         </script>";
  15. }
  16. else {
  17. выводим всё что нам нужно.
  18.  
  19. }
  20.  

(Отредактировано автором: 16 Марта, 2012 - 12:56:34)

 
 Top
DeepVarvar Супермодератор
Отправлено: 16 Марта, 2012 - 12:57:46
Post Id



Активный участник


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


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




alena_pl - глупости.
Таблиц изначально должно быть всего две:

1) разделы (категории)
2) продукты

А в продуктах хранить id категории к которой они пренадлежат и все.
 
 Top
alena_pl
Отправлено: 16 Марта, 2012 - 14:36:32
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Дек. 2011  


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




DeepVarvar пишет:
alena_pl - глупости.
Таблиц изначально должно быть всего две:

1) разделы (категории)
2) продукты

А в продуктах хранить id категории к которой они пренадлежат и все.



Дело в том, что у меня есть категории продуктов, продукты, марки продуктов. Например, Молочные продукты->Сметана->Сметана Простоквашино. Получается всего 3. Как же ещё можно оптимизировать?

(Отредактировано автором: 16 Марта, 2012 - 14:37:07)

 
 Top
DeepVarvar Супермодератор
Отправлено: 16 Марта, 2012 - 14:45:47
Post Id



Активный участник


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


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




Молочные продукты и Сметана это разделы, просто сметана лежит в молочке..
А в сметане продукт Простоквашино.
Всеравно две таблицы всего нужны.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB