Réunir 2 requetes en une seule

sff

WRInaute impliqué
Bonjour,

J'aimerais savoir si il est possible de réunir ces les 2 requêtes ci-dessous en une seule pour utiliser le moins de ressource possible
. Il faut également que $tab_items et $tab_equips fonctionne comme maintenant.

Code:
$itemsquery = mysql_query("SELECT id, name, attribute1, attribute2 FROM ".$mysql->pref."_items WHERE id IN (".$bonusrow['list_potions'].",".$bonusrow['list_items'].")");

	while ($itemsrow = mysql_fetch_assoc($itemsquery)) {

		$tab_items[$itemsrow['id']] = array("name" => $itemsrow['name'],"attribute1" => $itemsrow['attribute1'],"attribute2" => $itemsrow['attribute2']);
		
	}
	
	$equipsquery = mysql_query("SELECT id, name, type, special, attribute FROM ".$mysql->pref."_equips WHERE id IN (".$bonusrow['list_equips'].")");

	while ($equipsrow = mysql_fetch_assoc($equipsquery)) {

		$tab_equips[$equipsrow['id']] = array("name" => $equipsrow['name'],"type" => $equipsrow['type'],"special" => $equipsrow['special'],"attribute" => $equipsrow['attribute']);
		
	}

Merci
 

UsagiYojimbo

WRInaute accro
Les tables dans lesquels tu fais tes requêtes n'ont a priori rien à voir. Je ne vois pas comment ça serait possible...
 

jcaron

WRInaute accro
C'est possible, mais je ne suis pas sûr que ce soit vraiment une bonne idée...

select 'items' as row_type,id,name,attribute1,attribute2,'' as type,'' as special,'' as attribute from items where id in (...) union all select 'equips',id,name,null,null,type,special,attribute from equips where id in (...)

Ensuite tu fais une seule boucle, et à chaque fois tu testes si $row['row_type'] vaut "items" ou "equips" pour mettre d'un côté ou de l'autre.

Note qu'il est possible qu'il faille remplacer les '' par autre chose de plus adapté (il faut qu'ils aient le même type que les colonnes correspondantes par la suite).

Mais bon, l'intérêt me semble assez limité, ça ne va pas spécialement réduire la consommation de quoi que ce soit.

Jacques.
 

Discussions similaires

Haut