これはばかげているように聞こえるかもしれませんし、危険に聞こえるかもしれませんが、呼び出された poke1hp には poke6hp までの列があります。変数が1に設定されている場合はpoke1hp列を選択してエコーアウトし、変数が6の場合はpoke6hpをエコーアウトするようにする必要があります
だから彼は私が手に入れたもので、うまくいくはずですが、そうではありません。
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'];
しかし、何も出力されません...列の代わりに行を使用できることはわかっていますが、このようにコーディングしました...