Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择具有逗号分隔值的MySQL列/行_Php_Mysql_Csv - Fatal编程技术网

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

Php 选择具有逗号分隔值的MySQL列/行,php,mysql,csv,Php,Mysql,Csv,假设我有以下表格信息 +-------------+---------------+ + id + letters + +-------------+---------------+ + 1 + a, b, c, d, e + +-------------+---------------+ 我试图捕获列的值并将其存储在变量中: $result = mysql_query("SELECT letters FROM tbl WHERE id=

假设我有以下表格信息

+-------------+---------------+
+     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? **;
}
这个怎么样

 $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']);
}
你的问题不清楚。请提供更多详细信息以获得更好的答案:)

而不是

$1

$2

我会做一个“爆炸阵列”

$letter = explode(',', $data['letters']);
这样,您就可以通过简单的$letter[0]或$letter[1]访问您的信件

现在,上述代码的工作原理是假设您只运行一次while循环

如果您多次运行while循环,我会这样做:

$letter[] = explode(',', $data['letters']);
它由$letter[0][0]访问-第一个[]是获取number时的实例,第二个[]是要获取的字母

另一件事

Mysql已经过时/不会被使用/非常不安全,因此我建议您寻找Mysql的另一种替代方案,例如mysqli或PDO-最好在学习时使用这些,因为这样可以避免陷入糟糕的例程中。

您可以尝试以下方法:

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

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

所以在关系数据库中使用逗号分隔?哈哈。但是,这个问题与数据库无关。这仅仅是“如何拆分包含分隔符的字符串”?并不是真正的答案,但这对数据库设计来说是一个坏消息。您是否应该有一个参考id和五个条目的字母表?如果他从数据库中获得六个参数?并存储以逗号分隔的值。。。顺便说一句,不要使用mysql_*函数这个问题可能不清楚。。。但是使用mysqli,将关系更改为一对多[…]似乎很有帮助。。这里应该使用第三个表@Debflav