Я пытаюсь выполнить проверку перед вводом данных в запрос 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
.
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 />"; ?>