[英]Dynamic column names php mysql
我想將數據插入具有動態字段名稱的表中。 我的腳本列出了所有需要插入數據的列名。 我希望用戶將動態字段輸入到表中。 例如,在字段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個新的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.