Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Умножение при SELECT
asdf27  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 259
Пользователь №: 32917
На форуме: 4 года, 11 месяцев, 20 дней
Карма: 1




Доброго времени, форум.

Запрос вида
Цитата
$res=mysql_query("SELECT * FROM prods WHERE cat!='12' AND (cost * 10)<='$ostatok' AND id NOT IN ($notin) ORDER BY rand() LIMIT 1");
не проходит. Но это на шару, т.к. даже запрос в поисковике по этому поводу не могу сформировать.

Пишу рэндомизатор. Посетитель вводит сумму, скажем, 2000 рублей, и ему рэндомом формирует меню. Дело осложняется тем, что есть минимальное количество бутербродов при заказе.

Алгоритм: посетитель ввел сумму, пошел цикл do{вычислять} while (остаток>0). В функции я делаю выборку среди позиций, у которых цена меньше остатка средств. И мне нужно поле cost (цена позиции) умножить на минимальное количество при заказе (10). Бутерброд стоит 60 рублей, значит при SELECT'е сравнение ожидается вида 600<$ostatok.

Заранее благодырь.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5625
Пользователь №: 35718
На форуме: 4 года, 7 месяцев, 6 дней
Карма: 173




у вас не бутерброды, у вас мухи в котлетах


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3691
Пользователь №: 38635
На форуме: 3 года, 5 месяцев, 29 дней
Карма: 195




Цитата (asdf27 @ 3.04.2017 - 23:51)
(cost * 10)<='$ostatok'

Не вникая глубоко и не разгоняя мух:
Из курса высшей математики начальной школы, (cost * 10) <= $ostatok - это тоже самое, что и cost <= $ostatok / 10



--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
walerus  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чтобы все !
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2333
Пользователь №: 26852
На форуме: 6 лет, 3 месяца, 10 дней
Карма: 127




Что мешает делать все арифметические действия ДО запроса в базу?, а уж потом отсылать запрос.
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
asdf27  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 259
Пользователь №: 32917
На форуме: 4 года, 11 месяцев, 20 дней
Карма: 1




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

Цитата
Не вникая глубоко и не разгоняя мух:
Из курса высшей математики начальной школы, (cost * 10) <= $ostatok - это тоже самое, что и cost <= $ostatok / 10


Хорошее замечание, расскажу сыну. "10" условно, переменная принимает разные значения.


Цитата
Что мешает делать все арифметические действия ДО запроса в базу?, а уж потом отсылать запрос.


Нет возможности _до. Алгоритм:
1. ты указал бюджет, скажем 5000 рублей.
2. Запрос в базу: Выбрать * из ПРОДУКТОВ где цена*мин.кол-во < 5000 рублей ЛИМИТ 1.
3. Извлекли, отобразили, отрезали стоимость от 5000 рублей. Остаток 4400 р.
4. Гоняем по кругу пока остаток > 0 или условия не удовлетворены.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
walerus  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чтобы все !
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2333
Пользователь №: 26852
На форуме: 6 лет, 3 месяца, 10 дней
Карма: 127




Цитата
Нет возможности _до.
Почему же нет?, есть:
1) Дано 5000 тыр
1.1. константа или выборка из базы ограничений, таких как: ( цена, мин.кол-во )
$price = 'цена';
$count_min = 'мин.кол-во'; // остаток
1.2.
$condition = $price * $count_min;
2) Запрос в базу: Выбрать * из ПРОДУКТОВ где $condition < 5000 рублей ЛИМИТ 1.
3) Извлекли, отобразили, отрезали стоимость от 5000 рублей. Остаток 4400 р.
etc...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
asdf27  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 259
Пользователь №: 32917
На форуме: 4 года, 11 месяцев, 20 дней
Карма: 1




Всё верно, но не в контексте данной задачи. Мы не знаем заранее мин. кол-во, оно плавает. Где-то 1, где-то 10. И другие варианты.

Выборка рэндомная, мы не знаем что получим. Единственное, записываются излеченные id'шники чтобы не дублировать.

Короче запрос работает, я дальнейшую математику неверно построил, потому был сбит с толку.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3691
Пользователь №: 38635
На форуме: 3 года, 5 месяцев, 29 дней
Карма: 195




asdf27
если есть возможность перевести проект на другую субд, Postgresql, например, то сможешь обойтись всего одним рекурсивным запросом.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
asdf27  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 259
Пользователь №: 32917
На форуме: 4 года, 11 месяцев, 20 дней
Карма: 1




Спасибо, AllesKlar
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса