选择具有逗号分隔值的MySQL列/行

时间:2015-02-10 08:17:21

标签: php mysql csv

假设我有以下表格信息

+-------------+---------------+
+     id      +    letters    +
+-------------+---------------+ 
+      1      + a, b, c, d, e +  
+-------------+---------------+

我正在尝试捕获列的值并将它们存储在变量中:

$result = mysql_query("SELECT letters FROM tbl WHERE id=1");    
while ($data = mysql_fetch_array($result)) { 

// Declare captured db variables
$letter1 = ** what comes here? **;
$letter2 = ** what comes here? **;
}

3 个答案:

答案 0 :(得分:3)

您可以尝试这种方式:

$result = mysql_query("SELECT letters FROM tbl WHERE id=1");
$letters = explode(',',mysql_fetch_array($result));

现在您可以使用数组访问任何字母,例如$letters[0]; //a

答案 1 :(得分:1)

这个怎么样?

 $result = mysql_query("SELECT letters FROM tbl WHERE id=1");    
    while ($data = mysql_fetch_array($result)) { 

    // Declare captured db variables
   /* list($letter1,$letter2,$letter3,$letter4,$letter5) = explode(',' , $data['letters']);
    */
     $letters = array();
     // letters array will have the exploded letters     
     $letters = explode(',' , $data['letters']);
}

你的问题不清楚。请提供更多详细信息以获得更好的答案:)

答案 2 :(得分:1)

而不是

  

$ letter1

     

$ letter2

我会做一个'数组爆炸。

$letter = explode(',', $data['letters']);

这样你就可以用简单的$ letter [0]或$ letter [1]

来表达你的字母

现在上面的代码假设您只运行while循环ONCE。

如果你不止一次地浏览了while循环,我就这样做:

$letter[] = explode(',', $data['letters']);

由$ letter [0] [0]访问 - 第一个[]是获取时的数字实例,第二个[]是你想要获取的字母。

另一件事

Mysql已经过时/不会被使用/非常不安全因此我建议你找到另一种mysql替代品,例如mysqli或PDO - 最好在学习时使用这些,因为这样你就可以避免陷入困境糟糕的惯例。