Questions sur PDO et les jointures

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Questions sur PDO et les jointures

Re: Questions sur PDO et les jointures

par Genova » 19 nov. 2014, 00:53

Tu m'as tout l'air d'avoir besoin d'utiliser un ORM, Doctrine 2 est très bien, et te permettra en plus de pas mal progresser en PHP puisque c'est de l'objet à 110%.

Questions sur PDO et les jointures

par Soundboy39 » 13 nov. 2014, 08:57

Bonjour à toutes et tous,

J'ai un framework au sein duquel j'utilise l'objet PDO pour effectuer tout ce qui est requête SQL. J'aimerais améliorer ma méthode en "automatisant" la gestion des requêtes "multi-table". De manière générale j'utilise le LEFT JOIN dans mes SELECT.

Voici un exemple de requête :

Code : Tout sélectionner

SELECT users.*, profils.fields, userjoin.nom_jointure FROM pref_users AS users LEFT JOIN prefs_profils AS profils ON profils.uid = users.id LEFT JOIN pref_userjointures AS userjoin ON userjoin.uid = users.id
J’exécute la requête avec PDO :

Code : Tout sélectionner

$pdo_q = $pdo->prepare($requete); //celle citée en exemple $pdo_q->execute($conditions); $donnees = (array) $pdo_q->fetch(PDO::FETCH_GROUP|PDO::FETCH_ASSOC); $pdo_q->closeCursor();
et voici le contenu de l'array "$donnees" :

Code : Tout sélectionner

array (size=16) 'id' => string '1' (length=1) 'username' => string 'micka' (length=9) 'name' => string 'mickael' (length=7) 'mail' => string '[email protected]' (length=27) 'state' => string '1' (length=1) 'registration' => string '0' (length=1) 'last_connection' => string '0' (length=1) 'fields' => string '{}' (length=2) 'nom_jointure' => string 'polo' (length=4)
Alors j'ai deux questions qui auront tendance à se rejoindre :

la 1ère : au niveau du tableau "donnees", y a t'il un moyen pour regrouper les champs par "tables" dans des sous-tableau ? j'ai fais des recherches au niveau des paramètres de la méthodes "fetch", au niveau d'autres méthodes de PDO, avec des GROUP BY... pas moyen.
Je sais que le framework CakePHP le fait mais je n'arrive pas à voir comment.

la 2ème : si jamais un des critères n'est pas respecté au niveau d'une des tables, comment faire pour que les données des autres tables soit tout de même retournées ??

Merci d'avance pour votre aide et bonne journée.