8722 sujets

Développement web côté serveur, CMS

Bonjour,

Suite à une longue absence cause de santé pendant plusieurs moi je reprend un vieux projet mes connaissances revienne petit à petit mais un quelques trous de mémoire encore subsistent.

J'avais créer une fonction pour récupérer l'ensemble des informations globale du site dans la base de donnée que voici :


 	function __siteInfos(){global $prfx;
		$loadBDD = loadPDO::getInstance();
		$requete = $loadBDD->prepare("SELECT name, value1 FROM ".$prfx."infos");
		$requete->execute();
		while($result = $requete->fetchAll(PDO::FETCH_GROUP)){
			$sortie = $result;		
			$requete->closeCursor();
		}
		$test = "1";
	return $sortie;}
	
	function _siteInfos($type, $colonne){
		global $siteInfos;
		$sortie = $siteInfos[$type][0][$colonne];
	return $sortie;}


Pour récupérer une informations je peut sois faire ainsi :


$siteInfos = __siteInfos();

echo _siteInfos('site_url', 0)


ou de cette manière


$siteInfos = __siteInfos();

echo $siteInfos[site_url"][0][0]


C'est un peut brouillon dans ma tête de tout reprendre donc je révise l'ensemble du code que j'ai écris pour trouver des erreurs, corrections, amélioration possible mais qu'importe comment je fais au dessus j'ai l'impression que je génère trop de requête.

Sur une page de configuration je récupère 16 fois des informations par la fonction, donc je génère 16 requêtes c'est bien ça ? Ou la mise en tableau de la deuxième méthode ne reviens qu'à une seule requête ?

J'essaye de créer un petit compteur de requête dans les diverses fonctione que j'ai créer mais je dois avouer ne pas voir comment l'intégrer pour connaitre le nombre de requête effectué à chaque chargement de page.

Désolé c'est un peut le chamboultou, j'espère que vous saurez m'aider un petit peut.

D'avance merci de votre lecture et possible réponses.

Cordialement
Astreia
C'est "space" ton code, tu mélanges procédural et objet, tu utilises du global et du singleton, tu fais un prepare() sur une requête non préparée, tu fais un while sur un fetchAll()... Tout ça c'est très contradictoire.

Je serais toi je reverrais les bases avant d'aller plus loin.
EDIT :

Je les revois au fur et à mesure, je sais bien qu'il faut que je me remette dans le code surtout au bout de 5 mois d'inactivité.


	function __infoSite(){
		$loadBDD = loadPDO::getInstance();
		$requete = $loadBDD->query("SELECT name, value1 FROM site_infos");
		$sortie  = $requete->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);
	return $sortie;}	
	$infoSite = __infoSite();
	
	echo $infoSite["si_title"][0];


Là je ne l'ai pas mis le global pour le test, mais j'ai du mal à voir le soucis que tu précise avec le global $prfx que j'avais mis au tout début de mon premier code.

Normalement ainsi, en mettant la fonction dans $test je ne charge qu'une seule fois la requête et tout est disponible dans un tableau ou bien à chaque fois que je ferais un echo identique, une requête en plus sera compté ?

Merci pour ta réponse qui de toute manière était exactement comme je pensais, je ne me souviens plus où je m'était arrêter sur le pdo à l'époque mais bon je ne suis pas pressé maintenant je m'y remet tranquillement.
Modifié par Astreia (23 Apr 2013 - 22:13)