Перейти к публикации

Не работает вычитание (php)


Рекомендованные сообщения

В БД есть 5 записей. Выполняю запрос:

SELECT COUNT(`id`) FROM `dle_orders` и оно возвращает значение 5 (посчитал количество всех записей). Как и надо.

Затем делаю такой запрос:

SELECT COUNT(`id`) FROM `dle_orders` WHERE (`status`) = '2' и оно возвращает значение 1 (количество запесей со статусом 2). Как и должно быть.

В php же файле написано у меня следующее:

$orders = $db->query("SELECT COUNT(`id`) FROM `".PREFIX."_orders`");

$ready = $db->query("SELECT COUNT(`id`) FROM `".PREFIX."_orders` WHERE (`status`) = '2'");

if($orders - $ready >= '2')

{

msgbox ("Oops!... I Did It Again", "Превышен лимит допустимых заказов.");

}

else

{

...

}

Так вот я понять не могу, почему не выполняется условие if($orders - $ready >= '2')? По сути, результат должен быть равен 4 и должно быть сообщение, но выполняется условие из else. Помогите, пожалуйста, разобраться. Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Так вот я понять не могу, почему не выполняется условие if($orders - $ready >= '2')? По сути, результат должен быть равен 4 и должно быть сообщение, но выполняется условие из else. Помогите, пожалуйста, разобраться. Спасибо.


$orders = $db->query("SELECT COUNT(*) AS COUNT FROM '".PREFIX."_orders'");

$ready = $db->query("SELECT COUNT(*) AS COUNT FROM '".PREFIX."_orders' WHERE status = '2'");

if( ($orders['count'] - $ready['count']) >= 2)

Попробуйте так.

Изменено пользователем kangalexey
Ссылка на сообщение
Поделиться на других сайтах

The Error returned was:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''dle_orders'' at line 1

Error Number:

1064

О как.

Ссылка на сообщение
Поделиться на других сайтах

Kish,

функция $db->query возвращает не результаты запроса, а указатель на результаты, и при использовании этой функции из указателя нужно получить ассоциативный массив результатов. Если вам нужно получить сразу результаты то нужно использовать функцию $db->super_query

Ну и вычитание тоже в корне неверно вы получаете не строковое значение в результатах а массив результатов, и для вычитания нужно обращаться к элементам массива

Ссылка на сообщение
Поделиться на других сайтах

Ну и вычитание тоже в корне неверно вы получаете не строковое значение в результатах а массив результатов, и для вычитания нужно обращаться к элементам массива

Спасибо за подсказку с super_query. А как тогда нужно выполнять вычитание? Спасибо.

P.S. Просто я не знаком с php и sql.

Ссылка на сообщение
Поделиться на других сайтах

сделайте

print_r($orders);

И увидите где хранится значение

Просто я не знаком с php

это плохо, готовых решений я не пишу, могу только подсказать логику

Ссылка на сообщение
Поделиться на других сайтах
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_orders";

$sql_count_ = "SELECT COUNT(*) as count FROM " . PREFIX . "_orders WHERE status = '2'";

$orders = $db->super_query( $sql_count );

$ready = $db->super_query( $sql_count_ );

if(($orders['count'] - $ready['count']) >= 2)

....

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...