/** * Trouver le numero de page d'une pagination indirecte * lorsque debut_xxx=@123 * on cherche la page qui contient l'item dont la cle primaire vaut 123 * * @param string $primary * @param int|string $valeur * @param int $pas * @param objetc $iter * @return int */ function quete_debut_pagination($primary, $valeur, $pas, $iter) { // on ne devrait pas arriver ici si la cle primaire est inexistante // ou composee, mais verifions if (!$primary or preg_match('/[,\\s]/', $primary)) { return 0; } $pos = 0; while ($row = $iter->fetch() and $row[$primary] != $valeur) { $pos++; } // si on a pas trouve if ($row[$primary] != $valeur) { return 0; } // sinon, calculer le bon numero de page return floor($pos / $pas) * $pas; }