2011-03-24 111 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