• 07-10-2014, 23:01:21
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba,

    Normalde veritabanından birşeyler çekmek için

    $sorgu = mysql_query("SELECT * FROM tablo WHERE Sutun_Adı Like 'Karşılık'  ORDER BY id DESC LIMIT x");
    şeklinde sorgularız mysql_fetch_array ile çekeriz.

    elimde bir listem olduğunu düşünelim
    1-9 -23-45 vs vs bunlar id numarası olsun

    where yerine tek tek bunları yazıp sorgulatmak (mesela 100 tane olsa ) sanırım amelelik olacak. bunu kısa yoldan nasıl çözeriz?
  • 07-10-2014, 23:11:44
    #2
    in işinize yarayabilir.

    WHERE Sutun_Adı Like 'Karşılık'
    yerine

    WHERE Sutun_Adı in (100,200,300)
    ID 100, 200, 300 olan değerleri getirir.
  • 07-10-2014, 23:20:31
    #3
    bu bahsettiğim where koşulu sayısı 800 civarı falan olacak o yüzden aşağıdaki gibi

    $kosullar = array( 
        'kosul'    =>    '123', 
         'sayi'     =>    '1' 
        ), 
        'kosul'    =>    '124', 
         'sayi'     =>    '2' 
        ), 
    );
    gibi dizi içine almayı düşündüm ama mevzuya çok hakim olmadığım için hem doğru yol mu bilemiyorum hemde doğruysa sorguma nasıl uyarlarım onu hiç bilmiyorum
  • 07-10-2014, 23:29:35
    #4
    SELECT * FROM Tablo WHERE Sutun BETWEEN 100 AND 200
    Şeklinde kullanabilirsinz.

    Ayrıntılı bilgi; http://www.w3schools.com/sql/sql_between.asp
  • 07-10-2014, 23:34:21
    #5
    CihanAksoy adlı üyeden alıntı: mesajı görüntüle
    SELECT * FROM Tablo WHERE Sutun BETWEEN 100 AND 200
    Şeklinde kullanabilirsinz.

    Ayrıntılı bilgi; http://www.w3schools.com/sql/sql_between.asp
    belli bir aralıkta olsa evet haklısınız ama veritabanında var 6000 satır ben bunun içinden 800 kadarını çekmek istiyorum. hatta öyle birşey olmalı ki bu 800 içinden de değişiklik olduğunda uğraşmayayım. (mesela bu 800 bir txt belgesinde veya bir csv belgesinden de okunabilir)
  • 08-10-2014, 01:33:35
    #6
    ne yapmak istediğinizi tam anlayamadım ama sanırsam elinizde belli id grupları var. örneğin bir grupta 1,2,3 idli kayıtları çekeceksiniz, diğer bir grupta 3 ve 5 i çekeceksiniz. aşağıdaki şekilde bu grupları bir dizide toplayıp sql de bu diziden çağırabilirsiniz. eğer bu değerler id ise unique olacağından ayrıca limit tanımlamanıza gerek kalmayacaktır.

    $idler = array(  
        '0'    =>    '123,124,125',  
        '1'    =>    '122,123,124,125,126',  
    	.
    	.
    	.
    	),    
    );
    
    $sorgu = mysql_query("SELECT * FROM tablo WHERE Sutun_Adı In (".$idler[0].")  ORDER BY id DESC");
    bu sorgu 123,124,125 id li satırları çeker.
  • 08-10-2014, 09:41:37
    #7
    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    ne yapmak istediğinizi tam anlayamadım ama sanırsam elinizde belli id grupları var. örneğin bir grupta 1,2,3 idli kayıtları çekeceksiniz, diğer bir grupta 3 ve 5 i çekeceksiniz. aşağıdaki şekilde bu grupları bir dizide toplayıp sql de bu diziden çağırabilirsiniz. eğer bu değerler id ise unique olacağından ayrıca limit tanımlamanıza gerek kalmayacaktır.

    $idler = array(  
        '0'    =>    '123,124,125',  
        '1'    =>    '122,123,124,125,126',  
    	.
    	.
    	.
    	),    
    );
    
    $sorgu = mysql_query("SELECT * FROM tablo WHERE Sutun_Adı In (".$idler[0].")  ORDER BY id DESC");
    bu sorgu 123,124,125 id li satırları çeker.
    <?
    $idler = array(   
        '0'    =>    '14D2Y00006252,14D2Y00006252,14D1T00006238, 14D1T00006237, 14D1T00006236, 14D1T00006235, 14D1T00006234, 14D1T00006233, 14D2Y00006251, 14D1T00006241, 14D1T00006226, 14D1Y00006240, 14C1T00005841, 14C1T00005840, 14C1T00005839, 14C1T00005838'
    	
    );
    
    
    
    $sorgu = mysql_query("SELECT * FROM Urunler WHERE Barkod In ('.$idler[0].')  ORDER BY ID DESC ");
    
    ?>
    
    <table class="tablo">
    <?php
    
    $adet_say=16;
    for($x=0; $x < $adet_say; $x++)
    {
        $ESS=mysql_fetch_array($sorgu);
        if($x%6==0)
        {
            echo'<tr align="center">';
        }
           ?> <td><a href="Urun_Karti.php?Urun=<? echo $ESS['Urun_Kodu']; ?>"><img src="urunler/<? echo $ESS['Urun_Kodu']; ?>_0.jpg" width="100" height="150"/></a><br /> <? echo $ESS['Urun_Kodu']; ?><br /><? echo $ESS['Satin_Alinan']; ?> Adet Sattı<p>&nbsp;</p></td>
           
        <? if($x%6==5)
        {
            echo'</tr>';
        }
    }
    ?>
    <tr>
    <td colspan="6" align="center">
    
    </td>
    </tr>
    </table>
    haliyle boş sonuç geliyor. 16 tane boş jpg kutucuğu
  • 08-10-2014, 12:47:36
    #8
    oguzhan306 adlı üyeden alıntı: mesajı görüntüle
    <?
    $idler = array(   
        '0'    =>    '14D2Y00006252,14D2Y00006252,14D1T00006238, 14D1T00006237, 14D1T00006236, 14D1T00006235, 14D1T00006234, 14D1T00006233, 14D2Y00006251, 14D1T00006241, 14D1T00006226, 14D1Y00006240, 14C1T00005841, 14C1T00005840, 14C1T00005839, 14C1T00005838'
    	
    );
    
    
    
    $sorgu = mysql_query("SELECT * FROM Urunler WHERE Barkod In ('.$idler[0].')  ORDER BY ID DESC ");
    
    ?>
    
    <table class="tablo">
    <?php
    
    $adet_say=16;
    for($x=0; $x < $adet_say; $x++)
    {
        $ESS=mysql_fetch_array($sorgu);
        if($x%6==0)
        {
            echo'<tr align="center">';
        }
           ?> <td><a href="Urun_Karti.php?Urun=<? echo $ESS['Urun_Kodu']; ?>"><img src="urunler/<? echo $ESS['Urun_Kodu']; ?>_0.jpg" width="100" height="150"/></a><br /> <? echo $ESS['Urun_Kodu']; ?><br /><? echo $ESS['Satin_Alinan']; ?> Adet Sattı<p>&nbsp;</p></td>
           
        <? if($x%6==5)
        {
            echo'</tr>';
        }
    }
    ?>
    <tr>
    <td colspan="6" align="center">
    
    </td>
    </tr>
    </table>
    haliyle boş sonuç geliyor. 16 tane boş jpg kutucuğu


    bu şekilde dener misiniz ?

    <? 
    $idler = array(    
        '0'    =>    '14D2Y00006252,14D1T00006238, 14D1T00006237, 14D1T00006236, 14D1T00006235, 14D1T00006234, 14D1T00006233, 14D2Y00006251, 14D1T00006241, 14D1T00006226, 14D1Y00006240, 14C1T00005841, 14C1T00005840, 14C1T00005839, 14C1T00005838' 
         
    ); 
    
    
    
    $sorgu = mysql_query("SELECT * FROM Urunler WHERE Barkod In (".$idler[0].")  ORDER BY ID DESC "); 
    
    ?> 
    
    <table class="tablo"> 
    <?php 
    
    $adet_say=16; 
    for($x=0; $x < $adet_say; $x++) 
    { 
        $ESS=mysql_fetch_array($sorgu); 
        if($x%6==0) 
        { 
            echo'<tr align="center">'; 
        } 
           ?> <td><a href="Urun_Karti.php?Urun=<? echo $ESS['Urun_Kodu']; ?>"><img src="urunler/<? echo $ESS['Urun_Kodu']; ?>_0.jpg" width="100" height="150"/></a><br /> <? echo $ESS['Urun_Kodu']; ?><br /><? echo $ESS['Satin_Alinan']; ?> Adet Sattı<p>&nbsp;</p></td> 
            
        <? if($x%6==5) 
        { 
            echo'</tr>'; 
        } 
    } 
    ?> 
    <tr> 
    <td colspan="6" align="center"> 
    
    </td> 
    </tr> 
    </table>
  • 08-10-2014, 12:58:30
    #9
    kullanacagın idleri diziye atacaksın..

    idler[1]=123
    idler[2]=600 vs.vs.

    sonrada döngünn içine sokup hepsini tek tek sorgulatıp listeliceksin