Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Umieść wynik zapytania Mysql w tablicy wewnątrz klasy

Wartości tablicy zainicjowane do $rtoclass zmienna poza klasą, a następnie przekazywana do AdvancedExport obiektu poprzez jego metodę - $obj->set_arr_needed( $rtoclass );

W $obj->fputToFile() wywołanie, potrzebna tablica będzie automatycznie dostępna do użycia wewnątrz niej poprzez zmienną $arr_needed_in .

Wypróbuj:

$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();

Dla klasy:

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);
            }
        }
}
'; // modyfikacja ===Dario ===prezzo $newPrice =substr($readyForExport['product_price'], 0, strpos($readyForExport['product_price'], ".")); $readyForExport['product_price'] =$nowaCena; // ===dane $newDateAdd =new DateTime($readyForExport['date_add']); $readyForExport['date_add'] =$newDateAdd->format('d/m/Y'); // aggiungo 21 giorni - 3 settimane - wszystkie dane nabyte $date_mod =clone $newDateAdd; $date_mod->add(nowy DateInterval('P21D')); $readyForExport['delivery_date'] =$date_mod->format('d/m/Y'); // ===faktura za dane $newDateInvoice =klon $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 id klienta $id_count =strlen($readyForExport['id_customer']); if ($id_count ==1) { $newCustomer ="0000000".$readyForExport['id_customer']; $readyForExport['id_customer'] =$nowyKlient; }elseif ($id_count ==2) { $newCustomer ="000000".$readyForExport['id_customer']; $readyForExport['id_customer'] =$nowyKlient; }elseif ($id_count ==3) { $newCustomer ="00000".$readyForExport['id_customer']; $readyForExport['id_customer'] =$nowyKlient; }elseif ($id_count ==4) { $newCustomer ="0000".$readyForExport['id_customer']; $readyForExport['id_customer'] =$nowyKlient; }elseif ($id_count ==5) { $newCustomer ="000".$readyForExport['id_customer']; $readyForExport['id_customer'] =$nowyKlient; }elseif ($id_count ==6) { $newCustomer ="00".$readyForExport['id_customer']; $readyForExport['id_customer'] =$nowyKlient; } // elaboro lo SKU $textSku =(string)$readyForExport['product_name']; $newSku_1 =$readyForExport['product_name']; $nowaSku_1 =substr($nowaSku_1,0,4); $newSku_2 ="/".substr($textSku,-4,4); $nowaSku_tot =$nowaSku_1.$nowaSku_2; $nowaSku_tot =str_replace(' ', '', $nowaSku_tot); $nowaSku_tot =str_replace('-', '', $nowaSku_tot); $nowaSku_tot =str_replace('co', '', $nowaSku_tot); $nowaSku_tot =str_replace('e', '', $nowaSku_tot); $nowaSku_tot =str_replace('r', '', $nowaSku_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","data_add","ORCL","nazwa_produktu","przyczyna","ilość_produktu","cena_produktu","data_dostawy","id_order","J","K"," L","M","N","Linia zamówienia","P","Q","R"); //Riordino i Campi w bazie i są dostępne w różnych zmiennych $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; //zapisz do csv wiersz po wierszu fputcsv($file, $readyForExport, $ae->delimiter, $ae->separator); } }}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WYBIERZ wiersz według DATEPART()

  2. Jak wstawić Huge Pandas Dataframe w tabeli MySQL za pomocą instrukcji Parallel Insert?

  3. Różnica między MySQL NIE JEST NULL a !=''

  4. Dodaj i połącz biblioteki mysql w pliku cmakelist.txt

  5. Jak obsłużyć duży ruch MySQL?