• 14-09-2021, 10:35:48
    #1
    Merhaba arkadaşlar excel de 2 satırım var bunları normal ekrana yazdırırken sorun yok. Kodu aşağıdaki gibi uyarladığımda sadece birinci satırın sonucunu veriyor 2 ye geçmiyor.

    public function Code($products = array())
        
        {
    if ( $xlsx = SimpleXLSX::parse('zz.xlsx')) {
    
        // Produce array keys from the array values of 1st array element
        $header_values = $rows = [];
    
        foreach ( $xlsx->rows() as $k => $r ) {
            if ( $k === 0 ) {
                $header_values = $r;
                continue;
            }
            $rows[] = array_combine( $header_values, $r );
        }
            for ($i = 0; $i <= 2; $i++) {
        
            $this->setUrl('https://xxx.wsdl');
            
            self::$_parameters['Code'] = "".$rows[$i]['Kodu']."";
            self::$_parameters['price'] = "".$rows[$i]['Fiyat']."";
            self::$_parameters['Price'] = "".$rows[$i]['indirimli']."";
            self::$_parameters['Type'] = "7";
            self::$_parameters['Items'] = "";
            return self::$_sclient->Code(self::$_parameters);
             }
             }
           //
        }
  • 14-09-2021, 10:43:48
    #2
    return self::$_sclient->Code(self::$_parameters);

    return ü for dışına almalısın
  • 14-09-2021, 10:50:39
    #3
    return dediğinde iş orada bitti demektir hiç bir döngü devam etmez
  • 14-09-2021, 10:51:29
    #4
    darness adlı üyeden alıntı: mesajı görüntüle
    return self::$_sclient->Code(self::$_parameters);

    return ü for dışına almalısın
    For dışına alınca aşağıdaki hatayı veriyor.

    Fatal error: Uncaught TypeError: Cannot access offset of type string on string in C:xampphtdocsexcelxx.php:103 Stack trace:
  • 14-09-2021, 11:00:58
    #5
    Yeni bir array içinse
    self::$_parameters[$i]['Code'] = "".$rows[$i]['Kodu']."";

    Şu şekil oluşturulmalı.
  • 14-09-2021, 11:28:14
    #6
    darness adlı üyeden alıntı: mesajı görüntüle
    Yeni bir array içinse
    self::$_parameters[$i]['Code'] = "".$rows[$i]['Kodu']."";

    Şu şekil oluşturulmalı.
    Olmadı hocam aşağıdaki hatayı verdi.

    Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'Code' property in
  • 14-09-2021, 14:42:58
    #7
    Djstation adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar excel de 2 satırım var bunları normal ekrana yazdırırken sorun yok. Kodu aşağıdaki gibi uyarladığımda sadece birinci satırın sonucunu veriyor 2 ye geçmiyor.

    public function Code($products = array())
        
        {
    if ( $xlsx = SimpleXLSX::parse('zz.xlsx')) {
    
        // Produce array keys from the array values of 1st array element
        $header_values = $rows = [];
    
        foreach ( $xlsx->rows() as $k => $r ) {
            if ( $k === 0 ) {
                $header_values = $r;
                continue;
            }
            $rows[] = array_combine( $header_values, $r );
        }
            for ($i = 0; $i <= 2; $i++) {
        
            $this->setUrl('https://xxx.wsdl');
            
            self::$_parameters['Code'] = "".$rows[$i]['Kodu']."";
            self::$_parameters['price'] = "".$rows[$i]['Fiyat']."";
            self::$_parameters['Price'] = "".$rows[$i]['indirimli']."";
            self::$_parameters['Type'] = "7";
            self::$_parameters['Items'] = "";
            return self::$_sclient->Code(self::$_parameters);
             }
             }
           //
        }
    Aşağıdaki şekilde sonuçları bir diziye atıp diziyi return ile döndürmeyi deneyebilirsiniz.

        {
    if ( $xlsx = SimpleXLSX::parse('zz.xlsx')) {
     
        // Produce array keys from the array values of 1st array element
        $header_values = $rows = [];
     
        foreach ( $xlsx->rows() as $k => $r ) {
            if ( $k === 0 ) {
                $header_values = $r;
                continue;
            }
            $rows[] = array_combine( $header_values, $r );
        }
            for ($i = 0; $i <= 2; $i++) {
         
            $this->setUrl('https://xxx.wsdl');
             
            self::$_parameters['Code'] = "".$rows[$i]['Kodu']."";
            self::$_parameters['price'] = "".$rows[$i]['Fiyat']."";
            self::$_parameters['Price'] = "".$rows[$i]['indirimli']."";
            self::$_parameters['Type'] = "7";
            self::$_parameters['Items'] = "";
            self::$_sclient->Code(self::$_parameters);
            $result[] = self::$_parameters;
             }
            return $result;
             }
           //
        }
  • 14-09-2021, 15:06:51
    #8
    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki şekilde sonuçları bir diziye atıp diziyi return ile döndürmeyi deneyebilirsiniz.

        {
    if ( $xlsx = SimpleXLSX::parse('zz.xlsx')) {
     
        // Produce array keys from the array values of 1st array element
        $header_values = $rows = [];
     
        foreach ( $xlsx->rows() as $k => $r ) {
            if ( $k === 0 ) {
                $header_values = $r;
                continue;
            }
            $rows[] = array_combine( $header_values, $r );
        }
            for ($i = 0; $i <= 2; $i++) {
        
            $this->setUrl('https://xxx.wsdl');
            
            self::$_parameters['Code'] = "".$rows[$i]['Kodu']."";
            self::$_parameters['price'] = "".$rows[$i]['Fiyat']."";
            self::$_parameters['Price'] = "".$rows[$i]['indirimli']."";
            self::$_parameters['Type'] = "7";
            self::$_parameters['Items'] = "";
            self::$_sclient->Code(self::$_parameters);
            $result[] = self::$_parameters;
             }
            return $result;
             }
           //
        }
    Çok teşekkürler hocam çalıştı bu şekilde.
  • 14-09-2021, 17:24:04
    #9
    Excel tablomda 10000 satır var api tek seferde istek limiti 100 sorguymuş. for($i= 0; $i<= 10000; $i++) { ben şimdi burada 10000 yaptığımda sonuç dönmüyor. her 100 de durdurup yeni bir istekte nasıl bulunabilirim?

    100'e kadar sayıp sonuç dönsün sonra 101 den başlayıp 200 sonuç dönsün gibi manuel yapmak baya uğraştırıcı

    Sorun çözüldü.