簡體   English   中英

動態列名稱php mysql

[英]Dynamic column names php mysql

我想將數據插入具有動態字段名稱的表中。 我的腳本列出了所有需要插入數據的列名。 我希望用戶將動態字段輸入到表中。 例如,在字段Car ,數據為1Boat數據為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個新的select表單標記,並能夠在表中提交。 如本節所示。

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

在新字段中添加新記錄

如果要在尚不存在的字段中添加新記錄,則需要兩條語句,一條用於更改表結構( ALTER TABLE yourTable ADD... ),一條用於添加新數據( INSERT INTO yourTable ... )。

我必須承認,我不鼓勵您動態添加列:我不確定這是一個好主意,而且聽起來像是數據庫的設計不好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM