• 14-05-2019, 11:23:21
    #1
    Merhaba arkadaşalar öncelikle,

    Php ile veritabanından 7000 satırlık bir tablo çekiyorum. Çekerkende işlem yaptırıyorum. 7000 satır içinde bulunan "numaralara" göre, başka bir tablodan o numaralara karşılık gelen "isim" falan çektiriyorum. Yani anlayacağınız karışık bir durum var. Buda haliyle ağırlaştırdı sistemi. Çözüm olarak ne yapabilirim.

    Bu tablolar için lazyload gibi bir özellik varmı.
    yada tabloda aramaya göre çektirsem daha mı hızlı olur ? birde mysqlde arama nasıl yaptırabilirim. (tabi arama işlemi işimi kolaylaştıracaksa.
  • 14-05-2019, 11:27:37
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    7000 satırı tek tek sorgulamak yerine toplu gidersen bayağı bir zaman elersin.

    Örn:

    SELECT id FROM SATIRLAR ORDER BY id DESC; = 7000 SATIRI DA ALDIK tek seferde.

    2. sorgu:

    SELECT id FROM DIGERTABLO WHERE numara_id IN ( implode( " , " , ilk_sorgudaki_idler )

    Böylece 7000 satır için DIGERTABLO'dan 7000 ayrı sorgu yapmak yerine işi 2 sorguda bitirdin.

    Pek tabi JOIN olayını nasıl yapıyorsun bilemem, uyuyorsa bu şekilde baya hızlandırırsın
  • 14-05-2019, 11:50:26
    #3
    Suerte adlı üyeden alıntı: mesajı görüntüle
    7000 satırı tek tek sorgulamak yerine toplu gidersen bayağı bir zaman elersin.

    Örn:

    SELECT id FROM SATIRLAR ORDER BY id DESC; = 7000 SATIRI DA ALDIK tek seferde.

    2. sorgu:

    SELECT id FROM DIGERTABLO WHERE numara_id IN ( implode( " , " , ilk_sorgudaki_idler )

    Böylece 7000 satır için DIGERTABLO'dan 7000 ayrı sorgu yapmak yerine işi 2 sorguda bitirdin.

    Pek tabi JOIN olayını nasıl yapıyorsun bilemem, uyuyorsa bu şekilde baya hızlandırırsın
    Hocam o bana uymuyor ne yazıkki.



    Bu kod neden çalışmıyor yardımcı olur musunuz ?

     <?php
    
    
    
    
    
    //Zararlı Kodları Süzmemiş İçin Function Oluşturuyoruz
    
    
    function guvenlik($q) {
    
    
    $q = str_replace("`","",$q);
    
    
    $q = str_replace("&","",$q);
    
    
    $q = str_replace("%","",$q);
    
    
    $q = str_replace("'","",$q);
    
    
    $q = str_replace(")","",$q);
    
    
    $q = str_replace("(","",$q);
    
    
    $q = str_replace("<","",$q);
    
    
    $q = str_replace(">","",$q);
    
    
    $q=trim($q);
    
    
    return $q;
    
    
    }
    
    
    //Ve Get İle Aranılan Kelimeyi arama Değişkenine Atıyoruz.
    
    
    $arama = guvenlik($_GET['arama']);
    
    
    // Ve Sorgumuzu Yapıyoruz. Sorguda Kullandığımız like Arama Yaptırılırken Kullanılan Bir Komut
    
    
    $sorgu = mysql_query("SELECT * FROM urunliste WHERE $urun like '%".$arama."%'");
    
    
    //Yazdırma İşlemini Başlatıyoruz.
    
    
    while($yaz=mysql_fetch_array($sorgu)){
    
    
    echo $yaz['baslik'];
    
    
    }
    
    ?>
  • 14-05-2019, 11:53:33
    #4
    SELECT * FROM urunliste WHERE baslik like '%".$arama."%'

    Ek olarak, zararlı kod ayıkla olayı seni kurtarmaz öyle kolay kolay
    En azından mysql_real_escape_string kullan $_GET ile aldığın bölüm için.

    SELECT * FROM urunliste WHERE baslik like '%".mysql_real_escape_string($arama)."%'
  • 14-05-2019, 11:59:30
    #5
    Suerte adlı üyeden alıntı: mesajı görüntüle
    SELECT * FROM urunliste WHERE baslik like '%".$arama."%'

    Ek olarak, zararlı kod ayıkla olayı seni kurtarmaz öyle kolay kolay
    En azından mysql_real_escape_string kullan $_GET ile aldığın bölüm için.

    SELECT * FROM urunliste WHERE baslik like '%".mysql_real_escape_string($arama)."%'
    hocam teşekkür ederim bu nasıl bi dikkatsizliktir bendeki ya



    Suerte adlı üyeden alıntı: mesajı görüntüle
    SELECT * FROM urunliste WHERE baslik like '%".$arama."%'

    Ek olarak, zararlı kod ayıkla olayı seni kurtarmaz öyle kolay kolay
    En azından mysql_real_escape_string kullan $_GET ile aldığın bölüm için.

    SELECT * FROM urunliste WHERE baslik like '%".mysql_real_escape_string($arama)."%'

    Hocam birde son kez bir şey sorayım sana.

    Bu kodda arama fonksiyonuçalışıyor, arama sonucu sayısıda doğru ama tablo satırlarını doldurmuyor.


                              <?php
    //Zararlı Kodları Süzmemiş İçin Function Oluşturuyoruz
    function guvenlik($q) {
    $q = str_replace("`","",$q);
    $q = str_replace("&","",$q);
    $q = str_replace("%","",$q);
    $q = str_replace("'","",$q);
    $q = str_replace(")","",$q);
    $q = str_replace("(","",$q);
    $q = str_replace("<","",$q);
    $q = str_replace(">","",$q);
    $q=trim($q);
    return $q;
    
    }
    //Ve Get İle Aranılan Kelimeyi arama Değişkenine Atıyoruz.
    $arama = guvenlik($_GET['arama']);
    // Ve Sorgumuzu Yapıyoruz. Sorguda Kullandığımız like Arama Yaptırılırken Kullanılan Bir Komut
    $sorgu = mysql_query("SELECT * FROM urunliste WHERE urun like '%".mysql_real_escape_string($arama)."%'");
    //Yazdırma İşlemini Başlatıyoruz.
    
    ?>
    <table class="table table-striped table-bordered table-hover" id="dataTables-example">
    <thead>
    <tr>
    <th>Ürün Adı</th>
    <th>Y. P. Barkodu</th>                                                                      
    </tr>
    </thead>
    <tbody>
    <?php
    while($yaz=mysql_fetch_array($sorgu)){
    
    echo '<tr class="odd gradeX">
    <td>'.$sorgu['urun'].'</td>
    <td>'.$sorgu['ypbarkod'].'</td>
    </tr>';
    }
    ?>
     </tbody>
  • 14-05-2019, 15:02:11
    #6
    while ile işlediğin, arrayın fetchlendiği değişken = $yaz
    Biraz ezbere gidiyorsun sanırım

    $sorgu raw mysql result, $yaz da o rawın satır satır fetchlendiği şey.
  • 14-05-2019, 15:11:46
    #7
    Suerte adlı üyeden alıntı: mesajı görüntüle
    while ile işlediğin, arrayın fetchlendiği değişken = $yaz
    Biraz ezbere gidiyorsun sanırım

    $sorgu raw mysql result, $yaz da o rawın satır satır fetchlendiği şey.
    hocam çok iyi değilim bu phpde yeni başladım ondan kaynaklandı ama gördüm sorunu sorun çözüldü teşekkür ederim sizede.