2013-04-10 2 views
0

Привет всем вам, программистам. Я хочу отключить обновление таблицы в моей базе данных, если введенное значение ниже значения в db. Код выглядит нормально, но обновление всегда выполняется. Это мой код:Проверка с помощью PHP следует обновить таблицу.

$sql="UPDATE student SET _id_year='$_year' WHERE _index='$_index'"; 
$check1="SELECT _id_year FROM student WHERE _index='$_index'"; 

if('$_year'>'$check1') 
{ 
mysqli_query($con,$sql); 
} 

Примечание: _id_year и _index являются значения из БД, и $_year, $_index вводятся значения. $con есть подключение к базе данных.

+1

Прежде всего, вам необходимо изучить основы. Почему бы не попробовать какой-нибудь учебник? По крайней мере, при получении данных из БД. –

ответ

2

Сначала выполните выбранный запрос и получите $check1. Тогда сравните.

$qry = "SELECT _id_year FROM student WHERE _index='$_index'"; 
$exec = mysqli_query($con,$qry); 
$result = mysqli_fetch_object($result); 
$check1 = $result->_id_year ; 

Кроме того, вы не имеете использование одиночные кавычки. Попробуйте это,

if($_year > $check1) 
{ 
    mysqli_query($con,$sql); 
} 
+0

Этот ответ toooooooo hasty –

+0

@YourCommonSense Проанализировал и отредактировал ответ –

+0

Я не знаю почему, но точно так же, как и в моем случае, обновление выполняется всегда ... –

0

Вы должны выполнить $check1 запрос первых, получить его результат, а затем сравнить его с $_year переменной

-1

Это всегда верно, поскольку цитируемого поле вашего PHP не следует qouted

if($_year>$check1) 
{ 
mysqli_query($con,$sql); 
} 
1

Использование SafeMysql код будет почти такой же, как вы написали, но это будет на самом деле запустить эти запросы, а также сделать его безопасным :

$check=$db->getOne("SELECT _id_year FROM student WHERE _index=?s",$_index); 

if($_year > $check) 
{ 
    $db->query("UPDATE student SET _id_year=?s WHERE _index=?s",$_year,$_index); 
} 
Смежные вопросы