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