2016-09-05 2 views
1

이것이 가능한지 모르지만 mysql 데이터베이스의 항목을 사용하여 PHP 변수를 만들려고합니다.PHP는 자동으로 mysql 데이터베이스에있는 변수를 기반으로 변수를 만듭니다.

예를 들어 다음 변수를 만들고 싶지만 데이터베이스에 회사 이름이 무엇이든 google을 바꾸고 싶다고합시다. 나는 야후와 같은 회사 이름과 내 데이터베이스에서 행이 있다면

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

그래서, 다음이 대신 나타납니다 : 나는 다른 변화를 시도

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

의 I가 그것을 얻을하지 못할 그러나 다음 작업 (I 실 거예요 작업 아래의 코드를 알고, 물건의 종류는 단지 예를 들어 내가 시도) :

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

어떻게하면이 아이디어를 얻을 수 있습니까? 많은 감사

+2

가 왜 그렇게할까요? 이러한 변수를 호출 할 때 모르는 경우 어떻게 이러한 변수를 사용할 수 있습니까? 배열을 루프 할 수 있으므로 배열을 사용하는 것이 더 좋습니다. – jeroen

답변

1

당신은 다음과 같이 사용할 수 있습니다

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

doc

3

변수 이름으로 기능 키와 (multidimensional-) 배열 사용 : 이제이 같은 잡고 변수에 액세스 할 수 있습니다

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

을 :

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

을 당신을 얻을해야 시작 ...

Succes!

관련 문제