Wskazówka dla profesjonalistów:Nigdy użyj SELECT * w oprogramowaniu, chyba że wiesz dokładnie, dlaczego to robisz. W twoim przypadku jest to szkodliwe.
Zakładam, że Twoje zapytanie jest naprawdę skierowane przeciwko user i trade tabele, o których wspomniałeś w swoim pytaniu.
Najpierw przekształć zapytanie, używając SQL XXI wieku, w następujący sposób:
SELECT *
FROM trade AS t
JOIN user AS s ON s.user_id = t.user_id_sender
WHERE s.facebook_id = $fbid
Po drugie, użyj tego, aby pobrać nazwy użytkownika i identyfikator przedmiotu, którym handlowałeś.
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
Zobacz, jak JOIN user tabela dwukrotnie, z dwoma różnymi aliasami s (dla nadawcy) i r (dla odbiorcy)? To sztuczka, aby pobrać obie nazwy z identyfikatorów.
Zobacz, jak używamy aliasów sender i receiver aby odróżnić dwa user_name kolumny w zestawie wyników?
Teraz, gdy używasz php fetch_array funkcji, otrzymasz te elementy w tablicy.
$history['sender']
$history['receiver']
$history['item_id']
Ciągi indeksu tablicy odpowiadają aliasom określonym w SELECT klauzuli w zapytaniu.
Dlatego jednym z powodów, aby unikać SELECT * jest to, że możesz uzyskać więcej niż jedną kolumnę o tej samej nazwie, co oznacza fetch_array wyeliminuje te duplikaty, a tym samym utraci przydatne informacje z zestawu wyników.