Put Mysql query result in array inside a class

前端 未结 1 1574
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-01-26 05:25

Hello everybody again I\'m tryin to resolve my issue poste in this topic -> Fetch data from Prestashop custom field I\'ve have made a MySql query outside my class and now it wo

1条回答
  •  既然无缘
    2021-01-26 06:13

    Array values initialized to $rtoclass variable outside the class, then passed to an AdvancedExport object through its method - $obj->set_arr_needed( $rtoclass );

    On $obj->fputToFile() call, the needed array will automatically be available for use inside it via the variable $arr_needed_in.

    Try:

    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "dbname";
    
    
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    
    $sql = "SELECT codice_target FROM customer";
    $result = $conn->query($sql);
    $rtoclass = array();
    
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "id: " . $row["id_customer"]. " - Codice target: " . $row["codice_target"]."
    "; $rtoclass[] = $row; } } else { echo "0 results"; } $obj = new AdvancedExport(); $obj->set_arr_needed( $rtoclass ); $conn->close();

    For the class:

    class AdvancedExport extends Module
    {
    
            //other methods here...
    
            private $arr_needed = array(); 
    
            public function set_arr_needed( $arr ) {    
                $this->arr_needed = $arr;
            }
    
            public function get_arr_needed() {  
                return $this->arr_needed;
            }
    
            public function fputToFile($file, $allexportfields, $object, $ae)
            {
                $arr_needed_in = $this->get_arr_needed(); // array needed already inside..
    
                if($allexportfields && $file && $object && $ae)
                {
                    //one ready for export product
                    $readyForExport = array();
    
    
                    //put in correct sort order
                    foreach ($allexportfields as $value)
                    {
                        $object = $this->processDecimalSettings($object, $ae, $value);
                        $readyForExport[$value] = iconv("UTF-8", $ae->charset, $object[$value]);
    
                    }
    
                    // need to put mysql query result here inside $readyForExport['codice_target'];
    
                    $this->counter[$readyForExport['id_order']] = (!empty($this->counter[$readyForExport['id_order']])) ? ++$this->counter[$readyForExport['id_order']] : 1; // try here
                    $readyForExport['orderLine'] = $this->counter[$readyForExport['id_order']]; // and try here
    
                    //print_r('The id_order is added: ' . $readyForExport['orderLine']); // see if it is added
    
                    //echo '
    ' . var_dump($readyForExport) . '
    '; // modifiche === Dario === prezzo $newPrice = substr($readyForExport['product_price'], 0, strpos($readyForExport['product_price'], ".")); $readyForExport['product_price'] = $newPrice; // === data $newDateAdd = new DateTime($readyForExport['date_add']); $readyForExport['date_add'] = $newDateAdd->format('d/m/Y'); // aggiungo 21 giorni - 3 settimane - alla data di acquisto $date_mod = clone $newDateAdd; $date_mod->add(new DateInterval('P21D')); $readyForExport['delivery_date'] = $date_mod->format('d/m/Y'); // === data invoice $newDateInvoice = clone $newDateAdd; $readyForExport['invoice_date'] = $newDateAdd->format('d/m/Y'); //scambio l'id customer con il codice_target //$readyForExport['codice_target'] = 8989; $textTarget = (string)$readyForExport['codice_target']; $readyForExport['id_customer'] = $textTarget; // aggiungo gli zeri davanti al customer id $id_count = strlen($readyForExport['id_customer']); if ($id_count == 1) { $newCustomer = "0000000".$readyForExport['id_customer']; $readyForExport['id_customer'] = $newCustomer; }elseif ($id_count == 2) { $newCustomer = "000000".$readyForExport['id_customer']; $readyForExport['id_customer'] = $newCustomer; }elseif ($id_count == 3) { $newCustomer = "00000".$readyForExport['id_customer']; $readyForExport['id_customer'] = $newCustomer; }elseif ($id_count == 4) { $newCustomer = "0000".$readyForExport['id_customer']; $readyForExport['id_customer'] = $newCustomer; }elseif ($id_count == 5) { $newCustomer = "000".$readyForExport['id_customer']; $readyForExport['id_customer'] = $newCustomer; }elseif ($id_count == 6) { $newCustomer = "00".$readyForExport['id_customer']; $readyForExport['id_customer'] = $newCustomer; } // elaboro lo SKU $textSku = (string)$readyForExport['product_name']; $newSku_1 = $readyForExport['product_name']; $newSku_1 = substr($newSku_1,0,4); $newSku_2 = "/".substr($textSku,-4,4); $newSku_tot = $newSku_1.$newSku_2; $newSku_tot = str_replace(' ', '', $newSku_tot); $newSku_tot = str_replace('-', '', $newSku_tot); $newSku_tot = str_replace('co', '', $newSku_tot); $newSku_tot = str_replace('e', '', $newSku_tot); $newSku_tot = str_replace('r', '', $newSku_tot); $readyForExport['product_name'] = $newSku_tot; // aggiungo un campo fisso $readyForExport['causale'] = "NR"; // aggiungo un campo fisso $readyForExport['ORCL'] = "ORCL"; //$readyForExport['G'] = ""; $readyForExport['J'] = ""; $readyForExport['K'] = ""; $readyForExport['L'] = ""; $readyForExport['M'] = ""; $readyForExport['N'] = ""; $readyForExport['P'] = ""; $readyForExport['Q'] = ""; $readyForExport['R'] = "30"; $index_arr=array("id_customer","date_add","ORCL","product_name","causale","product_quantity","product_price","delivery_date","id_order","J","K","L","M","N","orderLine","P","Q","R"); //riordino i campi in base a come li dispongo nella variabile $index_arr $arr_t=array(); foreach($index_arr as $i=>$v) { foreach($readyForExport as $k=>$b) { if ($k==$v) $arr_t[$k]=$b; } } $readyForExport=$arr_t; //write into csv line by line fputcsv($file, $readyForExport, $ae->delimiter, $ae->separator); } } }

    0 讨论(0)
提交回复
热议问题