IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Zend_Db > Zend_Db_Select
        Comment faire un SELECT ?
        Comment faire un SELECT MAX() ?
        Comment appliquer ORDER BY aux fonctions find<TableClass> ?
        Comment savoir combien d'enregistrements sont retournés par ma requête ?
        SQLServer : Syntaxe incorrecte (General error 10007)

rechercher
precedent    sommaire    suivant    telechargermiroir


Comment faire un SELECT ?
auteur : Guillaume Rossolini
Zend Framework utilise PDO pour exécuter les requêtes SQL. Il y a plusieurs méthodes simples pour lancer une requête SELECT :
Méthode 1
$select = $db->query('SELECT champ FROM table');
Méthode 2
$select = $db->select();
$select->from('table', 'champ');

La récupération du résultat se fait de la même manière pour les deux méthodes :
$rows = $select->fetchAll();

$rows contient tous les résutats de la requête sous forme de tableau (Array). Il ne reste plus qu'à appeler foreach dessus.

lien : faq Comment ne plus écrire de requêtes SQL ?

Comment faire un SELECT MAX() ?
auteur : lecra
Il suffit d'appeler la fonction MAX() dans la liste des champs :
Solution 1 :
$select = $db->query('SELECT MAX(champ) FROM table');
$max = $db->fetchOne($select);
Solution 2 :
$select = $db->select();
$select->from('table', 'MAX(champ)');
$max = $db->fetchOne($select);
lien : fr Tutoriel Zend Framework : Sélections avec Zend_Db

Comment appliquer ORDER BY aux fonctions find<TableClass> ?
auteurs : j.roc, Julien Pauli
Il est possible d'implémenter sa propre logique, mais il faut à ce moment là réécrire les méthodes en les surchargeant.


Comment savoir combien d'enregistrements sont retournés par ma requête ?
auteur : byc_r
Après avoir appelé la méthode fetchAll(), le résultat est placé dans un tableau PHP. Il suffit donc d'appeler la fonction PHP count() sur ce résultat pour savoir combien de tuples sont retournés par la requête.
$select = $db->select();
$select->from('table', 'champ');
$rows = $select->fetchAll();
echo count($rows);

SQLServer : Syntaxe incorrecte (General error 10007)
auteur : websurfeur
Le Zend Framework, en construisant les requêtes avec Zend_Db_Select, ajoute des guillemets pour protéger les noms des tables et des champs. SQL Server 7 n'aime pas du tout ce genre de requête, il les préfère sans guillemet.
Ce code PHP :
$select = $db->select();
$select->select("ma_table",array("colonne1") );
Est traduit en SQL :
SELECT "ma_table"."colonne1" FROM "ma_table";
La 1ère solution consiste à faire un remplacement des quotes doubles par rien avant d'exécuter la requête.

La 2ème consiste à activer l'option quoted identifier sur la table que vous souhaitez requêter dans MS SQL Server 7.


rechercher
precedent    sommaire    suivant    telechargermiroir

Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.