Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

While döngüsünde neden mysql_fetch_array kullanılır.

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

  1. AtArabaciCumo

    AtArabaciCumo Üye

    Kayıt:
    10 Ocak 2011
    Mesajlar:
    58
    Beğenilen Mesajlar:
    0
    Merhaba genelde while döngüsü ile birlikte mysql fetch array kullanıyorum. Ben php de yeni sayılırım. Neden mysql_fetch_array kullanıyoruz bunun tam olarak kullanım mantığı nedir? ve mysql_fetch_assoc ikisi arasındaki fark nedir. kafam bu işe basmadı doğrusu...
     
  2. Ferhat Ozdemir

    Ferhat Ozdemir Daimi Üye

    Kayıt:
    14 Nisan 2006
    Mesajlar:
    3,268
    Beğenilen Mesajlar:
    3
    Meslek:
    Electronics and Computer Engineer
    Şehir:
    Texas
    Ben hep mysql_fetch_assoc kullanma taraftarıyım. Çünkü bu dize oluştururken daha az yer kaplar. Yani örnekle aciklamak gerekirse;

    isim = Ferhat
    Soyisim = Ozdemir
    Memleket = Gaziantep

    Diye bir mysql ciktisi olsun. Bunu her ikisinde de ayri ayri alalim farki goreceksin.

    mysql_fetch_array(); Çıktısı şöyle olacaktır.
    Kod:
    Array
    (
        [0] => Ferhat
        [isim] => Ferhat
        [1] => Ozdemir
        [Soyisim] => Ozdemir
        [2]=>Gaziantep
        [Memleket]=>Gaziantep
    )
    
    
    Yukaridaki kodda veriyi her iki şekilde alabilirsin. Kırmızı olanlar integer key olarak tutulmaktadır. Mesela ;
    Kod:
    $array[0] ile $array['isim'] aynıdır.
    Bu durum mysql_fetch_assoc() fonksiyonunda gecerli değildir. Burada sadece
    Kod:
    $array['isim'] 
    kullanabilirsin.
    mysql_fetch_assoc(); ta ise;

    Kod:
    Array
    (
    
        [isim] => Ferhat
        [Soyisim] => Ozdemir
        [Memleket]=>Gaziantep
    )
    
    
    olarak tutulurlar.
     
  3. AtArabaciCumo

    AtArabaciCumo Üye

    Kayıt:
    10 Ocak 2011
    Mesajlar:
    58
    Beğenilen Mesajlar:
    0
    yani mantık olarak hiç bir fark yok. Sadece mysql_fetch_array iki veriyi birden tutmakta, mysql_fetch_assoc ise tek veri halinde tutmakta. Yaptığımız orta sevileyeli projelerde mysql_fetch_assoc kullanmak daha doğru olacaktır.
     
  4. Romansanta

    Romansanta Daimi Üye

    Kayıt:
    3 Mart 2010
    Mesajlar:
    1,424
    Beğenilen Mesajlar:
    0
    Meslek:
    Amele
    Şehir:
    1903'den
    Sen Elini Array'a Alistir :)

    Ferhat Hocam Çok Güzel Açıklamış Ağzına Eline Yüreğine Sağlık.

    Küçük Bi ekleme : array indexLeri tablonuzda soldan saga artarak gider 0 ile başlar
     
  5. warekurt

    warekurt Daimi Üye

    Kayıt:
    21 Şubat 2010
    Mesajlar:
    2,759
    Beğenilen Mesajlar:
    0
    Şehir:
    Çikolata,Kek :D
    Ek olarak sadece numaralı array kullanmak isterseniz, yani şu şekilde (ben genelde bu tarz arraylerin taraftarıyım :D );

    Kod:
    Array(
        [0] => Ferhat
        [1] => Ozdemir
        [2] => Gaziantep
    )
    
    
    buna özel mysql_ fetch_ row() fonksiyonu varmış. Veya mysql_fetch_array($result, MYSQL_NUM); şeklinde de iş görüyormuş. Hepsini özetlersek;

    Kod:
    mysql_fetch_row($result) <-- sadece sayı
    mysql_fetch_assoc($result) <-- sadece çağrışımlı (böyle galiba türkçesi :D)
    
    mysql_fetch_array($result) <-- ikisi birden
    mysql_fetch_array($result, MYSQL_BOTH) <-- ikisi birden, ikinci parametre varsayılan oluyormuş yani
    mysql_fetch_array($result, MYSQL_NUM) <-- sadece sayı
    mysql_fetch_array($result, MYSQL_ASSOC) <-- sadece çağrışımlı
     
  6. mgsmus

    mgsmus Aktif Üye

    Kayıt:
    20 Şubat 2007
    Mesajlar:
    268
    Beğenilen Mesajlar:
    2
    Şehir:
    Mersin
    PHP:
    $row mysql_fetch_object($result);
    echo 
    $row->name;
    echo 
    $row->surname;
    echo 
    $row->address;
     
  7. Turkoman

    Turkoman Daimi Üye

    Kayıt:
    23 Mayıs 2008
    Mesajlar:
    1,295
    Beğenilen Mesajlar:
    0
    Meslek:
    Öğrenci
    Şehir:
    Nereye?
  8. warekurt

    warekurt Daimi Üye

    Kayıt:
    21 Şubat 2010
    Mesajlar:
    2,759
    Beğenilen Mesajlar:
    0
    Şehir:
    Çikolata,Kek :D
    Turkoman bunu diyorsan sanırım önemli derecede fark yok demek istiyor. Ancak ben dediğim gibi numara indislerinden yanayım. fetch_array kullanırdım ama bu konu sayesinde fetch_rowu öğrenmiş oldum, artık kesseler vazgeçmem ondan :) Bu arada fetch_object de ilginçmiş. PHPnin nimetleri işte...
     
  9. deathisonitsway

    deathisonitsway x-coder

    Kayıt:
    7 Kasım 2007
    Mesajlar:
    6,145
    Beğenilen Mesajlar:
    6
    Meslek:
    php-coder
    Şehir:
    abroad
    object kullanın nesne tabanlı calısıyorsanız...assoc hızlıdır ama, tek çağırımda dondurur veriyi..
     
  10. Turkoman

    Turkoman Daimi Üye

    Kayıt:
    23 Mayıs 2008
    Mesajlar:
    1,295
    Beğenilen Mesajlar:
    0
    Meslek:
    Öğrenci
    Şehir:
    Nereye?
    Benim İngilizcem bu kadar işte :) Bildiğim bir buçuk dil var maalesef ikisinde de vermemiş :)

    Warekurt, aydınlattığın için teşekkürler.
     
  11. AtArabaciCumo

    AtArabaciCumo Üye

    Kayıt:
    10 Ocak 2011
    Mesajlar:
    58
    Beğenilen Mesajlar:
    0
    neden objet kullanalım?
     
  12. SEYRANLI

    SEYRANLI Daimi Üye

    Kayıt:
    30 Aralık 2007
    Mesajlar:
    2,162
    Beğenilen Mesajlar:
    0
    Meslek:
    Öğretmen
    Şehir:
    Ankara
    assoc ile object arasında pek bi fark olduğunu sanmıyorum. ikisi de çok yakın sürelerde çalışacaktır. fark ederse mysql yerine mysqli kullanıldığında eder
     
  13. AtArabaciCumo

    AtArabaciCumo Üye

    Kayıt:
    10 Ocak 2011
    Mesajlar:
    58
    Beğenilen Mesajlar:
    0
    Bu mysqli nedir, tam olarak neye yarar.
     
  14. Raiden

    Raiden self.life.start()

    Kayıt:
    11 Ekim 2004
    Mesajlar:
    4,392
    Beğenilen Mesajlar:
    0
    Şehir:
    /home/Raiden
    mysql fonksiyonlarının object oriented ve gelişmiş hali.
     
  15. zbahadir

    zbahadir where id='Linux'

    Kayıt:
    7 Temmuz 2006
    Mesajlar:
    4,442
    Beğenilen Mesajlar:
    0
    Meslek:
    Bilgisayar ve Internet Hizmetleri
    Şehir:
    Trabzon
    Çok büyük projeler yapmıyorsanız gözle görülmeyen hız farkları sizin için bir şey ifade etmez. projelerinizi geleneksel yoldan yani bildiğiniz gibi yapın. Her şeyi aynı anda öğrenemezsiniz. Her bilgiyi yerinde yani ihtiyacınız olduğunda kullanırsanız akılda daha kalıcı olur. Yine de her ihtimale karşı bazı ufak bilgileri öğrenebileceğiniz bir php başucu kitabınızın olmasında fayda var.

    Diğer yöntem çok basit;
    İngilizceniz olsun olmasın google'dan şunu yazın;
    "mysqli nedir?" veya "mysqli ne işe yarar?"
    göreceksiniz Türkçe başta olmak üzere öğrenmek istediğiniz her şey zaten baştan sorulmuş, cevaplar alınmış sizin bulmanız için bekliyor.
     
  16. AtArabaciCumo

    AtArabaciCumo Üye

    Kayıt:
    10 Ocak 2011
    Mesajlar:
    58
    Beğenilen Mesajlar:
    0
    Peki hocam şöyle 100.000 işlemleik günde ortalama bunun için normal mysql komutları yeterli olur sanırım. Zaten onun üstünede işlem olursa 10 tane veri analistici ile birlikte çalışır.
     
  17. zbahadir

    zbahadir where id='Linux'

    Kayıt:
    7 Temmuz 2006
    Mesajlar:
    4,442
    Beğenilen Mesajlar:
    0
    Meslek:
    Bilgisayar ve Internet Hizmetleri
    Şehir:
    Trabzon
    Yeter de artar bile.

    Burada önemli olan hangi fonksiyon daha hızlıdır yerine doğru fonksiyonu kullanmak.
    Sorguda hızlı olarak düşündüğünüz fonksiyonun döndürdüğü değer sizi daha fazla uğraştıracak ise baştan kazanılan hız sonradan zararı olmuş olur.

    Mesela sonuçları daha sonra array olarak kullanacaksanız direk olarak mysql_fetch_array kullanacaksınız.

    Umarım anlatabilmişimdir :)
     
  18. AtArabaciCumo

    AtArabaciCumo Üye

    Kayıt:
    10 Ocak 2011
    Mesajlar:
    58
    Beğenilen Mesajlar:
    0
    Anladım hocam hemde çok iyi. Mesela önceden mysql_fetch_array kullanıyorum ama baktım ki mysql_fetch_assoc aynı işi yapıyor muş. Sadece verileri sayısal değerleri sıralarda tutmuyor. artık mysql_fetch_assoc kullanmaya başladım. bu sayede işin mantığınıda kapmış ve php'nin nasılş çalıştığını öğrenmiş oluyorum. Teşekkür ederim.