Fork me on GitHub






Classe Criteria
Aspirant
Inscrit: 27/10/2004 03:36
Messages: 32
Salut tous le monde,

Je viens vers vous pour un soucis avec la classe criteria.
En effet, j'ai dans une table sql des champs du type,
ID| CODE | QTE | DATE

Je voudrais pouvoir afficher les résultats seulement des dates qui ne correspondent pas.
C'est a dire, si j'ai 3 lignes du type,
1 | 2015 | 2 | 2512458
2 | 2016 | 1 | 2512458
3 | 2017 | 4 | 8541252

Je ne veux pouvoir afficher
3 Articles en date du 2512458
4 Articles en date du 8541252

Si vous voyez ce que je veux dire.

Voici le code que j'ai mis :

$history =& get_manager('history');
$Bcols = array('pid','qte','date');
$criteria = new CriteriaCompo(new Criteria('pid',$_COOKIE['uid'],'='));
$criteria->setGroupby('date');
$myBackup =& $history->getObjects($criteria,$Bcols);
$count = $history->getCount($criteria);

Mais même avec le setGroupby, j'ai toutes les lignes d'affichées.

Voila, si vous pouvez me donner un coup de pouce.
Merci

Posté le : 24/03/2010 19:39
Partager Twitter Partagez cette article sur GG+
Re: Classe Criteria
Xoops accro
Inscrit: 20/02/2008 20:27
De Belgium
Messages: 2708
De quelle module on parle?

Je crois qu'il faut
$Bcols = array('sum(qte)','date');


Mettez debug en marche et retournez ici le requête SQL créée avec le fonction.

Posté le : 25/03/2010 12:02

Salutations, Gerard.
PS: Excusez mon mauvais français.
De la bonne manière de poser les questions
Partager Twitter Partagez cette article sur GG+
Re: Classe Criteria
Aspirant
Inscrit: 27/10/2004 03:36
Messages: 32
Salut,

j'ai tester et ca ne fonctionne pas, ca ne me retourne plus aucunes valeurs.

Pour le debug, je ne sais pas comment l'afficher avec la classe criteria ?

Merci de ton aide.

Posté le : 25/03/2010 18:55
Partager Twitter Partagez cette article sur GG+
Re: Classe Criteria
Semi pro
Inscrit: 27/08/2003 11:03
De Perpignan
Messages: 1255
D'un premier coup d'œil il semble normal qu'il affiche tout, tu lui demandes juste de trier par date, pas d'afficher une seule date...
Il me semble que la piste (je n'ai pas le bon code) serait plutôt :
$tri=new Criteria;

$searchpardate=data afficher;

$tri->renderWhere($searchpardate);


edit : un post qui pourra peut être t'aider :
https://www.frxoops.org/modules/newbb/viewtopic.php?post_id=85348

et pris dans le wiki :

Citation :
The Criteria class only handles a single 'WHERE' condition. If you need multiple conditions, use CriteriaCompo? in combination with Criteria. Here is an example out of the mailusers file: $criteria_object = new CriteriaCompo?(); foreach ($criteria as $c) { list ($field, $op, $value) = split(' ', $c); $criteria_object->add(new Criteria($field,$value,$op), 'AND'); } If you have just a few simple conditions, you can just use $criteria_object = new CriteriaCompo?(); $criteria_object->add(new Criteria($field1,$value1,$op1), 'AND'); $criteria_object->add(new Criteria($field2,$value2,$op2), 'AND');


(donc confirmation que mon code n'est pas bon )

Posté le : 27/03/2010 07:26

Si tu frappes sur ta tête avec une cruche et que ça sonne creux, n'en déduis pas forcément que c'est la cruche qui est vide. ...
Partager Twitter Partagez cette article sur GG+
Re: Classe Criteria
Aspirant
Inscrit: 27/10/2004 03:36
Messages: 32
J'ai réussi le group by, j'ai ajouté ceci dans le fichier class.object.php dans le fonction &getObjects

if( $criteria->getGroupby() != ' GROUP BY ')
            {
                
$sql .= $criteria->getGroupby();
            }


Ca fonctionne enfin, cependant, je n'arrive pas à faire la somme des colonnes, j'ai bien essayé
$Bcols = array('sum(qte)','date');


Mais dès que je met ca, je n'ai plus aucun enregistrement d'affiché.

Si vous connaissez la solution pour faire une somme avec la classe criteria.

Merci

Posté le : 27/03/2010 15:34
Partager Twitter Partagez cette article sur GG+
Re: Classe Criteria
Xoops accro
Inscrit: 20/02/2008 20:27
De Belgium
Messages: 2708
Pour le debug, c'est dans les préférences pour le mettre en marche (debug PHP).
En suite, en bas de votre page, vous pouvez inspecter tous les requêtes SQL.

Posté le : 27/03/2010 15:47

Salutations, Gerard.
PS: Excusez mon mauvais français.
De la bonne manière de poser les questions
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

97 Personne(s) en ligne (66 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 97 | Plus ...