Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2011, 09:24   #11
Jakethefish
Форумчанин
 
Регистрация: 13.11.2009
Сообщений: 121
По умолчанию

Может быть вам следует прочитать про JOIN?

Либо прочитайте про EAV может быть потребность в добавлении колонок отпадет.
Jakethefish вне форума Ответить с цитированием
Старый 02.09.2011, 14:09   #12
GriFFoN
Пользователь
 
Аватар для GriFFoN
 
Регистрация: 03.06.2011
Сообщений: 54
По умолчанию

$i=14
do
{
$i++;
$res = mysql_query("SELECT * FROM information_schema.columns WHERE table_schema = 'db' and table_name = 'table' and column_name = 'column".$i++."'");
$res2=mysql_fetch_array($res);

if ($res2['COLUMN_NAME'] != "") {
echo'уже существует';
}
else
{
$result = mysql_query("ALTER TABLE c_s ADD content'".$i++."' TEXT;")
echo'Все ок';
}
}
while($result);

Вот что я сделал, конечно не работает.
GriFFoN вне форума Ответить с цитированием
Старый 02.09.2011, 14:30   #13
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от GriFFoN Посмотреть сообщение
Вот что я сделал, конечно не работает.
И чем мотивирует это, что пишет?

У вас инкремент ($i++) в одной итерации цикла происходит 3 раза - очень врядли, что это правильно.

Я вам описывал примерный алгоритм:
1. получаем имена всех полей таблицы в массив.
2. запускаем цикл нужного вам размера.
3. проверяем, если нужного поля нет - создаем его.
Andkorol вне форума Ответить с цитированием
Старый 02.09.2011, 14:56   #14
GriFFoN
Пользователь
 
Аватар для GriFFoN
 
Регистрация: 03.06.2011
Сообщений: 54
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
И чем мотивирует это, что пишет?

У вас инкремент ($i++) в одной итерации цикла происходит 3 раза - очень врядли, что это правильно.

Я вам описывал примерный алгоритм:
1. получаем имена всех полей таблицы в массив.
2. запускаем цикл нужного вам размера.
3. проверяем, если нужного поля нет - создаем его.

"1. получаем имена всех полей таблицы в массив." - это без вопросов.
Цикл то как раз реализовать не могу.
GriFFoN вне форума Ответить с цитированием
Старый 02.09.2011, 15:11   #15
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от GriFFoN Посмотреть сообщение
Цикл то как раз реализовать не могу.
Вот так примерно:
PHP код:
// кол-во итераций цикла
$len 14;
// массив с имеющимися полями в таблице
$columns = array('col_1''col_2''col_5''col_9');

for(
$i 1$i <= $len$i++){
    if(!
in_array('col_' $i$columns)){
        
// если такого поля нет - добавляем
        
mysql_query("ALTER TABLE `table_name` ADD `col_" $i "` TEXT");
    }

Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как извлечь в один массив данные из одного столбца в MySQL ? Novichok PHP Помощь студентам 0 25.03.2011 21:39
Проверка есть ли такая запись в таблице Uxas Помощь студентам 6 20.02.2011 19:55
сравнение ячеек и добавление нового столбца к таблице robbe Microsoft Office Excel 7 22.01.2010 10:30
Проверка наличия записи в таблице MargoNik БД в Delphi 2 08.07.2009 06:20
Выделение последнего столбца в таблице Busine2009 Microsoft Office Word 2 26.05.2009 07:20