将MySQL表值分配给变量的更简单方法

时间:2013-04-12 04:48:38

标签: php mysql

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

3 个答案:

答案 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

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

答案 2 :(得分:1)

就像做

一样简单
extract($row);

你的循环看起来像

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

PHP Manual