1

我想知道是否有一种更简单的方法可以将所有不同的列分配给一个变量。我有超过 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']; 
}
4

3 回答 3

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.
于 2013-04-12T04:55:37.927 回答
2

编辑:查看其他人的示例,使用extract()which 与我在这里的 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'];

..ETC

基本上,“points”是第一个键的名称,而变量的名称为“points”,因此您得到 variable $points

http://php.net/manual/en/language.variables.variable.php

于 2013-04-12T04:53:08.550 回答
1

就像做一样简单

extract($row);

你的循环看起来像

while ($row = mysqli_fetch_array($results))
{
    extract($row);
    echo $intro;
}

PHP 手册

于 2013-04-12T04:54:05.717 回答