2016-09-05 14 views
1

これが可能かどうかわかりませんが、mysqlデータベースのエントリを使用してPHP変数を作成しようとしています。PHPは自動的にmysqlデータベースの内容に基づいて変数を作成します

たとえば、次の変数を作成したいとしますが、私はgoogleを会社名がデータベースにあるものに置き換えたいとします。

$google = $row['companyname']; 
$google_ticker = $row['ticker']; 
$google_holding = $row['holding']; 

私はYahooなどの企業名と私のデータベース内の行を持っていたのであれば、次の代わりに表示されます:

$yahoo = $row['companyname']; 
$yahoo_ticker = $row['ticker']; 
$yahoo_holding = $row['holding']; 

私はそれをするために得るカントしかし、以下のさまざまなバリエーションを試してみました仕事(私は文句を言わない作業以下のコードを知っている、ものの一種のそのわずかの例では、私が試してみました):

$query = mysqli_query($conn, $sql); 
while ($row = mysqli_fetch_assoc($query)){ 
    $$row['companyname'] = $row['companyname']; 
    $$row['companyname']_ticker = $row['ticker']; 
    $$row['companyname']_holding = $row['holding']; 
} 

私はしかし、私をやって、それは次のようなものを使用して動作するように取得することができますこの方法は、私が知っている限り、手動で各変数を作成しなければならないことを意味します。私は私のデータベースにどのような会社名があるかによって変数を自動的に作成しようとしています。

$values = []; 
$query = mysqli_query($conn, $sql); 
while ($row = mysqli_fetch_assoc($query)){ 
    $values[$row['companyname']] = $row; 
} 

$google = $values['google']['companyname']; 
$google_ticker = $values['google']['ticker']; 
$google_holding = $values['google']['holding']; 

私はこれをどのように達成することができますか?今、あなたはこのような保持する変数にアクセスすることができます

$query = mysqli_query($conn, $sql); 
while ($row = mysqli_fetch_assoc($query)){ 
    $data[$row['companyname']]['name'] = $row['companyname']; 
    $data[$row['companyname']]['ticker'] = $row['ticker']; 
    $data[$row['companyname']]['holding'] = $row['holding']; 
} 

: 多くのおかげで

+2

?何が呼び出されるのかわからない場合、どのようにこれらの変数を使用することができますか?配列をループすることができるので、配列はこれのためのより良い選択です。 – jeroen

答えて

1

あなたはこのように使用することができます:あなたはそれをしたいと思うのはなぜ

${$row['companyname']} = $row['companyname']; 

doc

3

は、変数名としての機能キーで(multidimensional-)配列を使用

あなたを取得する必要があります
echo $data['google']['holding']; 

開始...

サクセス!

関連する問題