Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Depuis hier je tourne en rond et je ne trouve pas la solution pour extraire la valeur maximale d'un champ
select max(champ) from table
en utilisant zend framework.
Est-ce que quelqu'un pourrait m'expliquer la procédure ?
Merci
Hors ligne
C'est relativement simple.
L'objet $db représente le dbAdapter.
$select=$db->select(); $select->from('table', 'maximum'=>'max(champ)'); $result=$db->fetchOne($select);
Ca devrait être ça, enfin en gros quoi
Hors ligne
merci,
mais je comprend pas bien comment je défini le dbAdapter.
Est-ce que c'est la classe qui contient le nom de la table qu'on met dans le dossier "models" ?
Hors ligne
Non, ça ca doit être plutot le code que tu dois mettre dans le modele, enfin je ne sais pas trop.
Le dbAdapter, c'est simplement ta base de donnée qui doit être déclarée sur l'index je pense.
Il est déclaré comme ça dans mon cas :
//DB init Zend_Loader::loadClass('Zend_Db'); Zend_Loader::loadClass('Zend_Db_Table'); $params = array( 'host' => DB_SERVER , 'username' => DB_USER , 'password' => DB_PASSWORD , 'dbname' => DB_NAME ); $dbAdapter = Zend_Db::factory(DB_TYPE,$params);
Hors ligne
moi aussi mais quand je suis dans un controller, je n'ai pas accés à mon $dpAdapter
Hors ligne
Il suffit de le mettre dans le registre :
Zend_Db_Table::setDefaultAdapter($dbAdapter); Zend_Registry::set("db",$dbAdapter);
Aprés il est accessible d'ou tu veux dans ton appli avec Zend_Registry::get("db");
Dernière modification par Isilgawen (15-05-2007 11:39:46)
Hors ligne
ok merci je vais faire un petit test
Hors ligne
Merci, ça roule
Hors ligne
slt tout le monde
j'ai le méme probleme, mais quand j'ai fais:
$select->from('table', 'maximum'=>'max(champ)');
il me donne l'erreur:
Parse error unexpected T_DOUBLE_ARROW, sur cette ligne
j'ai cherché et j'ai trouvé que je derais mettre
$select->from('table', 'maximum'>='max(champ)');
>= au llieu de =>;
quand je l'ai mis je n'ai ppas d'erreur mais il me selectionne le min au lieu du max que je veux
j'attend votre aide sur ce coup!!
Hors ligne
essaye plutot comme cela :
$select->from('table', array('maximum'=>'max(champ)'));
Hors ligne