• 05-11-2018, 13:24:32
    #1
    veritabanından veriyi aşağıdaki kod ile çekiyorum

    <?php
    include_once("baglan.php");
    
    $sorgu = odbc_exec($baglan, "SELECT LOGICALREF, NAME, CODE, ACTIVE FROM LG_001_ITEMS" );
    
        while( $veri=odbc_fetch_array($sorgu) ){
    
            $sorgu2 = odbc_exec($baglan, "SELECT STOCKREF, ONHAND FROM LV_001_01_STINVTOT WHERE STOCKREF=".$veri['LOGICALREF']);
                    $veri2=odbc_fetch_array($sorgu2);
                    print_r($veri2);
               }
    ?>
    Sonuç:
    Array
    (
              [STOCKREF]  =>  2
              [ONHAND]  => 5.0
    )
    (
              [STOCKREF]  =>  3
              [ONHAND]  => 5.0
    )
    (
              [STOCKREF]  =>  4
              [ONHAND]  => 5.0
    )
    (
              [STOCKREF]  =>  5
              [ONHAND]  => 5.0
    )
    (
              [STOCKREF]  =>  6
              [ONHAND]  => 5.0
    )
    ama sql server managementda Aynı stockref değeri için birden fazla sonuç var bunları neden diziye aktarmıyor ? Sadece ilk değeri çekiyor.
  • 05-11-2018, 14:10:55
    #2
    Bu sorgudan bu sonucun geldiğine emin misiniz?
    Bu sonuç şu sorgudan gelmiş gibi;

    <?php
    include_once("baglan.php");
     
    $sorgu = odbc_exec($baglan, "SELECT LOGICALREF, NAME, CODE, ACTIVE FROM LG_001_ITEMS" );
     
        while( $veri=odbc_fetch_array($sorgu) ){
     
            $sorgu2 = odbc_exec($baglan, "SELECT STOCKREF, ONHAND FROM LV_001_01_STINVTOT WHERE ONHAND=".$veri['LOGICALREF']);
                    $veri2=odbc_fetch_array($sorgu2);
                    print_r($veri2);
               }
    ?>
  • 05-11-2018, 14:26:38
    #3
    Hapsher adlı üyeden alıntı: mesajı görüntüle
    Bu sorgudan bu sonucun geldiğine emin misiniz?
    Bu sonuç şu sorgudan gelmiş gibi;

    <?php
    include_once("baglan.php");
     
    $sorgu = odbc_exec($baglan, "SELECT LOGICALREF, NAME, CODE, ACTIVE FROM LG_001_ITEMS" );
     
        while( $veri=odbc_fetch_array($sorgu) ){
     
            $sorgu2 = odbc_exec($baglan, "SELECT STOCKREF, ONHAND FROM LV_001_01_STINVTOT WHERE ONHAND=".$veri['LOGICALREF']);
                    $veri2=odbc_fetch_array($sorgu2);
                    print_r($veri2);
               }
    ?>
    2si arasında ne fark var hocam ?
  • 05-11-2018, 15:38:33
    #4
    sizinkinde WHERE STOCKREF diye ikincisinde WHERE ONHAND olarak. Çünkü sonuca bakarsanız stockref değeri sabit değil onhand değeri sabit ayrıca sonuçta sadece 1 dizi veriyorsa ilk while döngüsünden de 1 döngü işlemi olmuş demektir.
  • 05-11-2018, 15:47:11
    #5
    Hapsher adlı üyeden alıntı: mesajı görüntüle
    sizinkinde WHERE STOCKREF diye ikincisinde WHERE ONHAND olarak. Çünkü sonuca bakarsanız stockref değeri sabit değil onhand değeri sabit ayrıca sonuçta sadece 1 dizi veriyorsa ilk while döngüsünden de 1 döngü işlemi olmuş demektir.
    tamam hocam teşekkür ederim. Sorunu buldum 2. sorguyu while ın içinden çıkarıp yeni bir while a sokunca sorun düzeldi.