sql >> データベース >  >> RDS >> Mysql

Mysqlクエリ結果をクラス内の配列に配置します

    $rtoclassに初期化された配列値 クラス外の変数、次にAdvancedExportに渡されます そのメソッドを介したオブジェクト-$obj->set_arr_needed( $rtoclass );

    $obj->fputToFile()について を呼び出すと、必要な配列が変数$arr_needed_inを介してその中で自動的に使用できるようになります。 。

    試してみてください:

    $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"]."<br>";
            $rtoclass[] = $row;
        }
    } else {
        echo "0 results";
    }
    
    $obj = new AdvancedExport();
    $obj->set_arr_needed( $rtoclass );
    
    $conn->close();
    

    クラスの場合:

    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 '<pre>' . var_dump($readyForExport) . '</pre>';
    
                    // 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);
                }
            }
    }
    
    '; // modifiche ===Dario ===prezzo $ newPrice =substr($ readyForExport ['product_price']、0、strpos($ readyForExport ['product_price']、 "。")); $ readyForExport ['product_price'] =$ newPrice; //===データ$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'); //===データ請求書$newDateInvoice=clone $ newDateAdd; $ readyForExport ['invoice_date'] =$ newDateAdd-> format('d / m / Y'); // scambio l'id customer con il codice_target // $ readyForExport ['codice_target'] =8989; $ textTarget =(文字列)$ 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; //行ごとにcsvに書き込みますfputcsv($ file、$ readyForExport、$ ae-> Delimiter、$ ae-> Separator); }}}


    1. SQL Serverで無効になっているすべての制約を返す(T-SQLの例)

    2. テーブルが存在する場合はドロップテーブルを作成し、存在しない場合は作成するだけです

    3. MySQLテーブルに複数の行を挿入すると、IDは毎回1ずつ増加しますか?

    4. MySQLステートメントでORを使用することは、括弧の有無でどの程度正確に異なりますか?