2011-03-24 68 views
1

注意,最好的办法:这个问题是张贴here
大家好,

我有15个关键字predefind名单,有mysql表对每个关键字。现在我想要做的是 首先我想检查一个关键字,然后将其插入到相关表中。这个过程继续进行,并且再次在foreach 循环之下。 我的问题是,我应该用什么样的方式即是它的if else语句,像
什么是我应该采取这个PHP的问题

 
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

有没有一张桌子? – 2011-03-24 08:42:57

+0

不,有15个表查看我更新的查询thnx更正 – 2011-03-24 08:45:55

+2

为什么不只有一个表,并添加一个“关键字”字段? – Matt 2011-03-24 08:52:53

回答

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()); 
    } 
} 
+0

如果我想找到特定关键字的计数如果foreach循环计数keyword1 5次插入到表中然后如何 我知道关键字1的计数我应该为每个关键字放置i变量,并且当此关键字匹配变量是增色。 – 2011-03-24 09:11:23

+0

'$ keyword_counts = array_count_values($ keyword); foreach($ key_counts as $ key => $ key_count){...}' – biakaveron 2011-03-24 11:17:09

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()); 
    } 
} 
+0

'$ query =“”'' – 2011-03-24 08:47:28

+0

@source代码的目的是什么?我猜想确保变量总是被初始化。如果PHP配置设置为低阈值,那么'if($ query!=“”)'会引发错误。 – jensgram 2011-03-24 08:52:45

+0

@jensgram'if isset($ query){...}' – biakaveron 2011-03-24 11:41:59

1

你应该只使用一个表。期。

这是唯一正确的方法。
对于同一事物使用单独的表是违反所有规则的。
您需要了解关系数据库设计的基础知识,并使您的数据库模式适合这些基本规则。

虽然我在这些插入中看不出多少意义。一般你在做什么?所有插入的目的是什么?

+0

基本思想是有15个关键字,每个关键字的名称和类别都要统计一次关键字遇到的次数。并将该名称保存在该关键字的其他表中,以便将来当我将这些关键字与新关键字列表匹配时,首先匹配计数no(%),然后在另一个表中查找关键字的名称。 – 2011-03-24 09:16:43

+0

@souce你不得不问另一个问题描述所有关键字的东西,你会得到完整的和完整的答案。总之,你不应该保存关键字的数量,这个数字应该由SQL查询计数,从一个表 – 2011-03-24 09:21:40

+0

先生在这封电子邮件发送测试邮件'iphoned99 @ gmail.com'我会给你发送整个问题。 – 2011-03-24 09:34:30