За последние 24 часа нас посетили 22327 программистов и 1168 роботов. Сейчас ищут 680 программистов ...

Подскажите как создать функцию

Тема в разделе "PHP для новичков", создана пользователем nighty386, 10 окт 2021.

  1. nighty386

    nighty386 Новичок

    С нами с:
    7 ноя 2020
    Сообщения:
    11
    Симпатии:
    0
    Добрый вечер, подскажите как можно тут подсчитать количество объектов (функцией) или как можно? или вывести значение это? а то через var dump null везде

    PHP:
    1.     public function display()
    2.         {
    3.             if (isset($_POST['fav']))
    4.             {
    5.                 $id = (int)$_POST['fav'];
    6.  
    7.                 if ($id<=0) die;
    8.                
    9.                 $chk = (bool)db::i()->selectCell("SELECT added from c_user_favorite where id_user = ".(int)$this->user['id']." and id_object = ".(int)$id.";");
    10.  
    11.                 if ($chk) db::i()->query("DELETE from c_user_favorite where id_user = ".(int)$this->user['id']." and id_object = ".(int)$id.";");
    12.                 else db::i()->query("INSERT INTO c_user_favorite (id_user, id_object, added) VALUES (".(int)$this->user['id'].", ".(int)$id.", NOW());");
    13.             }
    14.             else
    15.             {
    16.                 tpl::i()->load('auth');
    17.                
    18.  
    19.                 /* select rows */
    20.  
    21.    
    22.                 $favIds = db::i()->selectArr("SELECT id_object AS _V FROM c_user_favorite where id_user = ".(int)$this->user['id']);
    23.  
    24.                 if (count($favIds))
    25.                 {
    26.                     route::need('fs');
    27.  
    28.                     $orders = array
    29.                     (
    30.                         '__photoid' => 'ФОТО',
    31.                         'id' => 'ID',
    32.                         '__l_deal_type__name' => 'СДЕЛКА',
    33.                         'address' => 'АДРЕС',
    34.                         'name' => 'НАЗВАНИЕ',
    35.                         '__l_object_type__name' => 'ТИП ОБЪЕКТА',
    36.                         '__l_object_metro__name' => 'МЕТРО',
    37.                         'area' => 'МЕТРАЖ',
    38.                         '__price' => 'ЦЕНА',
    39.                         '__c_user_favorite__added' => 'ДОБАВЛЕНО'
    40.                     );
    41.                    
    42.                    
    43.            
    44.                     tpl::i()->set('orders', $orders);
    45.                     tpl::i()->set('rows', fs::getObjects("c_object.id IN (".implode(",", $favIds ).") and c_object.id>0"));
    46.                 }
    47.  
    48.                 tpl::i()->display();
    49.             }
    50.         }
     
  2. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    863
    Симпатии:
    132
    Вопрос переформулируйте, кол-во каких объектов? Код без отладки, вообще ничего непонятно.
     
  3. nighty386

    nighty386 Новичок

    С нами с:
    7 ноя 2020
    Сообщения:
    11
    Симпатии:
    0
    favIds вроде эта переменная нужна но она показывает NULL , это обьъкты избранного (fav)
     
  4. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    863
    Симпатии:
    132
    Распечатайте строку
    PHP:
    1. "SELECT id_object AS _V FROM c_user_favorite where id_user = ".(int)$this->user['id']
    Загоните запрос в БД (например, используя phpMyAdmin), посмотрите результат.
     
  5. nighty386

    nighty386 Новичок

    С нами с:
    7 ноя 2020
    Сообщения:
    11
    Симпатии:
    0
    ошибку выдает sql запрос(
     
  6. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    863
    Симпатии:
    132
    Даже ошибку поленились озвучить.
    Гуглом/переводчиком дальше уже сами воспользуйтесь. Или раздел смените на Сделайте за меня или PHP Free-Lance )
     
  7. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    так не бездумно надо вставлять запрос, а с умом!
    после $favIds = db::i()->selectArr - добавьте вывод... посмотрите что на экране ... 99% что id_user = 0 будет, ну и таких записей нет
    PHP:
    1. echo "SELECT id_object AS _V FROM c_user_favorite where id_user = ".(int)$this->user['id'];
     
  8. nighty386

    nighty386 Новичок

    С нами с:
    7 ноя 2020
    Сообщения:
    11
    Симпатии:
    0

    эхом выводит - SELECT id_object AS _V FROM c_user_favorite where id_user = 224
    в SQL запросе 5 объектов все верно показывает в столбе _V как нибудь его можно посчитать(вывести колво?)
     
  9. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    перед if (count($favIds))
    сделайте
    var_dump($favIds);
    посмотрим что там возвращается
     
  10. nighty386

    nighty386 Новичок

    С нами с:
    7 ноя 2020
    Сообщения:
    11
    Симпатии:
    0
    array(5) { [0]=> string(5) "10197" [1]=> string(5) "12492" [2]=> string(5) "12901" [3]=> string(5) "13391" [4]=> string(5) "13410" }
    да нашел 5 объектов вроде!!!) а как их можно вывести в цифру 5 на странице? то что найдено 5
     
  11. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    блин count(), следующей строкой же используется
     
  12. nighty386

    nighty386 Новичок

    С нами с:
    7 ноя 2020
    Сообщения:
    11
    Симпатии:
    0
    @ADSoft я через echo count($favIDs) вывел цифру 5, а как можно ее вывести в tpl файл на страницу ?
     
  13. nighty386

    nighty386 Новичок

    С нами с:
    7 ноя 2020
    Сообщения:
    11
    Симпатии:
    0
    подскажите пожайлуста как вывести его в tpl twig??