Fusionner 2 requetes sql

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sff, 3 Février 2010.

  1. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    525
    J'aime reçus:
    0
    Bonjour,

    Je suis actuellement en train de coder une petite map (carte) pour un jeu en ligne, mais j'ai un petit soucis. En effet dans mon code je me retrouve avec 2 requetes ( $mapquery et $elementsquery) . Mon but est d'utiliser le moins de ressouce possible. J'aimerais donc fusionner ces 2 requetes soit avec une jonction ou d'une autre mannière. Mais je ne sais vraiment pas comment faire. Voici le code :
    Code:
     $mapquery = mysql_query(sprintf("SELECT id, size_x, size_y  FROM %s_map WHERE id='%d' LIMIT 1", $mysql->pref, mysql_real_escape_string($select_map)));
    		$maprow = mysql_fetch_assoc($mapquery);
    
    		$x_start = -$maprow['size_x'];
    		$x_end = +$maprow['size_x'];
    		$y_start = -$maprow['size_y'];
    		$y_end = +$maprow['size_y'];
    
    		$debutx = $x_start;
    
    		while($y_end >= $y_start) {
    			
    			$page .='<div style="height: 32px">';
    			
    			while($x_start <= $x_end) {
    				
    				if($x_start==$playerrow['longitude'] && $y_end==$playerrow['latitude'] AND $maprow['id'] == $playerrow['map']){
    
    				$player ='<img src="images/avatars/carte/'.$playerrow['avatar'].'.gif" alt="">';
    
                    }else{
    				
    $elementsquery = mysql_query(sprintf("SELECT type FROM %s_map_elements WHERE latitude='%d' AND longitude='%d' AND map='%d' LIMIT 1", $mysql->pref, mysql_real_escape_string($y_end), mysql_real_escape_string($x_start), mysql_real_escape_string($maprow['id'])));
    		           $elementsrow = mysql_fetch_assoc($elementsquery);
    				
    				$player = (mysql_num_rows($elementsquery) != 0 AND $elementsrow['type'] == 0) ? null : '<input style="position: relative; top: 6px" type="radio" name="radio" value="'.$x_start.','.$y_end.'" onchange="submit(this.form)">';
    				
    				}
    				
    				$page .='<div style="width: 32px; height: 32px; float: left">'.$player.'</div>';	
    				
    				$x_start++;
    			}
    			
    			$page .='</div>';
    
    			$x_start = $debutx;
    			$y_end--;
    		}
    Merci à ceux qui pourront m'aider.
     
  2. zbug
    zbug Nouveau WRInaute
    Inscrit:
    30 Août 2009
    Messages:
    4
    J'aime reçus:
    0
    Si la table map_elements ne contient que les cases nécéesaires, cette requête devrait fonctionner :

    Code:
    SELECT type FROM map_elements AS me
    JOIN map m ON m.id = me.map
    WHERE m.id = $select_map
    ORDER BY me.latitude, me.longitude
    Sinon, si les cases peuvent dépasser size_x et size_y, il faut rajouter des conditions :

    Code:
    SELECT type FROM map_elements AS me
    JOIN map m ON m.id = me.map
    WHERE m.id = $select_map AND me.latitude < m.size_y AND me.latitude > -m.size_y  AND me.longitude < m.size_x AND me.longitude > -m.size_x 
    ORDER BY me.latitude, me.longitude
     
  3. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    525
    J'aime reçus:
    0
    Je viens d'utiliser ta deuxième solution, mais je me retrouve avec une requete invalide : mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

    Voici la requete :

    Code:
    $mapquery = mysql_query("SELECT type FROM rpg_map_elements AS me JOIN rpg_map m ON m.id = me.rpg_map WHERE m.id = $select_map AND me.latitude < m.size_y AND me.latitude > -m.size_y  AND me.longitude < m.size_x AND me.longitude > -m.size_x ORDER BY me.latitude, me.longitude");
    		$maprow = mysql_fetch_assoc($mapquery);
     
  4. zbug
    zbug Nouveau WRInaute
    Inscrit:
    30 Août 2009
    Messages:
    4
    J'aime reçus:
    0
    Je pense qu'il y a un erreur dans la requête SQL.

    Pour debuguer et afficher l'erreur :

    Code:
    $mapquery = mysql_query("...") or die(mysql_error());
     
Chargement...
Similar Threads - Fusionner requetes sql Forum Date
Fusionner 20 requetes en une seule Développement d'un site Web ou d'une appli mobile 17 Novembre 2016
Fusionner deux champs sur la même table et même base de donnée Mysql Administration d'un site Web 12 Septembre 2018
Fusionner plusieurs sites pays sur le.com Référencement international (langues, pays) 2 Août 2017
Fusionner 2 sites et redirections 301 Netlinking, backlinks, liens et redirections 4 Mai 2017
Est-il possible de fusionner 2 comptes adsense? AdSense 14 Novembre 2016
Fusionner ou lier, délier ma Page Facebook à mon Profil ? Facebook 9 Mars 2016
Fusionner deux sites ecommerce, est-ce pertinent ? e-commerce 1 Février 2016
Fusionner plusieurs page Google+ Google+ 21 Août 2014
Fusionner des CSS -> problème ? Développement d'un site Web ou d'une appli mobile 22 Juillet 2014
Fusionner 2 pages Google+ Google+ 12 Juin 2014
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice