Kiat pro:Tidak pernah gunakan SELECT * dalam perangkat lunak kecuali Anda tahu persis mengapa Anda melakukannya. Dalam kasus Anda, ini berbahaya.
Saya berasumsi permintaan Anda benar-benar bertentangan dengan user dan trade tabel yang Anda sebutkan dalam pertanyaan Anda.
Pertama, susun ulang kueri Anda menggunakan SQL abad ke-21, sebagai berikut:
SELECT *
FROM trade AS t
JOIN user AS s ON s.user_id = t.user_id_sender
WHERE s.facebook_id = $fbid
Kedua, gunakan ini untuk mengambil nama pengguna Anda dan id item yang diperdagangkan.
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
Lihat bagaimana kami JOIN user tabel dua kali, dengan dua alias berbeda s (untuk pengirim) dan r (untuk penerima)? Itulah trik untuk mengambil kedua nama dari ID.
Lihat bagaimana kami menggunakan alias sender dan receiver untuk membedakan kedua user_name kolom di kumpulan hasil?
Sekarang, ketika Anda menggunakan php fetch_array fungsi, Anda akan berakhir dengan elemen-elemen ini dalam array.
$history['sender']
$history['receiver']
$history['item_id']
String indeks array sesuai dengan nama alias yang Anda tentukan di SELECT klausa dalam kueri Anda.
Jadi, salah satu alasan untuk menghindari SELECT * adalah Anda bisa mendapatkan lebih dari satu kolom dengan nama yang sama, dan itu berarti fetch_array akan menghilangkan duplikat tersebut sehingga akan kehilangan informasi yang berguna dari kumpulan hasil Anda.