Adat elérése JOIN-olt MySQL lekérdezés után.
Sziasztok!
Ha van egy olyan mysql lekérdezésem, amiben JOIN-nal összekapcsolok két táblát, és szerencsétlenül vannak azonos nevű mezők a táblákban, akkor az azonos mezők adatait ezidáig így adtam át változónak:Most viszont egy már kialakított lekérdezésben kellene hasonló atrakciót végrehajtanom, de ott ez a helyzet:Ilyen esetben hogyan tudom elérni az azonos nevű mezőket? Így próbáltam, de mindíg üres marad a változó:Bizonyára van elképzelésetek a megoldásról, kérlek osszátok meg velem!
s_volenszki
■ Ha van egy olyan mysql lekérdezésem, amiben JOIN-nal összekapcsolok két táblát, és szerencsétlenül vannak azonos nevű mezők a táblákban, akkor az azonos mezők adatait ezidáig így adtam át változónak:
- ...
- $tabla_1 = "tabla1";
- $tabla_2 = "tabla2";
- $query = mysql_query("SELECT * FROM `$tabla_1` JOIN `$tabla_2` ON $tabla_2.id = $tabla_1.id_tabla2");
- ...
- for($i=0;..){
- $azonosmezo_1 = mysql_result($query,$i,$tabla_1.".azonosmezonev");
- $azonosmezo_2 = mysql_result($query,$i,$tabla_2.".azonosmezonev");
- }
- ...
- ...
- $tabla_1 = "tabla1";
- $tabla_2 = "tabla2";
- $query = mysql_query("SELECT * FROM `$tabla_1` JOIN `$tabla_2` ON $tabla_2.id = $tabla_1.id_tabla2");
- ...
- while($item = mysql_fetch_array($query, MYSQL_ASSOC))
- {
- $item_id = $item['id_item'];
- }
- ...
- ...
- while($item = mysql_fetch_array($query, MYSQL_ASSOC))
- {
- $azonosmezo_1 = $item[$tabla_1.'.azonosmezonev'];
- $azonosmezo_2 = $item[$tabla_2.'.azonosmezonev'];
- }
- ...
s_volenszki
Explicit fel kell sorolni a mezőket
Kódoláskor is segít, hogy a query-ben látod az oszlopneveket az editorban, amikkel utána dolgozol és nem kell valami segédprogrammal nézegetni a táblaszerkezetet.
Egyetlen hátránya, hogy sokat kell gépelni :)
Alias
Ez azt jelenti, hogy az azonos mezőneveket így kérdezem le:
Történetesen minden mezőre szükség van, de általánosságban megfontolom a javaslatodat!
its a kind of magic
. "FROM table1 t1, table2 t2 "
. "WHERE t1.id=t2.id";
$result = mysql_query($query);
$items = array();
$i = 0;
while(($item = mysql_fetch_array($result, MYSQL_ASSOC) != false) {
$items[$i]['id1'] = $item['id1'];
$items[$i]['id2'] = $item['id2'];
$items[$i]['column1'] = $item['column1'];
$items[$i]['column2'] = $item['column2'];
$i++;
}
mysql_free_result($result);
az összes mezőre ajánlom a SELECT t1.* megoldást