2017-03-01 3 views
-1

Ich habe ein Array von Spaltennamen und Spalten Datentypen und jetzt möchte ich eine MySQL-Tabelle mit diesen beiden Arrays erstellen. Hier ist mein Code so weit:Wie mysql Tabelle dynamisch mit PHP erstellen?

<?php 

//print_r($_GET); 
$col_names=[]; //this will store column names received from user 
$col_types=[];//this will store column data types selected by user 


if(isset($_GET['col_num'])){ 

$table_name=$_GET['table_name']; 
$n=$_GET['col_num']; 


for($i=0;$i<$n;$i=$i+1){ 
    $index_names = "col".$i; 
    $index_type = "type".$i; 
    $col_names[$i] = $_GET[$index_names]; 
    $col_types[$i] = $_GET[$index_type]; 
} 

} 

$con=mysqli_connect('localhost','root'); 
if(!$con){ 
die("Error conncecting: ". mysqli_error($con)); 
} 
else{ 
mysqli_select_db($con,'temp'); 

$query = "CREATE TABLE $table_name ( 
for($i=0; $i<$n ;$i=$i+1) 
{ 
echo "$col_names[$i]" . " " . "$col_types[$i]" . "(10)" 
} 
);"; 
/* 
    If suppose the col_names array contains : [Name,Age] and col_types contains: [Varchar,Int] then i need these two attributes to be incorporated in my Create query and so i have put them in a for loop. 
*/ 

mysqli_query($query); 
} 
?> 

Jetzt weiß ich, dass etwas nicht stimmt mit dem „Create Query“, die ich geschrieben habe, aber ich bin nicht in der Lage, herauszufinden, wie die query.Also zu gestalten, wie soll ich das Komma platzieren im Falle von mehreren Spalten?

+2

PHP-Syntax ist nicht gut .. einige Tutorial versuchen, wie String –

+0

verketten Was CREATE TABLE table_name $ ist ( for ($ i = 0 ; $ i <$ n; $ i = $ i + 1) 'Bitte tun Sie? Bitte Code einrücken und parametrisierte Abfragen verwenden. – chris85

+0

Ich habe viele Tutorials durchlaufen, aber ich bin nicht in der Lage, den Fehler zu wählen! Auch Ich bin nicht sicher, wie man ein Komma nach jedem Spaltennamen und Datentyp hinzufügen @ChetanAmeta –

Antwort

1

Sie falsch machen, so etwas wie diese,

$query = "CREATE TABLE $table_name ("; 
for($i=0; $i<$n ;$i=$i+1) 
{ 
    $query .= "$col_names[$i]" . " " . "$col_types[$i]" . "(10)" ; 
} 
$query .= "); "; 
echo $query;//output and check your query 
mysqli_query($query); 
+1

Vielen Dank @ detective404 .. Das hat funktioniert .. Das funktioniert aber nur, wenn in beiden Arrays ein Wert vorhanden ist. Wie ändere ich den Code für mehrere Werte mit Komma? –

+0

Ich habe die Antwort bekommen! Vielen Dank !! @detektiv404 –