2014-11-22 174 views
2

我是新鮮的學習者。PHP插入組合到mysql

我發現了一個難度「做PHP與MySQL插入組合數據」

示例:1,2,3,4的組合是:

123 
124 
134 
234 

我想插入到一個MySQL數據庫。

結果:

123 
124 
134 
234 
234 <= duplicate 

我無法找到問題出在哪裏是。非常感謝。 :-)

$lista = array($a,$b,$c,$d); 
$b=1; 

for ($i=0; $i<=3; $i++) { 
    for ($j=$b; $j<=4;$j++) { 
    for ($k=$j+1; $j<count($lista); $j++) { 

     printf($lista[$i].','.$lista[$j].'<br>'); 

     $sql="INSERT INTO table10(id) 
      VALUES($lista[$i]$lista[$j])"; 
     mysql_query($sql, $con); 

     }   
    } 
    $b++; 
} 

回答

3

您可以創建陣列,以避免重複數據

$dupList=array(); 
//declare this array before loop 

//Hold $lista[$i] and $lista[$j] jointly in a variable 
$newVal=$lista[$i].$lista[$j]; 
if (!in_array($newVal, $dupList)) { 

     $sql="INSERT INTO table10(id) VALUES ($newVal)"; 
     mysql_query($sql, $con); 
     array_push($dupList,$newVal); 
} 
+0

我陣列邏輯不是很好,我已將此添加到我的代碼之後。它出現錯誤。 「語法錯誤,意外的T_VARIABLE <從IF開始.....是否有什麼不對我?我添加的代碼作爲另一個,請評論。非常感謝你 – oshk100100 2014-11-22 07:38:34

+0

我已更新我的答案 – 2014-11-22 08:01:10

+0

嗨,我上傳了代碼,它似乎有效,但記錄仍然是重複的,我感到羞愧,對我來說是錯誤的,我花了將近2小時試圖修復它,它不起作用,我可以讓我的控制面板讓你檢查T^T。 – oshk100100 2014-11-22 10:24:45

1

我陣列邏輯不是很好,我已將此添加到我的代碼之後。它出現錯誤。

語法錯誤,意想不到的T_VARIABLE從IF < 開始..... 它說的是我錯了?我添加的代碼如下。

$lista = array($a,$b,$c,$d); 
$dupList=array(); 
//declare this array before loop 
$b=1; 


for ($i=0; $i<=3; $i++) { 
    for ($j=$b; $j<=4;$j++) { 
     for ($k=$j+1; $j<count($lista); $j++) { 
      if (!in_array($lista[$i]$lista[$j], $dupList)) { 
       $sql="INSERT INTO table10(id) VALUES ($lista[$i]$lista[$j])"; 
       mysql_query($sql, $con); 
       array_push($dupList,$lista[$i]$lista[$j]); 
       } 
      } 
     } 
    $b++; 
}