Професионален съвет:Никога използвайте SELECT * в софтуера, освен ако не знаете точно защо го правите. Във вашия случай е вредно.
Предполагам, че вашата заявка наистина е срещу user и trade таблици, които споменахте във вашия въпрос.
Първо, преработете заявката си, като използвате SQL от 21-ви век, както следва:
SELECT *
FROM trade AS t
JOIN user AS s ON s.user_id = t.user_id_sender
WHERE s.facebook_id = $fbid
Второ, използвайте това, за да извлечете имената на вашите потребители и идентификатора на търгувания артикул.
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
Вижте как JOIN user таблица два пъти, с два различни псевдонима s (за подател) и r (за приемник)? Това е трикът за извличане на двете имена от идентификатори.
Вижте как използваме псевдонимите sender и receiver за да разграничите двете user_name колони в резултатния набор?
Сега, когато използвате php fetch_array функция, ще се окажете с тези елементи в масива.
$history['sender']
$history['receiver']
$history['item_id']
Индексните низове на масива съответстват на имената на псевдонимите, които сте посочили във вашия SELECT клауза във вашата заявка.
Така че, една от причините да избягвате SELECT * е, че можете да получите повече от една колона със същото име и това означава fetch_array ще премахне тези дубликати и така ще загуби полезна информация от вашия набор от резултати.