public static function getEquipmentMileage($userId, $bikeId) { $c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn('SUM(' . UserStatsPeer::MILEAGE . ')'); $c->addSelectColumn(UserEquipementPeer::EQUIPMENT_ID); //$c->addGroupByColumn(UserRidesPeer::MILEAGE); $c->add(UserEquipementPeer::USER_ID, $userId); $c->add(UserEquipementPeer::BIKE_ID, $bikeId); $c->addJoin(UserEquipementPeer::EQUIPMENT_ID, UserStatEquipPeer::USER_EQUIP_ID, Criteria::INNER_JOIN); $c->addJoin(UserStatEquipPeer::USER_STAT_ID, UserStatsPeer::STAT_NO, Criteria::INNER_JOIN); //$c->addJoin(UserStatsPeer::RIDE_KEY,UserRidesPeer::USER_RIDE_ID, Criteria::INNER_JOIN); $c->addGroupByColumn(UserEquipementPeer::EQUIPMENT_ID); $stmt = UserStatsPeer::doSelectStmt($c); $hashmap = array(); if ($stmt) { while ($row = $stmt->fetch(PDO::FETCH_NUM)) { if ($row) { $sum = $row[0]; $eqId = $row[1]; //echo 'Mil '.$sum.' '.$eqId; $hashmap[$eqId] = $sum; // array_push($hashmap, $eqId=>$sum); } } } return $hashmap; }
public function getLastRideDate() { $c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn('MAX(' . UserStatsPeer::RIDE_DATE . ')'); $c->add(UserStatsPeer::USER_ID, $this->getUserId()); $c->add(UserStatsPeer::BIKE_ID, $this->getUserBikeId()); $stmt = UserStatsPeer::doSelectStmt($c); $max = null; if ($stmt) { while ($row = $stmt->fetch(PDO::FETCH_NUM)) { if ($row) { $max = $row[0]; } } } return $max; }
public function getYearlyMileage() { $from_date = mktime(0, 0, 0, 1, 1, date("Y")); $c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn('SUM(' . UserRidesPeer::MILEAGE . ')'); $c->add(UserStatsPeer::USER_ID, $this->getUserId()); $criterion = $c->getNewCriterion(UserStatsPeer::RIDE_DATE, date('Y-m-d', $from_date), Criteria::GREATER_EQUAL); $c->add($criterion); $c->addJoin(UserRidesPeer::USER_RIDE_ID, UserStatsPeer::RIDE_KEY); $stmt = UserStatsPeer::doSelectStmt($c); $sum = 0; if ($stmt) { while ($row = $stmt->fetch(PDO::FETCH_NUM)) { if ($row) { $sum = $row[0]; } } } return utils::getMileageFromMeters($sum); }
/** * Method to do selects. * * @param Criteria $criteria The Criteria object used to build the SELECT statement. * @param PropelPDO $con * @return array Array of selected Objects * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doSelect(Criteria $criteria, PropelPDO $con = null) { return UserStatsPeer::populateObjects(UserStatsPeer::doSelectStmt($criteria, $con)); }
/** * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. * * This will only work if the object has been saved and has a valid primary key set. * * @param boolean $deep (optional) Whether to also de-associated any related objects. * @param PropelPDO $con (optional) The PropelPDO connection to use. * @return void * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db */ public function reload($deep = false, PropelPDO $con = null) { if ($this->isDeleted()) { throw new PropelException("Cannot reload a deleted object."); } if ($this->isNew()) { throw new PropelException("Cannot reload an unsaved object."); } if ($con === null) { $con = Propel::getConnection(UserStatsPeer::DATABASE_NAME, Propel::CONNECTION_READ); } // We don't need to alter the object instance pool; we're just modifying this instance // already in the pool. $stmt = UserStatsPeer::doSelectStmt($this->buildPkeyCriteria(), $con); $row = $stmt->fetch(PDO::FETCH_NUM); $stmt->closeCursor(); if (!$row) { throw new PropelException('Cannot find matching row in the database to reload object values.'); } $this->hydrate($row, 0, true); // rehydrate if ($deep) { // also de-associate any related objects? $this->aUserRides = null; $this->aUserBikes = null; $this->collUserStatEquips = null; $this->lastUserStatEquipCriteria = null; } // if (deep) }