Proffstips:Aldrig använd SELECT *
i programvara om du inte vet exakt varför du gör det. I ditt fall är det skadligt.
Jag antar att din fråga verkligen är emot user
och trade
tabeller du nämnde i din fråga.
Omarbeta först din fråga med SQL från 2000-talet, enligt följande:
SELECT *
FROM trade AS t
JOIN user AS s ON s.user_id = t.user_id_sender
WHERE s.facebook_id = $fbid
För det andra, använd detta för att hämta dina användarnamn och artikel-id:t.
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
Se hur vi JOIN
user
tabell två gånger, med två olika alias s
(för avsändare) och r
(för mottagare)? Det är tricket att hämta båda namnen från ID:n.
Se hur vi använder aliasen sender
och receiver
för att disambiguera de två user_name
kolumner i resultatuppsättningen?
Nu, när du använder php fetch_array
funktion, kommer du att sluta med dessa element i arrayen.
$history['sender']
$history['receiver']
$history['item_id']
Arrayindexsträngarna motsvarar aliasnamnen du angav i din SELECT
klausul i din fråga.
Så, en anledning att undvika SELECT *
är att du kan få mer än en kolumn med samma namn, och det betyder fetch_array
kommer att eliminera dessa dubbletter och så kommer den att förlora användbar information från din resultatuppsättning.