IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Doctrine2 PHP Discussion :

Connaitre la positon d'une entité dans un select


Sujet :

Doctrine2 PHP

  1. #1
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut Connaitre la positon d'une entité dans un select
    Bonjour,

    J'affiche une liste d'article avec une pagination.
    Lors d'un clic sur un article, un lien pointe vers une page détaillant l'article.
    Dans cette page, j'ai un lien 'retour aux articles'.
    Jusque là, rien de bien compliqué

    J'aimerait que ce lien pointe vers la bonne page de la liste dans l'ordre de pagination.
    Pour celà, il me suffit de connaitre la position de l'article lors de la requête SQL.

    J'ai une idée simple mais très lourde :
    Effectuer la requête puis parcourir le résulat jusqu’à trouver l'article, avec une incrémentation d'un compteur je trouverai facilement.

    Y-a-t-il une solution moins lourde comme une simple requête qui me donnerait le résultat demandé via un simple getSingleScalarResult() ?
    Si les développeurs ont pensé à $queryBuilder->select("count(a.id)") pour connaitre le nombre d'article, je pense qu'il ont du penser à ce problème

    merci d'avance,

  2. #2
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut
    J'ai finit par trouver la requête SQL adéquat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SET @rownum := 0;
    SELECT rank FROM (
                        SELECT @rownum := @rownum + 1 AS rank, id
                        FROM article` ORDER BY `article`.`date` DESC
                        ) as result WHERE id=2
    Par contre, je galère encore à l'éxécuter depuis mon EntityRepository

  3. #3
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut
    Voilà, j'ai résolu le problème.

    Pour ceux qie celà pourrait aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // depuis un EntityRepository
    public function getRank($id)
    	{
    	$stmt = $this->getEntityManager()->getConnection()->prepare("SET @rownum := 0");
    	$stmt->execute();
     
    	$stmt2 = $this->getEntityManager()->getConnection()->prepare("SELECT rank FROM (
                       SELECT @rownum := @rownum + 1 AS rank, id
                       FROM `maTable` ORDER BY `maTable`.`date` DESC
                       ) as result WHERE id=". $id);
    	$stmt2->execute();
    	return $stmt2->fetchColumn(0);
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Appeler une méthode d'une entité dans le select
    Par b_lob dans le forum Linq
    Réponses: 3
    Dernier message: 07/05/2013, 08h39
  2. Réponses: 3
    Dernier message: 06/04/2006, 16h09
  3. [PERL] connaitre la position d'une lettre dans un mot
    Par LE NEINDRE dans le forum Langage
    Réponses: 3
    Dernier message: 24/03/2006, 16h03
  4. [MCD] une entité dans une autre ?
    Par judor31 dans le forum Schéma
    Réponses: 4
    Dernier message: 14/03/2006, 18h21
  5. besoin d'aide pour intégrer une entité dans un MCD
    Par barkleyfr dans le forum Schéma
    Réponses: 17
    Dernier message: 13/10/2005, 13h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo