2013-07-04 3 views
0

바보 같고 안전하지 않을 수도 있지만 필자는 poke6hp라는 poke1hp라는 열을 가지고 있습니다. 변수를 1로 설정하면 poke1hp 열을 선택하고 반향 출력합니다. 변수가 6이면 poke6hp를 반향 출력합니다.변수를 php 변수에 넣는 echo

그래서 그는 작동해야하지만 실제로 작동합니다. 아니.

if ($_SESSION['pickedslot'] == '1') {$tablename = "poke1hp";} 
if ($_SESSION['pickedslot'] == '2') {$tablename = "poke2hp";} 
if ($_SESSION['pickedslot'] == '3') {$tablename = "poke3hp";} 
if ($_SESSION['pickedslot'] == '4') {$tablename = "poke4hp";} 
if ($_SESSION['pickedslot'] == '5') {$tablename = "poke5hp";} 
if ($_SESSION['pickedslot'] == '6') {$tablename = "poke6hp";} 

나는 내가 $ tablename에 밖으로 에코 및 모든 열 이름이에 잘 작동이 시점에서 또한 $ tablename에와 선택을한다. 지금 시도하고 옆에 내가 선택

// here we grab the users hp 
$grabhp = $db->prepare("select '$tablename' from new_battles WHERE username = ?"); 
$grabhp ->execute(array($_SESSION['username'])); 
$grabhp2 = $grabhp ->fetch(); 

echo $grabhp2 ['$tablename']; 

에 위의 설정 변수를 열 이름을 사용하지만 아무것도 인쇄되지 얻을 ... 내가 행을 가질 수있는 대신 열을 알고 있지만, 나는이 코딩 한 방법은 ...

+0

PHP는 작은 따옴표로 구분 된 문자열의 내부 변수를 확장하지 않습니다. – goat

+0

두 번 시도했지만 여전히 작동하지 않습니다. – user2442903

답변

0

변수는 작은 따옴표 내에서 확장되지 않습니다

http://php.net/manual/en/language.types.string.php

내가 당신의 예를 들어 따옴표를 사용하지 않는 것이 좋습니다. 시도해보십시오 :

echo $grabhp2[$tablename]; 

예를 들어, MySQLi 준비 문구도 잘못 처리하고 있습니다.

여기에 대한 참조입니다 :

http://php.net/manual/en/mysqli.quickstart.prepared-statements.php

+0

에코를 $ grabhp2 [ "$ tablename"] 에코로 변경했습니다. 하지만 여전히 작동하지 않습니다 .... – user2442903

+0

이 문제는 제가 생각하기에는 MySQLi 준비 문을 부적절하게 사용하고 있다는 것입니다. 나는 그것들에 대한 연구를하는 것이 좋습니다. 또는 다음을 사용할 수 있습니다. http://www.php.net/manual/en/mysqli.query.php + http://www.php.net/manual/en/mysqli-result.fetch-assoc.php –