我想知道是否有更简单的方法将所有不同的列分配给变量。我有超过70来检查用户是否已获得特定歌曲。这是代码的缩短版本。我还没有完成所有的歌曲,我想知道是否有更简单的方法。
$results = mysqli_query($con,"Select * FROM users WHERE user_name ='$username'");
while ($row = mysqli_fetch_array($results))
{
$userpoints = $row['points'];
$intro = $row['intro'];
$fightingfires = $row['fightingfires'];
$may = $row['may'];
$crowdedstreet = $row['crowdedstreet'];
}
答案 0 :(得分:6)
是的,使用php extract()http://php.net/manual/en/function.extract.php
这是一个简单的例子:
$results = mysqli_query($con,"Select * FROM users WHERE user_name ='$username'");
while ($row = mysqli_fetch_array($results))
{
extract($row);
}
// This will give you variables for each item
// so you will get $points for what would have been $row['points'], etc.
答案 1 :(得分:2)
编辑:看看其他人使用extract()
的例子,它们对我在这里的foreach循环做了类似的事情:
尝试使用变量:
while ($row = mysqli_fetch_array($results))
{
foreach ($row as $column => $value) {
$$column = $value;
}
}
对于每一行,基本上您将加载与列名相同的变量。这就像在做:
$points = $row['points'];
$intro = $row['intro'];
$fightingfires= $row['fightingfires'];
$may = $row['may'];
$crowdedstreet= $row['crowdedstreet'];
...等
基本上,“points”是第一个键的名称,变量的名称为“points”,因此变量为$points
。
答案 2 :(得分:1)
就像做
一样简单extract($row);
你的循环看起来像
while ($row = mysqli_fetch_array($results))
{
extract($row);
echo $intro;
}