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.SU

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


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

> Описание: создание таблицы
imediasun2
Отправлено: 20 Января, 2013 - 22:51:13
Post Id


Гость


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


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




Требуется чтобы клиент создавал таблицу относящуюся к товару (например модель сойства)и в каждом конкретном случае количество полей в таблице будет различное, как это осуществить чтобы существовала добавить таблицу (количество полей) с клиентской стороны, добавлялось бы таблица в базу данных и выводилась бы информация при наличии у товара такой таблицы, помогите рассудить и спроектировать, тут наверное какие то SQL команды должны быть в зависимости от выбранных клиентом условий.
 
 Top
caballero
Отправлено: 20 Января, 2013 - 22:55:29
Post Id


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


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


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




лучше такой бред даже не начинать проектировать


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
imediasun2
Отправлено: 20 Января, 2013 - 23:03:59
Post Id


Гость


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


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




а если надо, то что делать
PHP:
скопировать код в буфер обмена
  1.  
  2. public function buildDB(){
  3.   $sql = 'CREATE TABLE IF NOT EXISTS messages (
  4.            title     VARCHAR(150),
  5.            bodytext  TEXT,
  6.            created       VARCHAR(100)
  7.          )';
  8.            
  9.   return mysql_query($sql);  
  10. }
  11.  

Как вместо названий вставлять переменные и как формировать их колличество и типы данных, возможно ли это вообще , поделитесь пожалуйста знаниями и статьями, спасибо

(Отредактировано автором: 20 Января, 2013 - 23:17:19)

 
 Top
tato
Отправлено: 21 Января, 2013 - 03:24:36
Post Id



Посетитель


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


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




caballero пишет:
лучше такой бред даже не начинать проектировать
+1

imediasun2 пишет:
а если надо, то что делать
, Вы пришли к неверному решению задачи.


-----
просто ?: сложно
 
 Top
spsu
Отправлено: 21 Января, 2013 - 08:24:13
Post Id



Частый гость


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


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




imediasun2 , гляньте как в DLE реализовано добавление доп. полей, там не добавляються доп. колонки в БД, там есть колонка в которой хранятся доп. поля. для описания новости.
 
 Top
imediasun2
Отправлено: 21 Января, 2013 - 10:03:46
Post Id


Гость


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


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




Нашел вот такой скрипт, поможет ли он мне и как на стороне клиента все устроить?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?$cols = array();
  3. $count = 1;
  4. $numcols = $_POST['cols'];
  5. while ($numcols > 0) {
  6. $cols[] = mysql_real_escape_string($_POST[$count."_name"])."
  7. ".mysql_real_escape_string($_POST[$count."_type"]);
  8. $count ++;
  9.  $numcols --;
  10.  }
  11.  $allcols = null;
  12.  $newcounter = $_POST['cols'];
  13.  foreach ($cols as $col) { if ($newcounter > 1) $allcols = $allcols.$col.",\n";
  14.  else $allcols = $allcols.$col."\n"; $newcounter --; };
  15.  $fullname = $_SESSION['user_id']."_".mysql_real_escape_string($_POST['name']);
  16.  $dbname = mysql_real_escape_string($_POST['name']);
  17.  $query = "CREATE TABLE ".$fullname." (\n".$allcols." )";
  18.  mysql_query($query);
  19.  echo create_table($query, $fullname, $dbname, $actualcols);
  20.  ?>

Как бы вы его отредактировали?

(Отредактировано автором: 21 Января, 2013 - 10:04:45)

 
 Top
esterio
Отправлено: 21 Января, 2013 - 18:14:58
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Посмотрите в сторону EAV модели
Вот что-то типа того
forum.sources.ru/index.php?showtopic=277383
тут есть свойство и есть значение
 
 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