• 07-12-2022, 14:28:29
    #1
    Merhabalar excel ile toplu veri yuklemeye çalışıyorum ama hatayı bulamadım yardımcı olursanız sevinirim.
    Form
                       <form action="../webting/allupload.php" method="POST" enctype="multipart/form-data" >
                          <div class="form-group">
                            <label class="control-label col-md-3 col-sm-3 col-xs-12" for="first-name">Toplu Veri Yükleme(.xlsx)<span class="required" >*</span></label>
                            <div class="col-md-6 col-sm-6 col-xs-12">
                              <input type="file" name="applications_yukle"  class="form-control col-md-7 col-xs-12" >
                            </div>
                          </div>
                          <div class="form-group">
                            <div align="right" class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
                              <button type="submit" name="app_yukle" class="btn btn-primary">Güncelle</button>
                            </div>
                          </div>
              </form>
    Yükleme işlemini yaptığım php
    <?php
    include '../webting/baglan.php';
    
    
    if (isset($_POST['app_yukle'])) {
        if ($_FILES['applications_yukle']['error']==0) {
            $gecici_isim=$_FILES['applications_yukle']['tmp_name'];
            $dosya_ismi=$_FILES['applications_yukle']['name'];
            $sayi=rand(1000,9999);
            $isim=$sayi.$dosya_ismi;
            move_uploaded_file($gecici_isim,"gecici/$isim");
            require_once 'excel.php';
            if ( $xlsx = SimpleXLSX::parse("gecici/$isim") ) {
                $saat=date("H:i:s");
                $tarih=date('Y-m-d');
                $zaman=$tarih." ".$saat;
                foreach ($xlsx->rows() as $key => $satir) {
                    if (count($satir)==22) {
                        $baslik_tr      =   strip_tags(trim($satir[0]));
                        $slug_tr        =   seo($baslik_tr);    
                        $baslik_en      =   strip_tags(trim($satir[3]));
                        $slug_en        =   seo($baslik_en);    
                        $baslik_de      =   strip_tags(trim($satir[6]));
                        $slug_de        =   seo($baslik_de);    
                        $baslik_ru      =   strip_tags(trim($satir[9]));
                        $slug_ru        =   seo($baslik_ru);
    
                        //echo "YÜKLENEN SATIR";
                        $sorgu=$db->prepare("INSERT INTO applications SET
                                    app_baslik_tr   =   :baslik_tr,
                                    app_slug_tr     =   :slug_tr,
                                    app_icerik_tr   =   :icerik_tr,
                                    app_yeri_tr     =   :yeri_tr,
                                    app_baslik_en   =   :baslik_en,
                                    app_slug_en     =   :slug_en,
                                    app_icerik_en   =   :icerik_en,
                                    app_yeri_en     =   :yeri_en,
                                    app_baslik_de   =   :baslik_de,
                                    app_slug_de     =   :slug_de,
                                    app_icerik_de   =   :icerik_de,
                                    app_yeri_de     =   :yeri_de,
                                    app_baslik_ru   =   :baslik_ru,
                                    app_slug_ru     =   :slug_ru,
                                    app_icerik_ru   =   :icerik_ru,
                                    app_yeri_ru     =   :yeri_ru,
                                    app_yil         =   :yil,      
                                    app_time        =   :time,      
                                    app_konum       =   :konum,
                                    app_category_id =   :catid,
                                    app_list        =   :list,
                                    app_durum       =   :durum
                            ");
                        $sorgu->execute([
                                    'baslik_tr'     => $satir[0],
                                    'slug_tr'       => $slug_tr,
                                    'icerik_tr'     => $satir[1],
                                    'yeri_tr'       => $satir[2],
                                    'baslik_en'     => $satir[3],
                                    'slug_en'       => $slug_en,
                                    'icerik_en'     => $satir[4],
                                    'yeri_en'       => $satir[5],
                                    'baslik_de'     => $satir[6],
                                    'slug_de'       => $slug_de,
                                    'icerik_de'     => $satir[7],
                                    'yeri_de'       => $satir[8],
                                    'baslik_ru'     => $satir[9],
                                    'slug_ru'       => $slug_ru,
                                    'icerik_ru'     => $satir[10],
                                    'yeri_ru'       => $satir[11],
                                    'yil'           => $satir[12],
                                    'time'          => $zaman,
                                    'konum'         => $satir[13],
                                    'catid'         => $satir[14],
                                    'list'          => $satir[15],
                                    'durum'         => $satir[16]
                        ]);
                    } else {
                        echo "EXCEL DOSYASI İÇERİĞİ HATALI";
                    }
    
                }
    
    
                
    
            } else {
                echo SimpleXLSX::parseError();
            }
            unlink("gecici/$isim");
    
        }
    }
    
    
    ?>
    Verdiği hata ise
    Warning: foreach() argument must be of type array|object, bool given in D:xampphtdocsysrenergywebisleriwebtingallupload.ph p on line 23

    şimdiden teşekkürler
  • 07-12-2022, 15:00:56
    #2
    Foreach row as satir , olarak denermisin. $key i kaldirip.
  • 07-12-2022, 17:04:34
    #3
    Hocam o kısımla ilgili bir sorun yok gibi. geçici dosyanın konumu ya da yüklenmesi ile ilgili bir sorun olabilir mi?
    // Şu kısmı
    if ( $xlsx = SimpleXLSX::parse("gecici/$isim") ) {
    
    //Şu şekilde değitştirip dener misiniz?
    if (file_exists("gecici/$isim") && $xlsx = SimpleXLSX::parse("gecici/$isim") ) {