it-swarm.com.de

So fügen Sie der MYSQL-Tabelle eine neue Spalte hinzu

Ich versuche, meiner MYSQL-Tabelle mit PHP eine neue Spalte hinzuzufügen. Ich bin nicht sicher, wie ich meine Tabelle ändern soll, damit die neue Spalte erstellt wird. In meiner Bewertungstabelle habe ich

assessmentid | q1 | q2 | q3 | q4 | q5 

Angenommen, ich habe eine Seite mit einem Textfeld und tippe q6 in das Textfeld ein und drücke eine Taste, dann wird die Tabelle auf aktualisiert

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

Danke im Voraus

<?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>
86
Steven Trainor

dein Tisch:

q1 | q2 | q3 | q4 | q5

sie können auch tun

ALTER TABLE yourtable ADD q6 VARCHAR( 255 ) after q5
218
Dima
 $table  = 'your table name';
 $column = 'q6'
 $add = mysql_query("ALTER TABLE $table ADD $column VARCHAR( 255 ) NOT NULL");

sie können VARCHAR( 255 ) NOT NULL in das gewünschte datatype ändern.

7
Abdullah Salma
  • Sie können am Ende Ihrer Tabelle eine neue Spalte hinzufügen

    ALTER TABLE assessment ADD q6 VARCHAR( 255 )

  • Fügen Sie am Anfang der Tabelle eine Spalte hinzu

    ALTER TABLE assessment ADD q6 VARCHAR( 255 ) FIRST

  • Spalte neben einer angegebenen Spalte hinzufügen

    ALTER TABLE assessment ADD q6 VARCHAR( 255 ) after q5

und mehr Optionen hier

6
amarnath

So etwas wie:

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

Habe es nicht getestet, sollte aber funktionieren.

3
Glitch Desire

Basierend auf Ihrem Kommentar sieht es so aus, als würden Sie die neue Spalte nur hinzufügen, wenn: mysql_query("SELECT * FROM assessment"); false zurückgibt. Das ist wahrscheinlich nicht das, was du wolltest. Entfernen Sie das '!' vor $ sql in der ersten 'if'-Anweisung. Ihr Code sieht also so aus:

$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...
0
Ryan Epp

Sie sollten sich mit der Normalisierung Ihrer Datenbank befassen, um zu vermeiden, dass zur Laufzeit Spalten erstellt werden.

Mache 3 Tische:

  1. bewertung
  2. frage
  3. assessment_question (Spalten assessmentId, questionId)

Fügen Sie Fragen und Bewertungen in die entsprechenden Tabellen ein und verknüpfen Sie sie durch assessment_question mit Fremdschlüsseln.

0
Erik van Velzen
ALTER TABLE `stor` ADD `buy_price` INT(20) NOT NULL ;
0
Shinwar ismail

für 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"
);}
0
T.Todua