comment optimiser mon code

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sff, 27 Juillet 2009.

  1. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    533
    J'aime reçus:
    0
    Bonjour, je souhaiterais optimiser mon code php, et éviter si possible d'exécuter une requête sql à chaque boucle.

    Pouvez-vous me dire comment je peux faire ?

    Merci

    Code:
    function bag($i1, $i2, $type) {// Affichage du sac.
    	
    	switch ($type) {
    	case 1: $type_text ='à équipements'; break;
    	case 2: $type_text ='à objets'; break;
    	case 3: $type_text ='à matériaux'; break;
    	case 4: $type_text ='à potions'; break;
    	}
    
    	$page = '<select name="slot"><option value="0">Vos poches '.$type_text.'</option>';
    
    	for ($i=$i1; $i<=$i2; $i++)
    	{
    		
    		if (is_numeric($userrow['bag'.$i.'id']) AND $userrow['bag'.$i.'id'] !=0) {
    			
    			$item = $mysql->query("SELECT name FROM ".$mysql->pref."_items WHERE id='".$userrow['bag'.$i.'id']."' LIMIT 1");
    			$item = mysql_fetch_assoc($item);	
    			
    			$page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : '.$item['name'].'</option>';
    
    		}elseif(!is_numeric($userrow['bag'.$i.'id'])) {
    			
    			$id_equip = explode(',',$userrow['bag'.$i.'id']);	
    			
    			$equip = $mysql->query("SELECT name FROM ".$mysql->pref."_equips WHERE id='".$id_equip[0]."' LIMIT 1");
    			$equip = mysql_fetch_assoc($equip);
    			
    			$page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : '.$equip['name'].'</option>';
    			
    		}else{ $page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : Vide</option>'; }	
    		
    	}
    
    	$page .='</select>';
    	
    	return $page;
    }
     
  2. petitchevalroux
    petitchevalroux WRInaute discret
    Inscrit:
    31 Mai 2006
    Messages:
    161
    J'aime reçus:
    0
    Tu peux mettre un IN ou un between $i1 $i2 et sortir tes requetes de ta boucle ... je suis pas sur que ça optimise mais au moins ça fait 3 requetes vs ($i2 - $i1) ;)
     
  3. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    533
    J'aime reçus:
    0
    Je comprends pas trop ce que tu veux dire.

    Il y a pas moyen d'éviter de tester pour chaque boucle ?
     
  4. petitchevalroux
    petitchevalroux WRInaute discret
    Inscrit:
    31 Mai 2006
    Messages:
    161
    J'aime reçus:
    0
    ben en faite en relisant ton code vite fait je vois pas d'ou vient la variable userrow mais bon le principe du in/between c'est plutôt que de de faire ta boucle sur tes requêtes tu fais un (ou plusieurs select) en dehors du genre :
    Code:
    SELECT CHAMPS ... FROM TABLE WHERE ID IN (1,2,3,4,5,6)
    
    Ou ALORS
    Code:
    SELECT CHAMPS ... FROM TABLE WHERE ID BETWEEN 1 AND 6
    
    En une fois que tu as toutes tes données tu fais ta boucle avec tous tes tests en php ce qui évite d'avoir 50000 requetes ... mais qui peut poser des problème si il y a trop de données a traiter (depassement de mémoire).

    C'est plus clair ? (Attention ça va pas dire que ma prochaine réponse sera un bout de code avec la solution)
     
  5. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    533
    J'aime reçus:
    0
    Non moi je demande pas qu'on me ponde la solution, mais juste une explication comme tu l'a très bien fait et je t'en remercie.

    Je viens d'essayer ta solution, mais dès le début, je vois que c'est pas possible sachant que $userrow['bag'.$i.'id'] peux très bien etre un chiffre sans virgule ou avec virgule.
     
  6. psykoko
    psykoko WRInaute occasionnel
    Inscrit:
    3 Juin 2005
    Messages:
    280
    J'aime reçus:
    0
    Explique moi ton modèle de données et ce que tu veux faire précisément : parce que là t'es en train de nous dire que tes id peuvent être alphanumérique??
     
Chargement...
Similar Threads - optimiser code Forum Date
Réduire et optimiser un code js Développement d'un site Web ou d'une appli mobile 16 Mars 2020
Optimiser le code d'un forum phpbb Problèmes de référencement spécifiques à vos sites 12 Juin 2015
optimiser un code pour ajout de mots clés secondaires Développement d'un site Web ou d'une appli mobile 15 Décembre 2014
Optimiser le code d'un forum phpbb pour rendre dynamique la title Débuter en référencement 20 Mai 2010
Optimiser serveur/code pour jeu développé en PHP Administration d'un site Web 11 Février 2007
Optimiser mon code et l'ergonomie... Administration d'un site Web 20 Juillet 2005
Optimiser son code html pour lynx Problèmes de référencement spécifiques à vos sites 16 Septembre 2003
SEO : comment optimiser une page d'accueil ? Demandes d'avis et de conseils sur vos sites 16 Juin 2022
OPTIMISER LES BALISES HTML D’UN SITE WEB  Développement d'un site Web ou d'une appli mobile 28 Juillet 2021
Optimiser un article qui rank sans le pénaliser Rédaction web et référencement 9 Juin 2021
Optimiser les vidéos pour la recherche YouTube YouTube, Google Images et Google Maps 27 Avril 2021
optimiser un nouveau site avec un NDD déjà existant ant Débuter en référencement 10 Mars 2021
Comment optimiser la profondeur des liens dans un blog ? Netlinking, backlinks, liens et redirections 10 Décembre 2020
Comment optimiser un fichier PDF pour le SEO ? Référencement Google 29 Janvier 2020
Chargement des pages, ton site tu optimiseras Référencement Google 27 Décembre 2019
Comment optimiser le référencement des fiches produits saisonniers e-commerce 6 Août 2019
Référencement local : optimiser pour les villes voisines Débuter en référencement 15 Mai 2019
Astuce Header dédié homepage pour optimiser le référencement Référencement Google 15 Mars 2019
Optimiser la vitesse d'une galerie GIF sur Wordpress Administration d'un site Web 21 Août 2018
Comment Optimiser Un Mot-Clé En Plusieurs Mots ? Débuter en référencement 3 Mars 2018