Ответ 1
Ваша таблица:
q1 | q2 | q3 | q4 | q5
вы также можете сделать
ALTER TABLE yourtable ADD q6 VARCHAR( 255 ) after q5
Я пытаюсь добавить новый столбец в мою таблицу 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
на то, что вам нужно datatype
.
Вы можете добавить новый столбец в конце таблицы
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 таблицы:
Поместите вопросы и оценки в их соответствующие таблицы и соедините их вместе через функцию_ценова с использованием внешних ключей.
для 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"
);}
ALTER TABLE 'stor' ADD 'buy_price' INT(20) NOT NULL ;