データがMySQLクエリに挿入される前にチェックを実行しようとしています。これがコードです。
$userid = ($vbulletin->userinfo['userid']);
$sql3 = mysql_query("SELECT * FROM table WHERE ID='$_POST[hiddenID]'");
while ($row = mysql_fetch_array($sql3)){
$toon = $row['toonname'];
$laff = $row['tlaff'];
$type = $row['ttype'];
if ($type == 1){
$type == "Bear";
} elseif ($type == 2){
$type == "Cat";
} elseif ($type == 3){
$type == "Dog";
}
}
ただし、これは機能していません。基本的に、「テーブル」にはタイプごとに異なる値があります。 1はクマ、2は猫、3は犬を意味します。
私のスクリプトの問題を見るのを手伝ってくれる人に感謝します!
割り当てではなく、比較しています:
if ($type == 1){
$type = "Bear";
}
値を==
または===
と比較します。
=
を使用して値を割り当てます。
switch
ステートメントを使用するか、if
sを含まないelseif
sの束を使用して、同じ結果を達成するためにコードを少なくすることもできます。
if ($type == 1) $type = "Bear";
if ($type == 2) $type = "Cat";
if ($type == 3) $type = "Dog";
私はそれのために次のような関数を作ります:
function get_species($type) {
switch ($type):
case 1: return 'Bear';
case 2: return 'Cat';
case 3: return 'Dog';
default: return 'Jeff Atwood';
endswitch;
}
$type = get_species($row['ttype']);
==
ではなく=
を使用しています。変数を新しい値と比較します。 =
を使用して値を設定します。
if ($type == 1){
$type = "Bear";
} elseif ($type == 2){
$type = "Cat";
} elseif ($type == 3){
$type = "Dog";
}
==
を使用して値を割り当てています。
$type == bear;
する必要があります:
$type = bear;
if ($type == 1) {$displayVar = "Bear";}
例:
<form method="post" action="results.php">
How many horns does a Unicorn have? <br />
<input type="text" name="inputField" id="inputField" /> <br />
<input type="submit" value="Submit" /> <br />
</form>
結果:
<?php
$inputVar = $_POST["inputField"];
if ($inputVar == 1) {$answerVar = "correct";}
else $answerVar = "<strong>not correct</strong>";
?>
<?php
echo "Your answer is " . $answerVar . "<br />";
?>