Variablen an Create Table aus Schleife übergeben

Detter

Neuer Benutzer
Beiträge
1
Hallo, das letzte mal habe ich vor 10 Jahren programmiert, bin noch bei der Auffrischung.
Ich habe folgendes Problem in der 1. php Seite habe ich drei Formular Felder in dem die Datenbank festgelegt wird, der Name der Tabelle und die Anzahl der Spaltenüberschrift.
Diese werden mit POST an die nächste PHP Seite übergeben und sollen dann in der Datenbank gespeichert werden.



1. PHP Seite Datenbearbeitung_1.php

if($Bearbeitung === "Neue Tabelle")
{
?>
<form action="Datenbearbeitung_2.php" method="post">
<table>
<tr> <td width="400px">Datenbank Name: </td><td><select name="DBname">
<?php
$mysqli = new mysqli("localhost", "root", "");
$sql = "SHOW DATABASES";
$result = $mysqli->query($sql);
while($row = mysqli_fetch_array($result))
{
?><option> <?php echo $row[0]; ?> </option> <?php
}
?>
</select></td></tr>
<tr><td width="400px">Tabellen Name:</td><td><input type="text" name="TBname"></input></td></tr>
<tr><td width="400px">Spaltenzahl:</td><td><input type="text" name="SPzahl"></input></td></tr>

<tr><td width="400px"><input type="submit" name="action" value="WEITER!"></input><input type="hidden" name="Bearbeitung" value="<?php echo $Bearbeitung; ?>"> </td></tr>
</form>
</table>
<?php
}

In der 2. PHP Datenbearbeitung_2.php Seite werden die Eingabefelder mit SELECT erzeugt und dann mit POST an die nächste PHP Seite gesendet.

if($Bearbeitung === "Neue Tabelle")
{
?>
<table>
<form action="Datenbearbeitung_3.php" method="post">
<?php
echo "Neue Datenbank Tabelle in der Datenbank ".$DBname." mit dem Namen ".$TBname." und ".$SPzahl." Feldern erstellen! <br><br>";
for($i=0; $i < $SPzahl; $i++)
{
?> <tr><td> <?php echo "Feld".$i+1; ?> </td>
<?php $Feld = "Feld".$i;
?>
<td> <input type="text" name="<?php echo $Feld; ?>"> </input> </td></tr>
<?php
}
?>
<tr>
<td><input type="submit" name="action" value="WEITER!">
<input type="hidden" name="Bearbeitung" value="<?php echo $Bearbeitung; ?>">
<input type="hidden" name="SPzahl" value="<?php echo $SPzahl; ?>">
<input type="hidden" name="TBname" value="<?php echo $TBname; ?>">
<input type="hidden" name="DBname" value="<?php echo $DBname; ?>">
</form>
</td>
</tr>
</table>
<?php
}

Hier in der 3. PHP Seite Datenbearbeiten_3.php hänge ich fest, ich bekomme die Daten nicht alle, sondern höchstens eine Spaltenüberschrift in die Tabelle geschrieben.
Ich brauche einen denk Anstoß das zu verwirklichen.
Ich habe schon einiges ausprobiert aber jetzt gehen mir die Ideen aus!

Wie bekomme ich die Spaltenüberschriften die per Schleife aus POST gelesen werden in die CREATE TABLE Anweisung?


<?php
$DBname = $_POST['DBname'];
$Bearbeitung = $_POST['Bearbeitung'];
$TBname = $_POST['TBname'];
$SPzahl = $_POST['SPzahl'];

$link = mysqli_connect("localhost", "root", "", $DBname);

for($i=0; $i < $SPzahl; $i++)
{
$Feld = $_POST['Feld'.($i)];

echo $Feld;
$sql = "CREATE TABLE $TBname ($Feld text)"; //<--------------------PROBLEM
}

if(mysqli_query($link, $sql)){
echo "Table created successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
?>

Danke im voraus!
 
Werbung:
Du hast MySQL als Datenbank und kein M$-SQL-Server, also falsches Unterforum. Und Du hast ein reines PHP-Problem, also generell falsches Forum.

Davon abgesehen, wenn Du eine Anwendung so erstellst, daß die Anwender nach eigenem Gefühl Tabellen erstellen können, mit variable Anzahl Felder und unbekannten Datentyp, dann habe ich so das Gefühl, daß Du da konzeptionell etwas falsch machst.
 
Zurück
Oben