在mysql表中提取存储的值并将其存储在每个单词的不同变量中

时间:2015-01-28 10:23:08

标签: php mysql

我有一个名为' info'的MySQL数据库。有一张表'详细信息'在里面。它有一个名为' listing'的字段。 我用这样的字段列表连续提取数据:

$sql = " SELECT * FROM details WHERE id = '$id'";
$select = msqli_query($sql, $db);
$row = msqli_fetch_row($select);
$list = row['listing'];

字段列表包含以下内容:" a,b,gjshj,wuk,akk" 我希望将每个用逗号分隔的单词存储在不同的变量中,例如list1,list2,list3 ....直到表值结束时。 我不知道如何做到这一点以及哪个循环将完成我的任务..

4 个答案:

答案 0 :(得分:1)

首先创建新的数组,如:

for ($i = 0; $i < sizeof($list); $i++) {
  $new_list['list'.$i] = $list[$i];
}

然后使用extract()功能。

  

此函数将键视为变量名称,将值视为变量   值。对于每个键/值对,它将创建一个变量。

extract($new_list);

现在你有变种$list1$list2 ...

echo $list1;

请参阅IDEONE

答案 1 :(得分:1)

看看http://php.net/manual/en/function.explode.php

$newArray = explode("," , $listing);

然后结果就可以在阵列中使用了。如果你真的想要将它们解析为非数组变量,那么你需要做这样的事情:

$i = 0;
foreach($newArray as $key => $value){
    $i++;
    $newvar = "list" . $i;
    $$newvar = $value;
}

这将为您提供解析为变量$ list1,$ list2等的列表中的值。

答案 2 :(得分:0)

试试这个

$sql = " SELECT * FROM details WHERE id = '$id'";
$select = msqli_query($sql, $db);
while($row = msqli_fetch_row($select)){
    $list = $row['listing'];
    echo $list;
}
<$>在$ select执行查询后, 使用while循环

循环查询结果

答案 3 :(得分:0)

我认为你正在寻找这个,虽然我不知道为什么

$sql = " SELECT * FROM details WHERE id = '$id'";
$select = msqli_query($sql, $db);
$row = msqli_fetch_row($select);
$list = explode(',', $row['listing'];

foreach ($list as $k => $v);
    $i = $k+1;
    $list$i = $v;
}

以上将给你:

$list1 = 'a';
$list2 = 'b';
$list3 = 'c';
$list4 = 'd';
$list5 = 'e';

如果要将它们插入数据库中,请将foreach更改为:

foreach ($list as $k => $v) {
    $query = "INSERT INTO table (columnname) VALUES ('".$v."')";
    // Do your query as you are used to (mysql, mysqli, pdo)
}

希望这有帮助