Pro-tip:Nooit gebruik SELECT * in software, tenzij u precies weet waarom u dit doet. In jouw geval is het schadelijk.
Ik neem aan dat je vraag echt gericht is tegen de user en trade tabellen die u in uw vraag noemde.
Herschik eerst uw zoekopdracht met behulp van SQL van de 21e eeuw, als volgt:
SELECT *
FROM trade AS t
JOIN user AS s ON s.user_id = t.user_id_sender
WHERE s.facebook_id = $fbid
Ten tweede, gebruik dit om de namen van uw gebruikers en de verhandelde item-ID op te halen.
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
Bekijk hoe we JOIN de user tabel twee keer, met twee verschillende aliassen s (voor afzender) en r (voor ontvanger)? Dat is de truc om beide namen uit ID's te halen.
Bekijk hoe we de aliassen sender gebruiken en receiver om de twee user_name . ondubbelzinnig te maken kolommen in de resultatenset?
Als u nu de php fetch_array . gebruikt functie, krijg je deze elementen in de array.
$history['sender']
$history['receiver']
$history['item_id']
De array-indextekenreeksen komen overeen met de aliasnamen die u hebt opgegeven in uw SELECT clausule in uw zoekopdracht.
Dus een reden om SELECT * te vermijden is dat je meer dan één kolom met dezelfde naam kunt krijgen, en dat betekent fetch_array zal deze duplicaten verwijderen en dus zal nuttige informatie uit uw resultatenset verloren gaan.