Я пишу простую веб-программу с PHP/MYSQL (из-за ограничений должны использоваться mysql-запросы, а не mysqli или PDO). Таблица HTML должна отображать разные значения из моей таблицы MYSQL на основе ввода пользовательской формы.PHP/MYSQL - определить переменные с IF, ELSE?
Каков наилучший способ определения нескольких переменных на основе пользовательского ввода?
Я попытался
<?php
$taxcode = $_POST['taxcode'];
$db_host = 'localhost';
$db_user = 'root';
$db_pwd = 'root';
$database = 'database';
$table = 'sampletable';
if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Can't connect to database");
if (!mysql_select_db($database))
die("Can't select database");
if ($taxcode = '401(k)') {
$planquery = ("SELECT * FROM sampletable WHERE PT_401k = '401(k)'");
$orgmatchquery = ("SELECT * FROM sampletable WHERE Organization_match_participants_contribution = 'Employer Matching contribution (i.e., 50% of first 6% of pay)' AND PT_401k = '401(k)'");
} elseif ($taxcode = '403(b)') {
$planquery = ("SELECT * FROM sampletable WHERE PT_403b = '403(b)'");
$orgmatchquery = ("SELECT * FROM sampletable WHERE Organization_match_participants_contribution = 'Employer Matching contribution (i.e., 50% of first 6% of pay)' AND PT_403b = '403(b)'");
} elseif ($taxcode = '457') {
$planquery = ("SELECT * FROM sampletable WHERE PT_457 = '457'");
$orgmatchquery = ("SELECT * FROM sampletable WHERE Organization_match_participants_contribution = 'Employer Matching contribution (i.e., 50% of first 6% of pay)' AND PT_457 = '457'");
}
?>
но не изменяя значение, основанное на входе. Что я делаю не так?
EDIT, за ответ @ Демодава - это, кажется, движется в правильном направлении, но не совсем работает.
<?php
$taxcode = '401(k)';
if ($taxcode == '401(k)' || $taxcode == '403(b)' || $taxcode == '457') {
if($taxcode == '401(k)') {
$where = "PT_401k";
} else if($taxcode == '403(b)') {
$where = "PT_403b";
} else if($taxcode == '457') {
$where = "PT_457";
}
echo $planquery = ("SELECT * FROM sampletable WHERE " . $where . " = '" . $taxcode . "'");
echo "<br />" . $orgmatchquery = ("SELECT * FROM sampletable WHERE Organization_match_participants_contribution = 'Employer Matching contribution (i.e., 50% of first 6% of pay)' AND " . $where . " = '" . $taxcode . "'");
}
?>
Получение ошибок, в которых $ где не определено. «Легально» использовать переменную для имени строки?
это выглядит многообещающим, но я получаю ошибки: Примечание: неопределенная переменная: где in/Applications/MAMP/htdoc s/benchmark/step2.php в строке 86 (похоже, как переменная «где») Предупреждение: mysql_num_rows() ожидает, что параметр 1 будет ресурсом, boolean задан в /Applications/MAMP/htdocs/benchmark/step2.php on line 93 – grownupteeth
Я определяю $ where with = '', вопрос в том, включил ли вы if ($ taxcode == '401 (k)' || $ taxcode == '403 (b)' || $ taxcode == '457') {line, потому что иначе, если налоговый код не является одним из тех чисел $, где никогда не будет определено. – Demodave
Да; но это должно быть неуместно, потому что этот пользовательский ввод - это выпадающее меню с тремя параметрами. Мы уверены, что $ where (или любая переменная) может быть использована в этом случае? Добавлено редактирование выше. – grownupteeth