注意:此问题已发布here
大家好,
我有15个预定清单关键字和每个关键字都有mysql表。现在我想做的是
首先,我想检查一个关键字,然后将其插入相关表中。这个过程继续进行,并再次在foreach下进行
环。
我的问题是我应该使用什么样的方法,即if else语句,如
foreach($keyword as $key=>$val) { if($val==='keyword1' { $query="insert into keyword1_tab values('', $val); $rs=mysql_query($query) or die(mysql_error()); } else if($val==='keyword2') { $query="insert into keyword2_tab values('', $val); $rs=mysql_query($query) or die(mysql_error()); } else . . . . . else if($val==='keyword15') { $query="insert into keyword3_tab values('', $val); $rs=mysql_query($query) or die(mysql_error()); } }
或其他用于此的东西可以保持速度和一致性。
答案 0 :(得分:1)
$tables = array('keyword1' => 'keyword1_tab', 'keyword2' => 'keyword2_tab' ...);
foreach($keyword as $key=>$val)
{
if (isset($tables[$val]))
{
$query="insert into `".$tables[$val]."` values('', '".$val."')";
$rs = mysql_query($query) or die(mysql_error());
}
}
答案 1 :(得分:1)
这是唯一合适的方式 对同一事项使用单独的表是违反所有规则的 您需要学习关系数据库设计的基础知识,并使您的数据库模式符合这些基本规则。
我觉得这些插页没什么意义。你一般在做什么?所有插入的目的是什么?
答案 2 :(得分:0)
使用开关盒可以让它更漂亮:
foreach($keywords as $key=>$val){
$query = "";
switch($val){
case "keyword1":
$query = "YOUR_QUERY_HERE";
break;
case "keyword2":
$query = "YOUR_QUERY_HERE";
break;
}
if(query != ""){
$rs = mysql_query($query) or die(mysql_error());
}
}