PHPを使用してMYSQLテーブルに新しい列を追加しようとしています。新しい列が作成されるようにテーブルを変更する方法がわかりません。私の評価表には
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を返します。それはおそらくあなたが望んでいたことではありません。 「!」を削除してみてください最初の 'if'ステートメントで$ sqlの前にあります。だからあなたのコードは以下のようになります。
$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つのテーブルを作ります。
それぞれの表に質問と評価を入れ、外部キーを使ってassessment_questionを通してそれらを一緒にリンクしてください。
ALTER TABLE `stor` ADD `buy_price` INT(20) NOT NULL ;
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"
);}