organisation de requete

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 : organisation de requete

Re: organisation de requete

par moogli » 07 févr. 2012, 13:28

si le modèle existe déjà reprend la chose c'est le plus simple, au pire regarde comment est fait une autre page.

Je m'inquiète sur le contrôleur, c'est une partie que tu a mis la ou tu tente de créer un contrôleur par page ?

sinon sur le principe ton code semble fonctionnel. après faut voir le fonctionnement de smarty, la je ne connais pas :)

@+

Re: organisation de requete

par miiidooo19 » 07 févr. 2012, 11:56

Merci moogli pour votre message :)

tu as tt a fait raison je suis un peu perdu (beaucoup même) en fait je début en architecture MVC et je veux ajouter une page qui afficher les partenaires de l'entreprise qui sont stocké dans une BDD bien entendu

donc pour ce faire faut que je m'adapte avec MVC (c'est pas toujours facile pour un débutant comme tu as dit ) mais j'ai réussi déjà de ajouter une page en utilisant le modèle MVC sauf que cette fois-ci y a de SQL et des tableaux :) chose qui me perturbe encore plus ^^

donc j'ai utilisé moi des fonctions simple que je connais genre mysq_query mysql_fetch_object... et ça marche pas psk j'ai besoin d'un paramétré de la connexion a la bdd et j'ai pas envi de fouiller dans les autres fichiers parce que vraiment c'est mal fait le code de mec :s

donc j'ai essayé d'utilisé la même chose que lui

$query = $db->prepare('SELECT .....');
$query->SetFetchMode(PDO::FETCH_ASSOC);
$query->execute();
$nosPartenaires = $query->fetchAll();

donc voila
voici les code des 3 fichier M V C que j'ai fait

contoleur
<?php

	 require_once(MODELS.'liens.php');
	 
     $mesPartenaires = getPartenaires();
	 $smarty->assign('mesPart', $mesPartenaires);
 ?>
modèle :
<?php

  function getPartenaires(){
    global $db;
    $query = $db->prepare('SELECT nom,img,site,presentation FROM partenaires ORDER BY nom DESC');
    $query->SetFetchMode(PDO::FETCH_ASSOC);
    $query->execute();
    $mesPartenaires = $query->fetchAll(); 
    
    return $mesPartenaires;
  }
?>
Vue
<h1 style="font-size:1.25em; margin:0;">Liens vers nos partenaires :</h1><br />

<br />
<!--{foreach from=$mesPart key=myId item=mesPartenaires}-->
    <img src="<!--{$mesPartenaires.img}-->" /><br />
    <a href="<!--{$mesPartenaires.site}-->" ><!--{$mesPartenaires.nom}--> </a><br />
    <!--{$mesPartenaires.presentation}-->
<!--{/foreach}-->

Re: organisation de requete

par moogli » 07 févr. 2012, 11:33

non,

fetchAll recupère dans un tableau tous les tuples résulats
mysql_fetch_* c'est tuples par tuple !

rassure moi, en fait t'es planté et tu sais plus trop où tu en ai la non ?

si c'est un simple affichage pas besoin du fetchAll, le fetch "classique" et une boucle est amplement suffisant.

Perso je ne me souvient plus pourquoi je t'es orienté la dessus, mais si toi tu ne le sais plus c'est foutu :mrgreen:

donc :
1/ stopper le code
2/ faire le point sur : ce que tu veux et la où tu en es
3/ prévoir ce qu'il faut faire
4/ réaliser la chose.

je n'ai pas mis la (re)lecture de tutos / docs sur les différents technos que tu utilise car tu en a besoin (c'est une critique mais c'est vrai, perso je ne bosse qu'avec la doc sous coude parce que l'on ne peux pas tous connaitre par cœur, surtout quand on débute).

dernière chose, si tu intègre ton code dans un code existant il faut reprendre (de préférence) les méthodes utilisées dans celui ci. Clairement si y a pas d'utilisation de PDO dans le code ne l'utilise pas ou reprend tout le code dans ce sens (c'est une évolution compréhensible, reste à savoir c'est nécessaire et si tu en a le temps et les capacités). Si le code est articulé autour de l'extension mysql continue avec il y a surement déjà une connexion d'ouverte que tu a juste a réutiliser.

comme il te l'as déjà été dit une application c'est d'abord une modélisation et une préparation de ce que l'on doit faire avant de le faire (parfois plus de 80% de prépa et moins de 20% de code, parce qu'il y a plein de truc a faire comme les tests, la doc etc etc).

@+

Re: organisation de requete

par xTG » 07 févr. 2012, 11:30

Non c'est le même principe que fetch().
fetchAll() récupères tous les résutlats.
Equivalences :
$result = array();
while($r = mysql_fetch_array($res) )
  $result[] = $r;
$result = $res->fetchAll();

Re: organisation de requete

par miiidooo19 » 07 févr. 2012, 11:23

Le second et sans majuscule d'après ton schéma de table.
oui :) merci x tg =D>
Je serais curieux de voir ton "plus facilement" qu'un simple fetchAll(). ;)
sinon on peut organiser ça avec une mysql_fetch_object ou assoc .. c'est le même principe que fetchAll() non ?

Re: organisation de requete

par xTG » 07 févr. 2012, 11:21

Le second et sans majuscule d'après ton schéma de table.

Re: organisation de requete

par miiidooo19 » 07 févr. 2012, 11:17

Je serais curieux de voir ton "plus facilement" qu'un simple fetchAll(). ;)
$pathImage2 = $nosPartenaires[1]['path_Img_2'];
Mais tu aurais utilisé un var_dump() que tu l'aurais trouvé toi même.
:D
$pathImage2 = $nosPartenaires[1]['path_Img_2']
ou
$pathImage2 = $nosPartenaires[1]['Img']
?

Re: organisation de requete

par xTG » 07 févr. 2012, 11:14

Je serais curieux de voir ton "plus facilement" qu'un simple fetchAll(). ;)
$pathImage2 = $nosPartenaires[1]['path_Img_2'];
Mais tu aurais utilisé un var_dump() que tu l'aurais trouvé toi même.

Re: organisation de requete

par miiidooo19 » 07 févr. 2012, 10:45

sous forme d'un tableau non ? de combien de dimensions ?
a tu lu la doc de la méthode fetchAll() ?

parce que bon y a un bel exemple qui va répondre a ta question.

au pire tu utilise var_dump(); pour afficher le résultat :)


@+
je trouve que c'est tres compliqué cette méthode :s en fait je boss sur un site déjà fait et je modifier des truc et donc je tombe sur des fonctions que je connais pas et que je vois pas l’utilité vu qu'on peu faire mieux facilement :s ^^
bonne ce que je veux faire maintenant c'est affiché les résultats que j'ai eu dans $mesPartenaires (sachant qu'il y a 4 champs dans la table partenaires )

id | nom | lien | img | presentation
1 | partenaire_1 | site_1 | pathImg_1 | presentation_1
2 | partenaire_2 | site_2 | pathImg_2 | presentation_2
3 | partenaire_3 | site_3 | pathImg_3 | presentation_3

comment accès a pathImg2 par exemple

Re: organisation de requete

par xTG » 07 févr. 2012, 10:33

Aucune utilité d'une requête préparée dans ton cas, c'est consommer des ressources pour rien.
La fonction query() suffit ainsi que la définition du FETCH_MODE dans la fonction fetchAll().

Pour le retour cela renvoie deux dimensions.
La première pour chacun des n-uplets et la seconde pour chacune de tes colonnes de table.

Re: organisation de requete

par moogli » 07 févr. 2012, 10:32

sous forme d'un tableau non ? de combien de dimensions ?
a tu lu la doc de la méthode fetchAll() ?

parce que bon y a un bel exemple qui va répondre a ta question.

au pire tu utilise var_dump(); pour afficher le résultat :)


@+

organisation de requete

par miiidooo19 » 07 févr. 2012, 10:26

bonjour

je fait une requête

$query = $db->prepare('SELECT * FROM partenaires ORDER BY nom DESC');
$query->SetFetchMode(PDO::FETCH_ASSOC);
$query->execute();
$nosPartenaires = $query->fetchAll();

donc les résultats de la requête pour le moment sont enregistrer dans $nosPartenaires sous forme d'un tableau non ? de combien de dimensions ?