2016-09-19 11 views
1

私はこのような10行で、「果物」、MySQLデータベースを持っている:=
$りんご:PHP:MySQL Queryから変数にどのように値を割り当てることができますか?

id | variable | value 
1 | apples | 5 
2 | oranges | 6 

どのように効率的にPHP変数の値を割り当てるためにクエリを使用することができますので、私は他の場所でそれらを使用することができます5;
$ oranges = 6;

または、別の言い方をすると、データベースの「変数」列に基づいてPHP変数に値を割り当てます。

私はそれを動作させることができる唯一の方法はこれです:

$con = mysqli_connect($servername, $username, $password, $dbname); 

$sql="SELECT variable, value FROM fruits where variable = 'oranges'"; 
$result=mysqli_query($con,$sql); 
$row=mysqli_fetch_array($result,MYSQLI_ASSOC); 
$oranges = $row["value"]; 

私はこれを10回行うことができますが、それはひどいようで、おそらくループのいくつかの並べ替えを含む、より良い方法がなければなりません。この(明確に)完全なコードでは専門家ではないので、どのようにすべての作品が非常に高く評価されるかを見ることができます。

ありがとうございました!

+3

。 '$ fruits ['variable']] = $ row ['value'];'のような配列を持っているなら 'echo $ fruits ['oranges'];'を使ってください。 *未知の変数... *通知)を避けるためにループに入る。 – Qirel

+0

'extract array_column($ row、 'value'、 'variable');' @Qirelのように、代わりに配列で作業する方が良い –

+0

リンゴ、オレンジのようなdbの値の順序を知っていますか? –

答えて

2

可変変数の例:

$sql="SELECT * FROM fruits"; 
$result = mysqli_query($conn,$sql); 

if ($result->num_rows > 0) { 

    while ($row = $result->fetch_assoc()) { 
     $variable = $row["variable"]; 
     $$variable = $row["value"]; 

     echo("Name: " . ${variable} . " Value: " . $$variable . "<br>"); 
    } 
} 

敬具

-1

私はそうする理由が一つもありません。 配列は変数そのものです。 $ rows [2] ['variable']または$ rows [1] ['value']を使用すると、単一の要素にアクセスするのが非常に簡単です。

しかし、本当に混乱が必要な場合は、extract()とforeachループを組み合わせることができます。ここで

1

もこれを使用することができます。ほぼすべてのシナリオでは、それは代わりに、配列を使用することをお勧めしますが、あなたは、[変数の変数](http://php.net/manual/en/language.variables.variable.php)を探しているかもしれない

$con = mysqli_connect($servername, $username, $password, $dbname); 

$sql="SELECT variable, value FROM fruits"; 
$result=mysqli_query($con,$sql); 
while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){ 
    ${row["variable"]}= $row["value"]; 
}