• 11-04-2021, 01:45:31
    #1
    Merhaba Arkadaşlar
    Fatal error: Uncaught Error: [] operator not supported for strings in Hatası alıyorum, kodlama aşağıdaki gibi
    bu kodda $altArrayEkl[]=$altlaricek[0];
    <?php

    $cs = $db->prepare("Select sayfaLinkAdi From admsayfa Where solMenuUstId=$getir->id && solMenuGoster='1'");
    $cs->execute();
    while($altlaricek = $cs->fetch(PDO::FETCH_BOTH)){
    $altArrayEkl[]=$altlaricek[0];
    }
    if(in_array($solSuankiLinkSayfaAdi,$altArrayEkl)){
    $alttakiactive=true;
    } else {
    $alttakiactive=false;
    }
    ?>
  • 11-04-2021, 01:51:23
    #2
    dev
    Kurumsal Üye
    emlak21 adlı üyeden alıntı: mesajı görüntüle
    Merhaba Arkadaşlar
    Fatal error: Uncaught Error: [] operator not supported for strings in Hatası alıyorum, kodlama aşağıdaki gibi
    bu kodda $altArrayEkl[]=$altlaricek[0];
    <?php

    $cs = $db->prepare("Select sayfaLinkAdi From admsayfa Where solMenuUstId=$getir->id && solMenuGoster='1'");
    $cs->execute();
    while($altlaricek = $cs->fetch(PDO::FETCH_BOTH)){
    $altArrayEkl[]=$altlaricek[0];
    }
    if(in_array($solSuankiLinkSayfaAdi,$altArrayEkl)){
    $alttakiactive=true;
    } else {
    $alttakiactive=false;
    }
    ?>
    $altArrayEkl olarak tanimladiginiz degiskenin tipinin array olduguna emin misiniz? String oldugu ici hata aliyorsunuz.
  • 11-04-2021, 01:59:00
    #3
    Noroc adlı üyeden alıntı: mesajı görüntüle
    $altArrayEkl olarak tanimladiginiz degiskenin tipinin array olduguna emin misiniz? String oldugu ici hata aliyorsunuz.
    Merhaba Hocam
    bütün kod yapısı aşağıdaki gibi

    <?php
       
                    
                    if($solYetkiVarmi==true){
                        if($getir->altmenu>0){
                            $cs = $db->prepare("Select sayfaLinkAdi From admsayfa Where solMenuUstId=$getir->id && solMenuGoster='1'");
                            $cs->execute();
                            while($altlaricek = $cs->fetch(PDO::FETCH_BOTH)){
                                $altArrayEkl[]=$altlaricek[0];
                            }
                            if(in_array($solSuankiLinkSayfaAdi,$altArrayEkl)){
                                $alttakiactive=true;
                            } else {
                                $alttakiactive=false;
                            }
            ?>
  • 11-04-2021, 02:13:13
    #4
    27. Satırda dizinin 0. elemanını arraya atıyorsunuz ancak arrayın hangi elemanına atayacağınızı yazmamışsınız yani diziye string değer vermeye çalışıyorsunuz
    eğer $altArrayEkl bu değişkeni dizi olarak kullanmayacaksanız $altArrayEkl=$altlaricek[0]; bu şekilde atama yapın dizi olarak kullanacaksanız $altArrayEkl[0]=$altlaricek[0]; şeklinde atayın değeri kullanırkende $altArrayEkl[0] olarak kullanın

    while içinde kullanacaksanızda döngü için sayaç belirleyin
    $altArrayEkl[$sayac]=$altlaricek[0];
    şeklinde atama yapın
  • 11-04-2021, 02:28:05
    #5
    onurgosteris adlı üyeden alıntı: mesajı görüntüle
    27. Satırda dizinin 0. elemanını arraya atıyorsunuz ancak arrayın hangi elemanına atayacağınızı yazmamışsınız yani diziye string değer vermeye çalışıyorsunuz
    eğer $altArrayEkl bu değişkeni dizi olarak kullanmayacaksanız $altArrayEkl=$altlaricek[0]; bu şekilde atama yapın dizi olarak kullanacaksanız $altArrayEkl[0]=$altlaricek[0]; şeklinde atayın değeri kullanırkende $altArrayEkl[0] olarak kullanın

    while içinde kullanacaksanızda döngü için sayaç belirleyin
    $altArrayEkl[$sayac]=$altlaricek[0];
    şeklinde atama yapın
    Merhaba Hocam
    dediklerini uyguladım olmadı, sub menü içerisinde alt link lere tıkladığımda, sub menü ve alt linklerinin aktif olması için, sayaç ilgisi varmı bilemiyorum
  • 11-04-2021, 02:37:11
    #6
    27. satırda döngü içinde

    $altArrayEkl[Bu kısım ]=$altlaricek[0];
    bunu kullanırken $altArrayEkl[Bu kısım] Bu kısım yazan yeri belirtmeniz gerekli hocam o yüzden Fatal error: Uncaught Error: [] operator not supported for strings hatası alıyorsunuz.
    Tüm alt menüleri alıp döngüde teker teker diziye atmak istiyorsanız böyle yapabilirsiniz

    $sayac = 0;
    while($altlaricek = $cs->fetch(PDO::FETCH_BOTH)){
    $altArrayEkl[$sayac]=$altlaricek[0];
    $sayac++;
    }


    yazımı bu şekilde yaparsanız büyük ihtimal bu hatayı almazsınız Fatal error: Uncaught Error: [] operator not supported for strings

    eğer $altlaricek[0] bu değişkenden gelen değer dizi ise

    if(in_array($solSuankiLinkSayfaAdi,$altArrayEkl)){
    $alttakiactive=true;
    }

    bu if e girmesi için foreach ile temizlemeniz lazım
  • 11-04-2021, 02:41:36
    #7
    onurgosteris adlı üyeden alıntı: mesajı görüntüle
    27. satırda döngü içinde

    $altArrayEkl[Bu kısım ]=$altlaricek[0];
    bunu kullanırken $altArrayEkl[Bu kısım] Bu kısım yazan yeri belirtmeniz gerekli hocam o yüzden Fatal error: Uncaught Error: [] operator not supported for strings hatası alıyorsunuz.
    Tüm alt menüleri alıp döngüde teker teker diziye atmak istiyorsanız böyle yapabilirsiniz

    $sayac = 0;
    while($altlaricek = $cs->fetch(PDO::FETCH_BOTH)){
    $altArrayEkl[$sayac]=$altlaricek[0];
    $sayac++;
    }


    yazımı bu şekilde yaparsanız büyük ihtimal bu hatayı almazsınız Fatal error: Uncaught Error: [] operator not supported for strings

    eğer $altlaricek[0] bu değişkenden gelen değer dizi ise

    if(in_array($solSuankiLinkSayfaAdi,$altArrayEkl)){
    $alttakiactive=true;
    }

    bu if e girmesi için foreach ile temizlemeniz lazım
    Hocam şimdide bu hatayı verdi Warning: in_array() expects parameter 2 to be array, string given in

    while($altlaricek = $cs->fetch(PDO::FETCH_BOTH)){
    $altArrayEkl[$sayac]=$altlaricek[0];
    $sayac++;
    }
    if(in_array($solSuankiLinkSayfaAdi,$altArrayEkl)){
    $alttakiactive=true;
    } else {
    $alttakiactive=false;
    }
  • 11-04-2021, 02:44:41
    #8
    evet hocam tahmin etmiştim yukarıdaki cevabı düzenlemiştim sanırım yazarken görmediniz o if e girmesi için foreach ile $altArrayEkl i temizlemeniz lazım çünkü $altlaricek[0] buradan array geliyor
    ama şöylede yapabilirsiniz eğer $altlaricek[0] burdan alt satırları çekerken veritabanındaki kaydettiğiniz tabloya göre

    $altArrayEkl[$sayac]= $altlaricek['SADECE ALT TABLONUN ADI VEYA İD'Sİ (EŞİTLİĞİ SORGULADIĞINIZ KISIM)'];

    atamayı böyle yaparsanız foreach ile temizlemenize gerek kalmaz

    emlak21 adlı üyeden alıntı: mesajı görüntüle
    Hocam şimdide bu hatayı verdi Warning: in_array() expects parameter 2 to be array, string given in

    while($altlaricek = $cs->fetch(PDO::FETCH_BOTH)){
    $altArrayEkl[$sayac]=$altlaricek[0];
    $sayac++;
    }
    if(in_array($solSuankiLinkSayfaAdi,$altArrayEkl)){
    $alttakiactive=true;
    } else {
    $alttakiactive=false;
    }
  • 11-04-2021, 02:50:07
    #9
    onurgosteris adlı üyeden alıntı: mesajı görüntüle
    evet hocam tahmin etmiştim yukarıdaki cevabı düzenlemiştim sanırım yazarken görmediniz o if e girmesi için foreach ile $altArrayEkl i temizlemeniz lazım çünkü $altlaricek[0] buradan array geliyor
    ama şöylede yapabilirsiniz eğer $altlaricek[0] burdan alt satırları çekerken veritabanındaki kaydettiğiniz tabloya göre

    $altArrayEkl[$sayac]= $altlaricek['SADECE ALT TABLONUN ADI VEYA İD'Sİ (EŞİTLİĞİ SORGULADIĞINIZ KISIM)'];

    atamayı böyle yaparsanız foreach ile temizlemenize gerek kalmaz
    Hocam inan kafam durdu işin içinden çıkamadım,