0 レビュー
2 回答
PHP / MYSQL-IF、ELSEで変数を定義しますか?
PHP / MYSQLを使用して単純なWebプログラムを作成しています(制限のため、mysqliまたはPDOではなくmysqlクエリを使用する必要があります)。 HTMLテーブルは、ユーザーフォームの入力に基づいて、MYSQLテーブルとは異なる値を表示する必要があります。
ユーザー入力に基づいていくつかの変数を定義するための最良の方法は何ですか?
試しました
<?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'");
}
?>
ただし、入力に基づいて値を変更することはありません。何が間違っているのですか?
編集、@ Demodaveの回答によると、これは正しい方向に進んでいるようですが、完全には機能していません。
<?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 . "'");
}
?>
$whereが未定義であるというエラーを取得します。行名に変数を使用することは「合法」ですか?
わからない
0
レビュー
答え :
解決策:
繰り返し要素がいくつかあります。
<?php
$taxcode = '401(k)'; // This is only an example for the POST variable.
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 . "'");
}
?>
出力:
SELECT * FROM sampletable WHERE PT_401k = '401(k)'
SELECT * FROM sampletable WHERE Organization_match_participants_contribution ='雇用主マッチング拠出金(つまり、給与の最初の6%の50%)' AND PT_401k = '401(k)'
わからない
0
レビュー
答え :
解決策:
まず、次のことを行います:
if ($taxcode = '401(k)') {
変数に値を割り当てています。あなたは書く必要があります:
if ($taxcode == '401(k)') {
それ以外に、そのクエリを動的に作成することをお勧めします。それは役に立ちますか?
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。