2013-05-04 13 views
5

Próbuję wykonać sprawdzenie przed wstawieniem danych do zapytania MySQL. Oto kod;Jeśli zmienna jest równa wartości 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"; 
}    

} 

Jednak to nie działa. Zasadniczo istnieją różne wartości w "tabeli" dla każdego typu. 1 oznacza Niedźwiedź, 2 oznacza Kot, a 3 oznacza Pies.

Dziękuję każdemu, kto może pomóc w rozwiązaniu problemu w moim skrypcie!

+2

musisz nauczyć się bardziej między assigment '=', równość == '' 'i' operatorzy === tożsamości – samayo

+0

używać tablicy zamiast 'if' . – hakre

Odpowiedz

14

porównujesz, nie przypisując:

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

można porównać wartości z == lub ===.

Przypisujesz wartości za pomocą =.

Można napisać mniej kodu, aby osiągnąć ten sam wynik, z instrukcją switch lub po prostu kilkas bez elseif s.

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

Chciałbym utworzyć funkcję dla niej tak:

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

Używasz == zamiast =. Porównuje zmienną do nowej wartości. Użyj =, aby ustawić wartość.

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

Używasz == przypisanie wartości:

$type == bear;

Powinno być:

$type = bear;

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

Przykład:

<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> 

Wyniki:

<?php 
$inputVar = $_POST["inputField"]; 
if ($inputVar == 1) {$answerVar = "correct";} 
else $answerVar = "<strong>not correct</strong>"; 
?> 
<?php 
echo "Your answer is " . $answerVar . "<br />"; 
?> 
Powiązane problemy