msn icon Türkiye'nin En Gelişmiş Msn Messenger Sitesi Bugün 11 Ağustos 2013, Pazar Bir İsteğim Var Popüler Üyeler Videolar Msn Sohbet Hakkında İletişim
 
livemsntr logo
 
  ANA SAYFA MSN EKLENTİLERİ MSN BİLGİLERİ MSN İFADELERİ MSN AVATARLARI
  Msn İndir   Resim Galeri   Dinamik Görüntüler   Sorun Söyleyelim   Msn Nick Oluşturma   Programlar   Göz Kırpmalar   Msn Güvenlik
 
  Msn Nickleri        Msn Hataları        Şarkı Sözleri        Biyografiler        Ödev Arşivi              NEDİR 
 
MySQLde Farklı Yöntemler (1073 Kez Okunmuş)
Bu sayfa php ve mysql için önemli bilgiler içermektedir.

MySQL ve PHP doğru kullanıldıklarında etkili Web sitelerinin en güçlü silahları olabilirler. Şu ana kadar verilen bilgiler ışığında bile MySQL ile yeni tanışan kullanıcıların zihinlerinde neler yapılabileceğinin pırıltıları belirebilir. En çok arama motorlarında görülen ve üstelenen bilgilerin belli bir sayıdan sonrasının gösterilmediği uygulamaları, basit SQL komutlarıyla ve MySQLle yapabilmek mümkündür. Örneğin içinde yüzlerce satır kayıt yer alan bir tabloyu 20şerli gruplar halinde alfabetik sıralı olarak farklı sayfalara bölerek göstermek için SQLde limit kalıbının kullanılması yeterli olacaktır.
İçinde 30 ya da daha fazla sayıda satır bulunan bir kullanıcılar tablosu için daha önce hazırlanan form.php dosyası kullanılarak rasgele bilgi girişi yapılır. Bu bilgileri 10arlık gruplar halinde listeleyerek alfabetik sırada gösterecek PHP kodunu hazırlamak için, SQL cümleciğinin

select * from kullanicilar order by ad limit 0, 10

şeklinde olması gerekmektedir. Bu SQL sorgusuyla MySQLden çekilecek olan bilgiler ad alanına göre alfabetik olarak sıralanacaktır. Bu sorguyu kullanarak ekrana kullanicilar tablosundan kayıtları dökecek olan PHP dosyası şu şekilde olacaktır:

<?
include("kitaportakkoy.php");
$isimler = mysql_query("select * from kullanicilar order by ad limit 0, 10");
if (mysql_error())
{
 echo ("MySQL hatası oluştu. Hata: ");
 echo mysql_error();
}
$sayi = mysql_numrows($isimler);
$i=0;
while ( $i < $sayi) :
$ad = mysql_result($isimler,$i,"ad");
$soyad = mysql_result($isimler,$i,"soyad");
echo ("Ad : $ad Soyad : $soyad<br> ") ;
$i++;
endwhile;
?>

MySQLde SQL sorgusundan dönen bilgileri satir satır çekebilmek için mysql_result()dan farklı iki komut daha vardır. Bu komutlar mysql_fetch_array() ve mysql_fetch_row()dur. Bu iki komut da mysql_result()a göre daha performanslı ve hızlıdır. Ancak kullanımı çok az farkla zordur. Bu komutların kullanımında SQLden dönen bilginin satır numarası ve alınacak olan bilginin tablodaki hangi alana ait olduğunun belirtilmesine gerek yoktur. Dönen bilgi tümüyle bir satırdır ve bilgi bir dizi (array) değişkeninde tutulur. Yani Yukarıdaki sorguda bir satırda dönen kullaniciid, ad, soyad, e-posta ve cinsiyet bilgilerinin tümü bir dizi değişkenine depolanır. Bu dizi değişkenden her bir alana ait kullaniciid, ad, soyad, e-posta ve cinsiyet bilgilerini çağırmak için alan adının sıra numarası kullanılır. Bu sıra numarası sıfırdan başlamak durumundadır. Yani ad alanı için

$tumsatir = mysql_fetch_row($isimler) ;

satırıyla bilgi çekildikten sonra
$tumsatir[1] ;

değişkeni kullanılır. Benzer şekilde kullaniciid, soyad, eposta ve cinsiyet bilgileri için de

$tumsatir[0]; // kullaniciid $tumsatir[2]; // soyad $tumsatir[3]; // eposta $tumsatir[4]; // cinsiyet

değişkenleri kullanılacaktır. Yukarıdaki PHP kodlarında //ve yanındaki bilgiler açıklayıcı olmaları için yazılmıştır, PHPnin çalışma-sına herhangi bir etkileri yoktur. Dolayısıyla mysql_fetch_row() komutuyla tüm bir satırı çekmek, mysql_result() komutuyla her bir satırda her bir alan için teker teker bilgi çekmekten daha hızlı ve kolaydır.

<?
include("kitaportakkoy.php") ;
$isimler = mysql_query("select * from kullanicilar order by ad limit O, 10");
if (mysql_error())
{
 echo ("MySQL hatası oluştu. Hata: ");
 echo mysql_error();
}
while($tumsatir = mysql_fetch_row($isimler)) :
echo ("Ad : $tumsatir[l] Soyad :
$tumsatir[2]<br> ") ;
endwhile;
?>

Az önce bilgi dökmek için kullanılan PHP komutları yerine yukarıdaki komutlar hem daha az yer kaplar hem de daha hızlı çalışırlar. Normalde PHP dosyasının geliştirme süreci bittikten sonra içerdiği

if (mysql_error())
{
echo ("MySQL hatası oluştu. Hata: ");
echo mysql_error();
}

satırının da kaldırılması PHPnin çalışmasını hızlandıracaktır. Aksi takdirde, bu PHP kodu, her çalıştırılmasında MySQL hatasının oluşup oluşmadığını denetleyen if mantıksal denetleyicisini de yorumlayacaktır. Yukarıdaki kod listele2.php adı verilerek kaydedilebilir. Bu dosyada PHP, MySQLe kullanicilar tablosunda alfabetik sıralamada 0dan 10a kadar olan kayıtları istediğim belirtmektedir. Yapılması amaçlanan PHP dosyasının tüm kayıtları 10arlı gruplar halinde çekerek ekrana basmasıdır. Bunun için PHP dosyasındaki SQL cümleciğinde limit kalıbının içine bir değişken yerleştirmek gerekmektedir.

$isimler = mysql_query("select * from kullanicilar order by ad limit $k, 10");

SQL cümleciğine yerleştirilen $k değişkeni, MySQLe k. sıradaki kayıttan itibaren 10 tane kaydı çekmesini söylemektedir. Eğer $k değişkeni 20 olursa 20-30. kayıtlar, 25 olursa 25-35. kayıtlar listelenecektir. Sıra $k değişkeninin kullanıcılardan bir şekilde alınmasına geldi. Kullanıcılar, ekranda sadece 10 satırım gördükleri isim listesinde bir sonraki 10 satıra göz atabilmek için bir bağa tıklayacaklar ve bu sayede PHP bir sonraki 10 satırlık bilgiyi listeleyecektir. Bunun için PHPnin adres satırından değişken alabilme özelliğinden faydalanılacak.

<?
include ("kitaportakkoy.php") ;
$isimler = mysql_query("select * from kullanicilar order by ad limit $k, 10");
if (mysql_error())
{
 echo ("MySQL hatası oluştu. Hata: ");
 echo mysql_error() ;
}
while($tumsatir = mysql_fetch_row($isimler)) :
echo ("Ad : $tumsatir[l] Soyad : $tumsatir[2]<br> ") ;
endwhile;
$k = $k + 10;
echo ("<a href="listele2.php?k=$k">Sonraki 10 kayıt</a>") ;
?>

Yukarıdaki kod listele2.php adıyla kaydedilerek çalıştırıldığında bir hata mesajı verecektir. Bu hata mesajı gözden kaçabilecek önemli bir noktadan kaynaklanmaktadır. Verilen hata mesajı şudur:

Warning: Supplied argument is not a valid MySQL result resource in listele2.php on line 9

Bu, MySQL gönderilen SQL sorgusunu anlamadığından ve çalıştıramadığından dolayı ekrana yazılmaktadır. Bu PHP dosyasıyla yapılması istenen, bir $k değişken değeriyle gelen sayının belirttiği başlangıç noktasından itibaren 10 tane kaydı veritabanından çekmektir. Çalıştırılan PHP dosyasında henüz $k değişkenine herhangi bir değer atanmadığı için, aslında MySQLe gönderilen sorgu tam olarak

select * from kullanicilar order by ad limit , 10

şeklindedir. SQLde limit kalıbında iki tane sayı değerinin virgülle ayrılarak verilmesi gerektiğinden, bu SQL sorgusu geçersizdir. PHP dosyası, eğer $k değişkenine bir değer atanarak çalıştırılırsa SQL sorgusu doğru olacaktır. Bunu denemek için tarayıcıya

http://localhost/listele2.php?k=0

yazılması yeterli olacaktır. Bu satir listele2.php dosyasında $k değişkeninin değerinin 0 olarak işlem görmesin! sağlar. Dolayısıyla sorgu

select * from kullanicilar order by ad limit 0, 10

şekline dönüşeceğinden geçerlidir. PHPde $k değişkenine herhangi bir değer atanmamışsa $kya 0 değerinin atanması için

if (!$k) $k = 0;


satiri eklenebilir. Bu satır $k değişkeninin değer almadığı durumda, yani (!$k) olduğa durumda, $k değişkeninin değerini 0 yapar. Bu satırın, PHPde MySQLe sorgu göndermeden önceki herhangi bir satıra konmasıyla hata çözülmüş olur. Eğer $k değişkeninin aldığı herhangi bir değer varsa, PHP if döngüsüne girmez.

<?
include ("kitaportakkoy.php");
if (!$k) ($k = 0;}
$isimler = mysql_query("select * from kullanicilar order by ad limit $k, 10");
if (mysql error())
{
 echo ("MySQL hatası oluştu. Hata; ");
 echo mysql_error() ;
}
while($tumsatir = mysql_fetch row($isimler)) :
echo ("Ad : $tumsatir[1] Soyad :$tumsatir[2]<br> ") ;
endwhile;
$k = $k + 10;
echo ("<a href="listele2.php?k=$k">Sonraki 10 kayıt</a>");
?>

PHPnin kullanıcıdan gelen istek doğrultusunda bir sonraki 10 kaydı gösterebilmesi için,

echo ("<a href="listele2.php?k=$k">Sonraki 10 kayıt</a>") ;

satırıyla kullanıcıdan Sonraki 10 kayıt adında bir bağa tıklaması istenmektedir. Bu bağa tıklandığında listele2 .php dosyasına $k değişkeninin değerinin 10 artırılmış hali gönderilir. Bu sayede tekrar çağırılan PHP dosyasında, artık $k değeri 10 olacaktır ve 10 — 20 arasındaki kayıtlar ekrana dökecektir.

  BEĞEN :
 
 
2 Kişi Beğenmiş, 1 Kişi Beğenmemiş.
Yazıcıdan Çıkartın Word Olarak Kaydedin E-Mail Olarak Gönderin
 




Bu Konuya Henüz Yorum Yapılmamış.

İlk Yorumlayan Siz Olabilirsiniz.

MySQLde Farklı Yöntemler kodlar ... MySQL Veritabanı İçin Farklı Php Kodlar Hakkında
 
  Ana Sayfa   Soru Gönder   Sitene Ekle   Msn İndir   Msn Sohbet   Diğer Bölümler   Sahne Resimleri   Kategoriler   En İyiler
  Gizlilik Politikası           Google Gadget           Sitemap           RSS Bülteni           Webmaster           Google+           Kullanım Koşulları           msn indir
Copyright 2009 - 2011 ©    Türkiyenin En Büyük ve En Güçlü Messenger Web Sitesi    Livemsntr.com ™    Tüm Hakları Saklıdır.

Sitedeki Dosya ve Bilgileri Kontrolden Geçiriniz. Oluşacak Sorunlardan Livemsntr.com Sorumlu Değildir. Sitemiz Msn indir , Msn Yükle , Msn Download Aramalarında Öncülük Etmektedir.