我有一个名为' 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 ....直到表值结束时。 我不知道如何做到这一点以及哪个循环将完成我的任务..
答案 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)
}
希望这有帮助