Estou tentando adicionar uma nova coluna à minha tabela MYSQL usando PHP. Não tenho certeza de como alterar minha tabela para que a nova coluna seja criada. Na minha mesa de avaliação tenho:
assessmentid | q1 | q2 | q3 | q4 | q5
Digamos que eu tenha uma página com uma caixa de texto e digito q6
na caixa de texto e pressiono um botão e a tabela é atualizada para:
assessmentid | q1 | q2 | q3 | q4 | q5 | q6
Meu código:
<?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>
assessment
ADDq6
INT (1) NOT NULL APÓSq5
"); echo 'Q6 criado'; } ELSE {// a partir daqui, continue a página normalmente! echo 'Q6 já existe!';mysql_error()
que deu errado. por exemplo$result = mysql_query($sql) or die(mysql_error());
.Respostas:
sua mesa:
você também pode fazer
fonte
assessment
ADDq6
INT (1) NOT NULL AFTERq5
");você pode mudar
VARCHAR( 255 ) NOT NULL
para odatatype
que quiser.fonte
textbox
? se você quer dizer oinput
quetype='text'
escrever$column = $_POST['textbox'];
name='textbox'
ou alterar a caixa de texto$column = $_POST['textbox'];
para o nome da entrada ...Você pode adicionar uma nova coluna no final de sua tabela
ALTER TABLE assessment ADD q6 VARCHAR( 255 )
Adicionar coluna ao início da tabela
ALTER TABLE assessment ADD q6 VARCHAR( 255 ) FIRST
Adicionar coluna ao lado de uma coluna especificada
ALTER TABLE assessment ADD q6 VARCHAR( 255 ) after q5
e mais opções aqui
fonte
Algo como:
Não testei, mas deve funcionar.
fonte
$name
atribuição por:$name = $db->mysqli_real_escape_string($_GET['input']);
presumindo que você envie seu formulário normalmente. Se for ajax, é um pouco mais complexo.Com base no seu comentário, parece que você só está adicionando a nova coluna se:
mysql_query("SELECT * FROM assessment");
retornar falso. Provavelmente não era isso que você queria. Tente remover o '!' na frente de $ sql na primeira instrução 'if'. Portanto, seu código será semelhante a:fonte
Você deve normalizar seu banco de dados para evitar a criação de colunas em tempo de execução.
Faça 3 mesas:
Coloque as perguntas e avaliações em suas respectivas tabelas e vincule-as por meio de assessment_question usando chaves estrangeiras.
fonte
para WORDPRESS:
fonte
fonte