2013-05-04 72 views
5

我想在數據插入到MySQL查詢之前做一個檢查。 這是代碼;如果變量等於值php

$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表示狗。

感謝任何人可以幫助看到我的腳本中的問題!

+2

你需要學習分配新建分配FY之間更多的'=','平等=='和''===運營商的身份使用 – samayo 2013-05-04 18:59:17

+0

一個數組,而不是'if' 。 – hakre 2013-05-04 19:03:26

回答

14

你是比較,不是分配:

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

您與=====比較值。

您可以使用=指定值。

您也可以使用switch聲明或只是一堆if而不寫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']); 
3

您正在使用==代替=。它將變量與新值進行比較。使用=來設置值。

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

您使用==分配值:

$type == bear;

應該是:

$type = bear;

0
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 />"; 
?> 
相關問題