将简单列表插入MySQL表(php)

时间:2013-04-05 05:30:25

标签: php mysql string insert split

经过一番寻找解决方案后。我认为是时候在stackoverflow上问大脑了。

我正在寻找一种方法来获取列表,以字符串的形式,使用逗号将其拆分并插入mySQL表中的列。

列表如下:

  
      
  1. Tim Moltzen,2。Joel Reddy,3。Blake Ayshford,4。Chris Lawrence,5。James Tedesco,6。Benji Marshall,7。Braith Anasta,8。Aaron Woods,9。Robbie Farah,10。Jack Buchanan ,11。Bodene Thompson,12。Liam Fulton,13。Adam Blair,14。Ben Murdoch Masila,15。Ava Seumanufagai 16. Matt Bell,17。Eddy Pettybourne
  2.   

从该列表中,需要拆分两件事。号码和名称。

因此,该号码将被插入" player_number"列和名称为" player_name"。当然,逗号只用于间距,不需要对表格感兴趣。

非常感谢任何有关如何拆分字符串然后插入表格的帮助。

EDIT ::

我会看到我可以使用爆炸并运行循环将它们插入表中。

3 个答案:

答案 0 :(得分:1)

$string="1. Tim Moltzen, 2. Joel Reddy, 3. Blake Ayshford, 4. Chris Lawrence, 5. James Tedesco, 6. Benji Marshall, 7. Braith Anasta, 8. Aaron Woods, 9. Robbie Farah, 10. Jack Buchanan, 11. Bodene Thompson, 12. Liam Fulton, 13. Adam Blair, 14. Ben Murdoch Masila, 15. Ava Seumanufagai 16. Matt Bell, 17. Eddy Pettybourne";

$string=explode(', ',$string);
foreach($string as $val)
    {
    $val=explode('. ',$val);
    mysql_query('INSERT INTO yourtable (col_number,col_name) VALUES ("'.$val[0].'.","'.$val[1].'")';
    }

我不明白为什么要插入句号和数字,因为这意味着列必须不必是varchar而不是INT。无论如何,就像你问的那样。

如果您愿意,请将mysql_query更改为mysqli_query

要在数字之间爆炸,请使用:

$string=preg_split('/ ?[0-9]+\.? /', $string, NULL, PREG_SPLIT_NO_EMPTY);

但现在每个名字都没有任何数字。所以你将无法像这样插入它。

答案 1 :(得分:0)

 $abc= "1.Tim Moltzen, 2. Joel Reddy, 3. Blake Ayshford, 4. Chris Lawrence, 5. James Tedesco, 6. Benji Marshall, 7. Braith Anasta, 8. Aaron Woods, 9. Robbie Farah, 10. Jack Buchanan, 11. Bodene Thompson, 12. Liam Fulton, 13. Adam Blair, 14. Ben Murdoch Masila, 15. Ava Seumanufagai, 16.Matt Bell, 17. Eddy Pettybourne";
     $def = explode(",", $abc);
$countDEF= count($def);

for($a=0;$a<=$countDEF-1;$a++){
     $ghi = explode(".", $def[$a]);
     $countGHI = $ghi;
    for($b=0;$b<=1;$b++){
        echo $ghi[0]."-".$ghi[1]."<br>";
        //  do your query here.
        // ghi[0] is the number and ghi[1] is the fullname
    break; }

     }

尝试运行此操作并获得一些想法。

答案 2 :(得分:0)

您可以直接在MySQL表中导入而无需PHP。你只需要使用技巧。

如果您的文件在数据中具有相同的模式,那么您只需将“,”替换为“\ r \ n”,然后再将“替换为CSV格式的数据。” “,”

现在您可以使用MySQL Load Infile将数据导入数据库。

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

load data local infile 'file_location' into table tbl_name fields terminated by ',' lines terminated by '\r\n';