Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai actuellement une requête qui me récupère tous les ordinateurs possédés par un joueur, ainsi que son OS et le boitier utilisé :
$select = $this->select() ->setIntegrityCheck(false) ->from(array('o' => 'hl_ordinateurs'), array('ordinateur_ID', 'ordinateur_nom', 'ordinateur_frontal', 'ordinateur_temps_reboot', 'ordinateur_on_off', 'ordinateur_numero', 'boitier_ID', 'os_ID', 'joueur_ID' ) ) ->joinLeft(array('os' => 'hl_os'), 'o.os_ID = os.os_ID', array('os_ID', 'os_nom', 'os_description', 'os_image', 'os_temps_install', 'os_faille', 'os_dev', 'os_production', 'os_stabilite', 'os_go', 'os_gh' ) ) ->joinLeft(array('b' => 'hl_boitiers'), 'o.boitier_ID = b.boitier_ID', array('boitier_nom', 'boitier_description', 'boitier_image', 'boitier_prix_achat', 'boitier_gw', 'boitier_slot', 'boitier_temps_evolution' ) ) ->where('o.joueur_ID = ?', (int)$joueur);
Jusque là, pas de problème particulier, tout fonctionne. Seulement maintenant, je voudrais récupérer le nombre de composants actif pour chaque ordinateur, Pour cela, je suppose qu'il faut que je passe par une requête imbriquée, hors je n'ai aucune idée de comment l'inclure dans mon select :s !
Donc si quelqu'un a une solution je suis preneur !
Merci d'avance !
Hors ligne
Bonjour,
Pour utiliser une requête imbriquée, il faut créer un deuxième objet "$select2" qui sera utilisé par "$select"
//requete1 $select = $this->select() ->setIntegrityCheck(false) ->from(...) ->joinLeft(...) ...... /requete2 $select2 = $this->select() ->setIntegrityCheck(false) ->from(...) ->joinLeft(...) ...... //imbrication $select->orwhere("xxxxx IN ($select2)");
à bientôt
Hors ligne