我应该采用什么最好的方法来解决这个问题

时间:2011-03-24 08:36:44

标签: php mysql

注意:此问题已发布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());
       }
}


或其他用于此的东西可以保持速度和一致性。

3 个答案:

答案 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());
    }
}