112 votes

Comment ajouter une nouvelle colonne à une table MYSQL ?

J'essaie d'ajouter une nouvelle colonne à ma table MYSQL en utilisant PHP. Je ne sais pas comment modifier ma table pour que la nouvelle colonne soit créée. Dans ma table d'évaluation, j'ai :

assessmentid | q1 | q2 | q3 | q4 | q5 

Disons que j'ai une page avec une zone de texte et que je tape q6 dans la zone de texte et appuyez sur un bouton, le tableau est alors mis à jour :

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

Mon code :

<?php 
  mysql_query("ALTER TABLE `assessment` ADD newq INT(1) NOT NULL AFTER `q10`");
?>
  <form method="post" action="">
    <input type="text" name="newq" size="20">
    <input type="submit" name="submit" value="Submit">

256voto

Dima Points 4800

Votre table :

q1 | q2 | q3 | q4 | q5

vous pouvez également faire

ALTER TABLE yourtable ADD q6 VARCHAR( 255 ) after q5

10voto

Abdullah Salma Points 132
 $table  = 'your table name';
 $column = 'q6'
 $add = mysql_query("ALTER TABLE $table ADD $column VARCHAR( 255 ) NOT NULL");

vous pouvez changer VARCHAR( 255 ) NOT NULL dans ce que datatype que vous voulez.

8voto

amarnath Points 769
  • Vous pouvez ajouter une nouvelle colonne à la fin de votre tableau

    ALTER TABLE assessment ADD q6 VARCHAR( 255 )

  • Ajouter une colonne au début du tableau

    ALTER TABLE assessment ADD q6 VARCHAR( 255 ) FIRST

  • Ajouter une colonne à côté d'une colonne spécifiée

    ALTER TABLE assessment ADD q6 VARCHAR( 255 ) after q5

et plus d'options ici

4voto

Alula Errorpone Points 6304

Quelque chose comme :

$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";
}

Je ne l'ai pas testé mais cela devrait fonctionner.

2voto

Erik van Velzen Points 342

Vous devriez envisager de normaliser votre base de données pour éviter de créer des colonnes au moment de l'exécution.

Faites 3 tables :

  1. évaluation
  2. question
  3. assessment_question (colonnes assessmentId, questionId)

Placez les questions et les évaluations dans leurs tables respectives et reliez-les entre elles via assessment_question en utilisant des clés étrangères.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X