Tip pro profesionály:Nikdy použijte SELECT * v softwaru, pokud přesně nevíte, proč to děláte. Ve vašem případě je to škodlivé.
Předpokládám, že váš dotaz je skutečně proti user a trade tabulky, které jste zmínil ve své otázce.
Nejprve přeformulujte svůj dotaz pomocí SQL 21. století následovně:
SELECT *
FROM trade AS t
JOIN user AS s ON s.user_id = t.user_id_sender
WHERE s.facebook_id = $fbid
Za druhé, použijte toto k načtení vašich uživatelských jmen a ID obchodované položky.
SELECT s.user_name AS sender,
r.user_name AS receiver,
t.trade_id AS item_id
FROM trade AS t
JOIN user AS s ON s.user_id = t.user_id_sender
JOIN user AS r ON r.user_id = t.user_id_receiver
WHERE s.facebook_id = $fbid
Podívejte se, jak se JOIN user tabulka dvakrát, se dvěma různými aliasy s (pro odesílatele) a r (pro přijímač)? To je trik, jak z ID získat obě jména.
Podívejte se, jak používáme aliasy sender a receiver k odlišení dvou user_name sloupců v sadě výsledků?
Nyní, když použijete php fetch_array skončíte s těmito prvky v poli.
$history['sender']
$history['receiver']
$history['item_id']
Řetězce indexu pole odpovídají názvům aliasů, které jste zadali v SELECT klauzule ve vašem dotazu.
Takže jeden důvod, proč se vyhnout SELECT * je, že můžete získat více než jeden sloupec se stejným názvem, a to znamená fetch_array odstraní tyto duplikáty, a tak ztratí užitečné informace z vaší sady výsledků.