Zkuste trochu upravit logiku. Stejně jako u Phoenixe Wrighta někdy k jejich vyřešení stačí obrátit věci:
$pk = $db->prepare("SELECT `grade` FROM `grading` WHERE ? BETWEEN `min` and `max`");
$pk->execute(array($mark));
$ind = $pk->fetch(PDO::FETCH_ASSOC);
echo $ind['grade'];
Použití hodnoty jako prvního operandu pro BETWEEN
a IN
není něco, co by mnoho lidí napadlo, a přesto je to tak mocné;)
A co je důležitější (a díky Fredovi -ii- za to, že mi náhodou pomohl uvědomit si), min
a max
jsou názvy funkcí. Pokud je chcete použít jako názvy sloupců, musíte zabalte je do zadních značek, jak jsem to udělal v kódu výše.
Obecně platí, že byste měli vždy zaškrtněte názvy tabulek a sloupců. Nečinit to je podobné psaní $foo = bar;
v PHP. Jistě, bude to fungovat , ale pokud bar
stane se konstantou nebo názvem funkce, pak se rozpoutá peklo.