0

動的フィールド名を持つテーブルにデータを挿入したいと思います。私のスクリプトは、データとともに挿入する必要のあるすべての列名をリストします。動的フィールドへのユーザー入力をテーブルに挿入してほしい。たとえば、フィールドCarの下のデータは1であり、Boatデータは0です。以下に私のスクリプトを示します。

<?php
$connect=mysql_connect('localhost','root','');
$db_select=mysql_select_db('db_run',$connect);

$sql="SELECT column_name FROM information_schema.columns WHERE table_schema = 'db_run' AND table_name = 'run';";
$sql_query=mysql_query($sql);
$runfields=array();

while($rows=mysql_fetch_assoc($sql_query)){
    $rows['column_name']."<br>";
    $runfields[]=$rows['column_name'];
}

echo '<pre>';
print_r($runfields);
echo '</pre>';
$cntrunfields=count($runfields);
for($c=2;$c<$cntrunfields;$c++){
    echo $run=$runfields[$c].'<br>';
    echo $results=$_POST[$run];
    echo "<form action='' method='post'>";
    echo  "<select name='$runfields[$c]' id='$runfields[$c]'>
            <option value='-1'>Select option</option>
            <option value='0'>No</option>
            <option value='1'>Yes</option>
            </select>";
        echo "<input type=\"submit\" name=\"sss\" id=\"sss\" value=\"Submit\" />"   ;     
        echo "</form>";
    echo '<br>';

    echo $runfields[$c].' is equal to '.$results.'<br>';
}
?>

テーブルに3つの列名がある場合、フォームには3つの新しい選択フォームタグが表示され、テーブルで送信できるようになります。このセクションに示されているように。

    echo "<form action='' method='post'>";
    echo  "<select name='$runfields[$c]' id='$runfields[$c]'>
            <option value='-1'>Select option</option>
            <option value='0'>No</option>
            <option value='1'>Yes</option>
            </select>";
        echo "<input type=\"submit\" name=\"sss\" id=\"sss\" value=\"Submit\" />"   ;     
        echo "</form>";
4

1 に答える 1

0

新しいフィールドに新しいレコードを追加する

まだ存在しないフィールドに新しいレコードを追加する場合は、テーブル構造を変更するステートメント ( ALTER TABLE yourTable ADD...) と新しいデータを追加するステートメント ( ) の 2 つのステートメントが必要INSERT INTO yourTable ...です。

列を動的に追加することを思いとどまらせることは認めざるを得ません。それが良いアイデアかどうかはわかりませんし、データベースの設計が悪いように思えます。

于 2013-01-04T10:18:07.277 に答える