簡體   English   中英

PHP根據mysql數據庫中的內容自動創建變量

[英]PHP automatically create variables based on what is in mysql database

我不知道這是否可能,但是我正在嘗試使用來自mysql數據庫的條目來創建一個php變量。

例如,假設我要創建以下變量,但是我想用數據庫中的公司名稱替換​​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'];

關於如何實現此目標的任何想法? 非常感謝

將(多維)數組與用作變量名稱的KEYS一起使用:

$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'];
}

現在,您可以像這樣訪問holding變量:

echo $data['google']['holding'];

那應該讓你開始...

成功!

您可以這樣使用:

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

doc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM