IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Optimisation de code [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 87
    Par défaut Optimisation de code
    Bonsoir,

    Je suis actuellement en train de coder une carte pour un jeu mais le souci c'est que le temps pour la générer est assez conséquent.

    Voici la fonction pour générer une portion de la carte (19*19) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    function draw_map($x,$y,$colonnes)
    {
    	$cote = ($colonnes-1)/2;
    	$debut_x = $x-$cote;
    	$debut_y = $y-$cote;
     
    	$nb_cases = $colonnes * $colonnes;
    	for($i=0;$i<$nb_cases;$i++)
    	{
    		if((($i%$colonnes) == 0) && ($i > 0))
    		{
    			$debut_x = $debut_x - $colonnes;
    			$debut_y++;
    			$carte .= '<br />';
    		}
    		$selection_case = mysql_query('SELECT libre_case FROM carte WHERE case_x='.$debut_x.' AND case_y='.$debut_y.'');
    		$donnees_case = mysql_fetch_array($selection_case);
    		if($donnees_case['libre_case'] == 1)
    		{
    			$selection_forteresse = mysql_query('SELECT * FROM forteresses WHERE position_x='.$debut_x.' AND position_y='.$debut_y.'');
    			$donneees_forteresse = mysql_fetch_array($selection_forteresse);
    		}
    		$carte .= ' ('.$debut_x.'-'.$debut_y.')';
    		$debut_x++;
    	}
    	return $carte;
    }
    Le problème, c'est que c'est une carte de 4 000 000 de cases et donc il y a 4 000 000 d'insertions dans la table "carte" :s
    Ça prend un temps assez énorme pour afficher la portion de carte et j'imagine que ça vient de là mais je ne vois pas trop comment je pourrais faire autrement.

    Merci d'avance pour votre aide.

    Ps : c'est en local mais j'ai une ordinateur assez puissant.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le problème vient surement du nombre de requete : ici tu fais 722 requetes.
    Il serait bien plus rapide de recolter toutes les informations de ta zone en une seule requete, de tout stocker dans un tableau et de travailler avec ce tableau.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 87
    Par défaut
    Ah oui, je vais tester ça, merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. optimiser le code d'une fonction
    Par yanis97 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/07/2005, 08h41
  2. Optimiser mon code ASP/HTML
    Par ahage4x4 dans le forum ASP
    Réponses: 7
    Dernier message: 30/05/2005, 10h29
  3. optimiser le code
    Par bibi2607 dans le forum ASP
    Réponses: 3
    Dernier message: 03/02/2005, 14h30
  4. syntaxe et optimisation de codes
    Par elitol dans le forum Langage SQL
    Réponses: 18
    Dernier message: 12/08/2004, 11h54
  5. optimisation du code et var globales
    Par tigrou2405 dans le forum ASP
    Réponses: 2
    Dernier message: 23/01/2004, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo