Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

PHP ile ODBC bağlantısı

Konu, 'PHP' kısmında nihal tarafından paylaşıldı.

  1. nihal

    nihal Aktif Üye

    Kayıt:
    8 Ocak 2003
    Mesajlar:
    286
    Beğenilen Mesajlar:
    0
    Merhaba,
    Ben PHP ile ODBC veritabanına bağlanıyorum.ve Veritabanındaki kayıtlar arasında sırasıyla ilerlemek istiyorum.Fakat benim bildiğim kadarıyla Php'nin Mysqldeki
    mysql_result(sonuc,satır_no,alan_adı) komutu gibi ODBC veritabanları için komutu yok.yada benim bildiğim kadarıyla yok.
    Fakat bunun dışında da nasıl bir yöntem kullanacağımı bilmiyorum.
    Acilen yardımcı olabilirseniz sevinirim.
     
  2. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
  3. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Dikkat ettimde sitedeki php bölumune arkadaslar böyle bir konu yazmamislar, niye yazmamislar ki :)
     
  4. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Teşekkürler abi ;)
     
  5. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    string odbc_result (int result_id, mixed field)

    fonksiyonu var. manuele bakarsan ayrıntılı açıklamaları olacak tam olarak nasıl bişe yapmak istiyorsun?
     
  6. blackhawk

    blackhawk Üye

    Kayıt:
    16 Kasım 2002
    Mesajlar:
    244
    Beğenilen Mesajlar:
    0
    Meslek:
    ...
    manuel'e baktık,
    ama bulamadık..

    olay şu: kayıtlar arasında ileri geri gitme

    asp'deki movenext gibi birşey..??
     
  7. mkarabulut

    mkarabulut Misafir

    Evet odbc fonksiyonları içinde ADO dan alışalıgelmiş olan movenext,moveprevious gibi fonksiyonlar yok.
    Ama şöyle bi fonksiyon listesine bakınca kayıtlar üzerinde istenilen gibi gezinmeyi sağlayacak bir çok fonksiyon olduğunu görüyoruz.
    Mesela benim mysql'den alıştığım fetch_array tarzı fonksiyonlar var, ya da doğrudan kayıt numarasına erişilen odbc_result(), herkes tarafından bilinirki fetch_array tarzı fonksiyonlar odbcresult gibi doğrudan erişimli fonksiyonlardan çok daha hızlıdır.

    Herneyse eğer istenilen movenext gibi erişim yapmaksa varolan fnksiyonlar kullanılarak benzer metodları sen yazabilirsin.
    Yapman gereken veritabanı fonksiyonlarının bir üstünde bi katman oluşturman ve kendi yazdığın bir vt sınıfı kullanman..

    Ben boş bi vakitte bi şeyler karaladım aşağıda sadece fikir vermesi açısından,oldukça basit bi şey ama belki fikir verir..

    Kolay gelsin

    Kod:
    class odbc {
          var $eof;
          var $bof;
          var $current;
          var $resource;
    
          var $rs;
          var $recordNum;
    
          function odbc ($resource){
             $this->eof = true ;
             $this->bof = true ;
             $this->resource = $resource;
             $this->current  = 1;
          } //function odbc
    
          function exec ($query) {
             $this->rs = odbc_exec ($query,$this->resource);
             $this->recordNum = odbc_num_rows($this->rs);
             if ($this->recordNum>0){
                 $this->eof = false;
                 /* Alan isimlerini al */
                 $this->fields = array ();
                 for ($i=0;$i<odbc_num_fields($this->rs);$i++){
                      $this->fields[]=odbc_field_name($this->rs,$i);
                 }
                 /* Erişim için kayıt elemanlarını oluştur */
                 $this->getRow();
             }
          }// function exec
    
          function getRow() {
             if ($this->eof) return false;
             for ($i=0;$i<count($this->fields);$i++){
                  $this->row[$this->fields[$i]]=odbc_result(
                                                $this->rs,
                                                $this->fields[$i]
                                                );
                  $this->row[$i] = odbc_result(
                                               $this->rs,
                                               $this->fields[$i]
                                               );
             }
          }
    
          function moveNext () {
             if ($this->eof) return false;
             if ($this->current + 1 <= $this->recordNum){
                 $this->current++;
                 $this->getRow();
             } else {
                 $this->eof = true;
             }
          }
    
          function movePrevious () {
             if ($this->eof || $this->bof) return false;
             if ($this->current - 1 > 1){
                 $this->current++;
                 $this->getRow();
             } else {
                 $this->bof = true;
             }
          }
    } //class
    
     
  8. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Ay kafam karıştı...
     
  9. mkarabulut

    mkarabulut Misafir

    YA haklısın bu class için bi örnek kullanım yazmak gerekiyor..
    Kod:
     // Veritabanına bağlanıldı farzediyoruz
     $odbc = new odbc ($conn);
     // Sorguyu çalıştır
     $odbc->exec ($query);
     while (!$odbc->eof) {
            echo $odbc->row['adı'].' '. $odbc->row['soyadi'] .'<br>';
            $odbc->moveNext(); 
     }
    
    Yani böyle bi şeyler olması gerekiyor.. Ama dediğim gibi yukarıdaki kod bi karalamadan ibaret,sadece fikir vermesi açısından.. Sadece o gözle bakılırsa biraz faydası dokunabilir..
     
  10. blackhawk

    blackhawk Üye

    Kayıt:
    16 Kasım 2002
    Mesajlar:
    244
    Beğenilen Mesajlar:
    0
    Meslek:
    ...
    Sonunda hallettik...

    yardımcı olan arkadaşlara çok teşekkür ederiz..

    bizim bir problemimiz daha var..

    sayfamız frameli bir yapıdan oluşuyor..
    üstteki sayfada ileri geri butonları var.. altta ki sayfadada yaklaşık 10 linkten oluşan bir sayfa var.

    örnek veriyorum;

    üstte otel adı:
    otel no bulunuyor..

    alttaki sayfada ise
    teknik özelliker..
    şu özellikler
    bu özellikler diye linkler var ..

    bunlardan herhangi birine basınca üstteki kayıtla ilgili verilere ulaşmak istiyoruz..

    linke ilk tıkladığımızda session'ın da yardımıyla gerekli verilere ulaşıyoruz

    yani üstteki sayfada 115-a kodlu otelin

    misafir parametrelerini doğru şekilde görüyoruz..

    fakat üstte ileri geri yaptığımızda alttaki framedeki sayfa güncellenmiyor..

    tabi bu çok doğal..
    ama biz istiyoruz ki üstteki değiştikçe alttaki de otel kodunu kullanarak verileri güncellesin
    bunu nasıl yapabiliriz.. _?
    :confused:
     
  11. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    açıkcası aklıma bir şey gelmiyor ama JavaScript işinizi görebilir.
     
  12. blackhawk

    blackhawk Üye

    Kayıt:
    16 Kasım 2002
    Mesajlar:
    244
    Beğenilen Mesajlar:
    0
    Meslek:
    ...
    ben de javascriptle olacağını düşünüyorum.
    ama örneğini görmedim..

    yalnız bu çok işe yarayacak bir kod olacaktır bi çok kişi için..
     
  13. nihal

    nihal Aktif Üye

    Kayıt:
    8 Ocak 2003
    Mesajlar:
    286
    Beğenilen Mesajlar:
    0
    Bu sefer sorunum direkt olarak php ile bağlantılı değil sanırım.
    Ben odbc ile bağlandığım veritabanımdan image formatındaki bilgiyi nasıl okuyup sayfamda kullanabileceğimi bilmiyorum...

    Yani veritabanındaki image bilgisini nasıl okuyup sayfamda nasıl kullanabileceğimi öğrenmek istiyorum..

    yardımlarınız için şimdiden teşekkürler..... :confused: