Как запрашивать значения из базы данных с помощью <= — mysql

#php #laravel

#php #laravel

Вопрос:

У меня есть таблица, как показано ниже. Я хочу выбрать количество на основе числа, введенного пользователем. Например, если пользователь вводит 10, выбранное количество должно быть 2. Это легко получить. Но когда пользователь вводит 20 или 30, я хочу выбрать количество 10, которое равно 2, поскольку 20 или 30 меньше 40.

С моим приведенным ниже запросом, когда пользователь вводит 60, он выбирает количество 10, которое равно (2). Как я могу сделать это лучше?

 Number   Count

10         2

40         10

60         20
  

Контроллер

 $count = PriceRate::where('number','<=',$amount)->first();

return $count;
  

Комментарии:

1. попробуйте это $count = PriceRate::where('number','<=',$amount)->orderByDesc('number')->limit(1)->first();

Ответ №1:

попробуйте это:

  $count = PriceRate::where('number','<=',$amount)->orderByDesc('number')->limit(1)->first();
  

Ответ №2:

я думаю, что этот код поможет вам:

     $count_array = [];
    $user_type;
    $Rates= PriceRate::all();
        foreach ($Rates as $rate){
            if ($rate->number <= $user_type){
                array_push($count_array,$user);
            }
        }
  

я объясню, что происходит

1-вам нужен массив для ваших подсчетов -$count_array

2-ваш тип пользователя

3-вы получаете все записи из своей таблицы

4-вы перебираете их и проверяете для каждого из них, если его число равно или меньше, чем ваш user_type вы отправляете эту запись в свой count_array

теперь у вас есть массив с записями из вашей БД, число которых меньше вашего user_type

редактировать: если вы хотите использовать только первый, вы можете прервать цикл после array_push