Esempio n. 1
0
/**
 * 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;
}