如何从数据库中检索逗号的seaparated值?

时间:2016-01-18 07:10:27

标签: php

我想从数据库中检索逗号分隔值并将每个值存储在变量中。

例如:在我的专栏中,我有以下内容:2,3,5,8,9,21

我想将数字存储在这样的变量中:

$a=2
$b=3
$c=5 
// and so on…

3 个答案:

答案 0 :(得分:1)

如果你想加载包含用','或'。'分隔的整数的字符串。或'a'或';'做:

  • 如果你想去',':

    $ char =',';

  • 如果你想去'。':

    $ char ='。';

  • 如果你想去'a':

    $ char ='a';

  • 如果你想去';':

    $ char =';';

(我添加了这个来帮助任何有字符串语法的人)

要连接,您可以执行(Documentation):

$connection = mysql_connect('adress', 'mysql_user', 'mysql_password');

好的,我们有联系。现在获取数据(Documentation)。

$database = "DatabaseWithTableWithIntegers";
$table = "TableWithIntegers";
$rowname = "RowWithIntegers";
$sql = "USE $database; SELECT $rowname FROM $table;";
$result = mysql_query ($sql, $connection);

现在声明类似list:

$arr = []; // array for fetching
$vrr = []; // array for fetched

下一步是获取行(Documentation):

while($row = mysql_fetch_row($result)){

如果分隔符是“,”,则行具有类似“2,142,124,53,3511,513,531,53”的字符串,并且该记录存在于数据库/表中。 魔法函数被爆炸,它将所有段切成一个数组(Documentation):

$arr = explode($char, $row[$rowname]); //rowname is to be 100% sure

最后一件事是进行转换(Documentation

for($arr as &$a){
$value = intval($a);
array_push($vrr, $value); // to save the value into vrr([Documentation][6])
}}

答案 1 :(得分:0)

如果您将数据以a1,a2,a3的形式存储在一个列中,为什么不只是获取数据并使用explode()方法将其拆分?

如果您使用关联数组,则在将数据存储为字符串时使用json_encode(),然后在从数据库获取后使用json_decode()对其进行解码

答案 2 :(得分:0)

看看下面的解决方案:

方法1

$alphabet = range('a', 'z');
$str = '2,3,5,8,9,21';
$str_array = explode(',', $str);
foreach($str_array as $k=>$v){
    ${$alphabet[$k]} = $v;
}

echo $a,$b,$c,$d;

方法2

$var = 'a';

$str = '2,3,5,8,9,21';
$str_array = explode(',', $str);
foreach($str_array as $k=>$v){
    ${$var} = $v;
    ++$var;
}
echo $a,$b,$c,$d;

两种解决方案的输出:

2358