web-dev-qa-db-ja.com

変数が値phpに等しい場合

データが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は犬を意味します。

私のスクリプトの問題を見るのを手伝ってくれる人に感謝します!

7
llw

割り当てではなく、比較しています:

if ($type == 1){
  $type = "Bear"; 
}

値を==または===と比較します。

=を使用して値を割り当てます。

switchステートメントを使用するか、ifsを含まないelseifsの束を使用して、同じ結果を達成するためにコードを少なくすることもできます。

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']);
17
Jezen Thomas

==ではなく=を使用しています。変数を新しい値と比較します。 =を使用して値を設定します。

if ($type == 1){
$type = "Bear";
} elseif ($type == 2){
$type = "Cat";
} elseif ($type == 3){
$type = "Dog";
}  
3
PurkkaKoodari

==を使用して値を割り当てています。

$type == bear;

する必要があります:

$type = bear;

1
LeonardChallis
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 />";
?>
0
Porta Shqipe