मैं दो प्रश्नों का उपयोग करके अपने डीबी से ला रहा हूं और जब मैं प्रत्येक के लिए परिणाम प्रिंट करने का प्रयास करता हूं तो यह सब प्रिंट करता है लेकिन जब मैं इसे बाहर प्रिंट करने का प्रयास करता हूं तो यह सबकुछ प्रिंट नहीं करता है:

$arr_devices = [];
$sql1 = "SELECT id FROM users WHERE users.name = '$company_name'"; //finding the ids of the users of this company
if ($res = $db->query($sql1)) {
    $arr_id = $res->fetch_all(MYSQLI_ASSOC);
    foreach ($arr_id as $company_id) {
        $sql = "SELECT
        devices.id, 
        devices.serial_imei, 
        devices.serial_no, 
        devices.type_id, 
        devices.cus_id, 
        devices.sales_date,
        device_types.name,
        device_types.manufacturer,
        device_types.device_no,
        device_types.barcode,
        users.id,
        users.name as manufacturer_name
        FROM devices
        INNER JOIN device_types 
        ON device_types.id = devices.type_id
        INNER JOIN users ON device_types.manufacturer = users.id
        WHERE devices.cus_id = " . $company_id['id'] . " ";
        $result = $db->query($sql);

        if ($result->num_rows > 0) {
            $arr_devices = $result->fetch_all(MYSQLI_ASSOC);
        }
        print_r($arr_devices);  //HERE IT PRINTS EVERYTHING I AM FETCHING
    }
    print_r($arr_devices);  //HERE IT DOESNT
}

कोड में टिप्पणियां देखें।

0
user13243578 15 अप्रैल 2020, 16:51

1 उत्तर

सबसे बढ़िया उत्तर

आप प्रत्येक लूप में सरणी को ओवरराइट कर रहे हैं।

$arr_devices[] = $result->fetch_all(MYSQLI_ASSOC); का प्रयोग करें

अपनी क्वेरी के परिणाम को अपनी सरणी में जोड़ने के लिए।

एक साइड नोट के रूप में, लूप के अंदर क्वेरी का उपयोग करना आमतौर पर खराब होता है, क्योंकि यह आपके डेटाबेस की बहुत अधिक मांग करेगा। केवल एक प्रश्न का प्रयोग करें:

SELECT devices.id, 
    devices.serial_imei, 
    devices.serial_no, 
    devices.type_id, 
    devices.cus_id, 
    devices.sales_date,
    device_types.name,
    device_types.manufacturer,
    device_types.device_no,
    device_types.barcode,
    users.id,
    users.name as manufacturer_name
 FROM devices
INNER JOIN device_types 
   ON device_types.id = devices.type_id
INNER JOIN users ON device_types.manufacturer = users.id
WHERE devices.cus_id IN (SELECT id FROM users WHERE users.name = '$company_name')

फिर आप सभी को एक प्रश्न में ला सकते हैं, बहुत तेजी से

0
Felippe Duarte 15 अप्रैल 2020, 13:56