I am trying to add a new column to my MYSQL table using PHP. I am unsure how to alter my table so that the new column is created. In my assessment table I have
assessmentid | q1 | q2 | q3 | q4 | q5
Say I have a page with a textbox and i type q6 in to the textbox and press a button then the table is updated to
assessmentid | q1 | q2 | q3 | q4 | q5 | q6
Thanks in advance
<?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>
your table:
you can also do
You can add a new column at the end of your table
ALTER TABLE assessment ADD q6 VARCHAR( 255 )
Add column to the begining of table
ALTER TABLE assessment ADD q6 VARCHAR( 255 ) FIRST
Add column next to a specified column
ALTER TABLE assessment ADD q6 VARCHAR( 255 ) after q5
and more options here
Based on your comment it looks like your'e only adding the new column if:
mysql_query("SELECT * FROM assessment");
returns false. That's probably not what you wanted. Try removing the '!' on front of $sql in the first 'if' statement. So your code will look like:you can change
VARCHAR( 255 ) NOT NULL
into what everdatatype
you want.You should look into normalizing your database to avoid creating columns at runtime.
Make 3 tables:
Put questions and assessments in their respective tables and link them together through assessment_question using foreign keys.
Something like:
Haven't tested it but should work.