@l55uiz

Как подсчитать количество заказов?

Подскажите, как подсчитать количество заказов для юзера?
В таблице orders есть поле user_id, в котором хранится айди юзера, взятый из сессии. И нужно вывести сколько было заказов
Данный код выводит мне 0
public function countOrders()
  {
    try
    {  
      $stmt = $this->runQuery("SELECT count(user_id) FROM orders GROUP BY user_id WHERE user_id =:user_id");
      $stmt->bindValue(":user_id", $_SESSION['user_session'], PDO::PARAM_STR);
      echo $stmt->rowCount(); 
    }
    catch(PDOException $e)
    {
      echo 'Ошибка.';
    }     
  }
  • Вопрос задан
  • 461 просмотр
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
$stmt = $this->runQuery("SELECT count(id) FROM orders WHERE user_id =:user_id");

а то вы чет перемудрили

echo $stmt->rowCount();
это зачем? учитывая что вы выбираете уже каунт?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Типичный карго-культ код, в котором присутствует куча бессмысленных телодвижений и отсутствует то что действительно нужно.

Как это должно выглядеть на самом деле:

public function countOrders($user_id)
{
      $stmt = $this->pdo->prepare("SELECT count(1) FROM orders WHERE user_id =?");
      $stmt->execute([$user_id]);
      return $stmt->fetchColumn(); 
}
// и использование
echo $obj->countOrders($_SESSION['user_session']);

В детали вдаваться не буду, но когда ты поймешь почему писать надо именно так, а у тебя сейчас в обоих вариантах написан ад, то сможешь считать что окончил начальную школу в программировании.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы