Sql рейтинг вопроса

Вот мой код Моя проблема в том, что я хочу, чтобы вставка произошла только тогда, когда rating_airlines значение между 1 а также 5 но он продолжает добавлять все значения.

rating_airlines является varchar в моей базе данных.

<?php
require_once('connect.php');

mysql_select_db($database_localhost,$con);

$nom_airlines=$_GET['nom_airlines'];
$rating_airlines=$_GET['rating_airlines'];
$a=intval($rating_airlines);

if($a=1 || $a=2 || $a=3 || $a=4 || $a=5 ) {
mysql_query("INSERT INTO Airlines(nom_airlines,rating_airlines)
VALUES ('$nom_airlines','$a') ");

echo "OK";}
else {
die('Requête invalide : ' . mysql_error());
}
?>

0

Решение

Вы не сравниваете значения, которые вы устанавливаете. Одиночное равенство устанавливает двойное сравнение.

if($a=1 || $a=2 || $a=3 || $a=4 || $a=5 )

Должно быть

if($a==1 || $a==2 || $a==3 || $a==4 || $a==5 )

Но может быть даже

if($a>=1 && $a <=5 )

Вы также должны переключиться с MySQL на MySQL или PDO. MySQL или PDO — каковы плюсы и минусы?

Также обратите внимание, что мимоходом $nom_airlines непосредственно к вашему запросу вы как минимум открыты для инъекций, используйте mysql_real_escape_string.

$nom_airlines=mysql_real_escape_string($_GET['nom_airlines']);
1

Другие решения

Вы используете присваивающий оператор. Вы должны использовать равенство здесь.

if($a==1 || $a==2 || $a==3 || $a==4 || $a==5 ) {

Взгляните на эти 2:

Операторы присваивания в PHP

Операторы равенства в PHP

Более того,

$a = $b     Assign      Sets $a to be equal to $b.
$a == $b    Equal       TRUE if $a is equal to $b.
$a === $b   Identical   TRUE if $a is equal to $b, and they are of the same type. (introduced in PHP 4)
0

По вопросам рекламы [email protected]