Consejo profesional:Nunca usa SELECT *
en el software a menos que sepa exactamente por qué lo está haciendo. En tu caso es perjudicial.
Supongo que su consulta es realmente contra el user
y trade
tablas que mencionó en su pregunta.
Primero, reformule su consulta utilizando SQL del siglo XXI, de la siguiente manera:
SELECT *
FROM trade AS t
JOIN user AS s ON s.user_id = t.user_id_sender
WHERE s.facebook_id = $fbid
En segundo lugar, use esto para recuperar los nombres de sus usuarios y la identificación del artículo intercambiado.
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
Vea cómo JOIN
el user
tabla dos veces, con dos alias diferentes s
(para el remitente) y r
(para el receptor)? Ese es el truco para obtener ambos nombres de las identificaciones.
Vea cómo empleamos los alias sender
y receiver
para eliminar la ambigüedad de los dos user_name
columnas en el conjunto de resultados?
Ahora, cuando usas php fetch_array
función, terminará con estos elementos en la matriz.
$history['sender']
$history['receiver']
$history['item_id']
Las cadenas de índice de matriz corresponden a los nombres de alias que especificó en su SELECT
cláusula en su consulta.
Entonces, una razón para evitar SELECT *
es que puede obtener más de una columna con el mismo nombre, y eso significa fetch_array
eliminará esos duplicados y perderá información útil de su conjunto de resultados.