Intereting Posts
Остановка запроса MySQL после первой строки Переключение php на mysqli: проблема num_rows Как узнать, какой php.ini используется? Какой самый лучший и простой способ заполнить раскрывающийся список, основанный на другом выпадающем меню Как найти, какие письма находятся в одних и тех же списках? Как использовать объекты из других пространств имен и как импортировать пространства имен в PHP Профилирование приложений: использование памяти Как разделить разделенный запятыми отдельный столбец на несколько столбцов в php mysql PHPUnit: Как утверждать, что класс расширяет другой класс? Как передать данные POST в PHP-CGI? Как использовать exec () в php в сочетании с командой ssh ​​'hostname'? Код для получения размера файла после загрузки и вставки в таблицу не работает ожидаемый , но получил Печать этикеток Avery 5160 с FPDF Угловая HTTP-почта для PHP и неопределенная

Как добавить новый столбец в таблицу MYSQL

Я пытаюсь добавить новый столбец в мою таблицу MYSQL с помощью PHP. Я не уверен, как изменить таблицу, чтобы создать новый столбец. В моей таблице оценки у меня есть

assessmentid | q1 | q2 | q3 | q4 | q5 

Скажем, у меня есть страница с текстовым полем, и я ввожу q6 в текстовое поле и нажимаю кнопку, тогда таблица обновляется до

 assessmentid | q1 | q2 | q3 | q4 | q5 | q6 

заранее спасибо

 <?php include 'core/init.php'; include 'core/admininit.php'; include 'includes/overall/overall_header.php'; adminprotect_page(); include 'includes/adminmenu.php'; ?> <?php mysql_query("ALTER TABLE `assessment` ADD newq INT(1) NOT NULL AFTER `q10`"); ?> <h1>Input Career Name</h1> <form method="post" action=""> Career Name <input type="text" name="newq" size="20"> <input type="submit" name="submit" value="Submit"> </body> </html> 

ваш стол:

 q1 | q2 | q3 | q4 | q5 

вы также можете сделать

 ALTER TABLE yourtable ADD q6 VARCHAR( 255 ) after q5 
  $table = 'your table name'; $column = 'q6' $add = mysql_query("ALTER TABLE $table ADD $column VARCHAR( 255 ) NOT NULL"); 

вы можете изменить VARCHAR( 255 ) NOT NULL на то, что вам нужно.

  • Вы можете добавить новый столбец в конце таблицы

    ALTER TABLE assessment ADD q6 VARCHAR( 255 )

  • Добавить столбец в начало таблицы

    ALTER TABLE assessment ADD q6 VARCHAR( 255 ) FIRST

  • Добавить столбец рядом с указанным столбцом

    ALTER TABLE assessment ADD q6 VARCHAR( 255 ) after q5

и больше вариантов здесь

Что-то вроде:

 $db = mysqli_connect("localhost", "user", "password", "database"); $name = $db->mysqli_real_escape_string($name); $query = 'ALTER TABLE assesment ADD ' . $name . ' TINYINT NOT NULL DEFAULT \'0\''; if($db->query($query)) { echo "It worked"; } 

Не проверял, но должен работать.

Основываясь на вашем комментарии, похоже, что вы добавили новый столбец, если: mysql_query("SELECT * FROM assessment"); возвращает false. Вероятно, это не то, что вы хотели. Попробуйте удалить '!' перед $ sql в первом выражении if. Таким образом, ваш код будет выглядеть так:

 $sql=mysql_query("SELECT * FROM assessment"); if ($sql) { mysql_query("ALTER TABLE assessment ADD q6 INT(1) NOT NULL AFTER q5"); echo 'Q6 created'; }else... 

Вы должны изучить нормализацию своей базы данных, чтобы избежать создания столбцов во время выполнения.

Сделайте 3 таблицы:

  1. оценка
  2. вопрос
  3. оценка_question (столбцы evaluationId, questionId)

Поместите вопросы и оценки в их соответствующие таблицы и соедините их вместе через valu_question с использованием внешних ключей.

для WORDPRESS:

 global $wpdb; $your_table = $wpdb->prefix. 'My_Table_Name'; $your_column = 'My_Column_Name'; if (!in_array($your_column, $wpdb->get_col( "DESC " . $your_table, 0 ) )){ $result= $wpdb->query( "ALTER TABLE $your_table ADD $your_column VARCHAR(100) CHARACTER SET utf8 NOT NULL " //you can add positioning phraze: "AFTER My_another_column" );}