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">

1voto

Ryan Epp Points 209

D'après votre commentaire, il semble que vous n'ajoutez la nouvelle colonne que si.. : mysql_query("SELECT * FROM assessment"); retourne faux. Ce n'est probablement pas ce que vous vouliez. Essayez d'enlever le '!' devant $sql dans la première instruction 'if'. Votre code ressemblera alors à ceci

$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...

1voto

snm-yah Points 2067

Pour 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"
);}

1voto

Shinwar ismail Points 135
ALTER TABLE `stor` ADD `buy_price` INT(20) NOT NULL ;

0voto

Hassan Munir Points 129

Le problème avec le ALTER TABLE dans le code PHP se trouve dans cette ligne :

mysql_query("ALTER TABLE assessment ADD newq INT(1) NOT NULL AFTER q10") ;

Il devrait être APRÈS q5 puisqu'il n'y a pas de q10 dans votre échantillon de table. Donc, cela devient ALTER TABLE assessment ADD newq INT(1) NOT NULL AFTER q5 ;

J'ai essayé la même logique dans mon propre tableau dans [Skyvia] et cela devrait fonctionner comme indiqué ci-dessous. J'ai ajouté la colonne de description après la colonne To dans la table Title.

[Skyvia] - le lien vers https://skyvia.com/query/online-mysql-query-builder

[image alter-table-add-column] enter image description here

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