Fusionner 2 requetes sql
4 messages
• Page 1 sur 1
-

sff - WRInaute occasionnel

- Messages: 336
- Inscription: 2 Fév 2005
Fusionner 2 requetes sql
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 :
Merci à ceux qui pourront m'aider.
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: Tout sélectionner
$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.
- zbug
- Nouveau WRInaute

- Messages: 4
- Inscription: 30 Aoû 2009
Re: Fusionner 2 requetes sql
Si la table map_elements ne contient que les cases nécéesaires, cette requête devrait fonctionner :
Sinon, si les cases peuvent dépasser size_x et size_y, il faut rajouter des conditions :
- Code: Tout sélectionner
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: Tout sélectionner
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
-

sff - WRInaute occasionnel

- Messages: 336
- Inscription: 2 Fév 2005
Re: Fusionner 2 requetes sql
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 :
Voici la requete :
- Code: Tout sélectionner
$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);
- zbug
- Nouveau WRInaute

- Messages: 4
- Inscription: 30 Aoû 2009
Re: Fusionner 2 requetes sql
Je pense qu'il y a un erreur dans la requête SQL.
Pour debuguer et afficher l'erreur :
Pour debuguer et afficher l'erreur :
- Code: Tout sélectionner
$mapquery = mysql_query("...") or die(mysql_error());
4 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Consultez la description détaillée des produits ou services de Google suivants : Google Trends Recherche Personnalisée
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités
