Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'utilise findManyToManyRowset() qui me retourne les résultats attendu.
Mais je souhaiterai faire la requête avec un ORDER BY DESC et LIMIT(1), c'est à dire prendre la dernière entrée de la table.
Pour plus de compréhension voici le code :
$table = new Model_DbTable_Item(); //je cherche le jeu de résultat de la table Item grâce à l'ID que j'ai $result = $table->find($id)->current(); //Je passe par Attribut pour arriver à User $user = $result->findManyToManyRowset('Model_DbTable_User', 'Model_DbTable_Attribut'); foreach ($user as $row) { //affichage }
Pour info, voici les tables simplifiés
ITEM
|
|_item_id
ATTRIBUT
|
|_attribut_item_fk
|_attribut_user_fk
|_date
USER
|
|_user_id
Donc avec item_id je trouve tous les user_id, mais il me faut juste le dèrnier : exemple de la table Attribut
item_id user_id date
5 9 2009-12-11
5 12 2010-02-26
2 3 2010-02-05
Donc le bout de code ci-dessus m'affichera : '9' et '12', or moi je veux juste '12' car si on compare les date c'est lui qui à la plus grande (^^).
Voilà! Merci!
EDIT : la réponse m'intéraisse toujour,
pour l'instant je vais chercher les User dans Attribut ayant un Item donné (c'est la clause where), puis pour chaqu'un faire un select dans User pour avoir ces infos.
L'idée c'est d'éviter la jointure entre 3 tables qui vont avoir des milliers de lignes.
EDIT2 : findManyToManyRowset() ne ferais pas par hasard des jointure ?
Dernière modification par maryooman (21-04-2010 15:51:43)
Hors ligne
J’ai réglé ce problème en faisant une grosse jointure.
EDIT : j'avais mis une question par rapport au where('truc = NULL'), il faillais mettre where('truc IS NULL') .....
ça peut aider peut être
Dernière modification par maryooman (01-03-2010 12:06:40)
Hors ligne
Pages: 1