PHP ile MySQL kullanmak

Buraya kadar PHP ve MySQL’e giriş yaptım. Buradan sonra artık web üzerinde akrobasi yapmaya başlayabiliriz.
Aslında veritabanlarının çok çeşitli kullanımları olsa da ben genelde çerez yollama, sayaç, ziyaretçi defteri, parolalı giriş ve kullanıcı kaydı gibi konular üzerinde duracağım. Buradan sonra artık yeni işlev kullansam bile çok nadir olarak kullandığım yeni işlevin kullanım şeklini açıklayacağım (Bu belgeyi buraya kadar okumuş ve kendi çabaları ile bir şeyler yapmış birisi için buna ihtiyaç olacağını da sanmıyorum zaten). Bu bölüm genelde yazacağım örnekler ve bu örneklerin açıklamaları halinde olacaktır.
İlk önce MySQL bölümünde kullandığım “kullanicilar” adlı tablodan PHP ile veri alma, veri silme ve veri yükleme işlemlerini gerçekleştirelim. Aşağıda “kullanicilar” tablosunu bir hatırlatma olsun diye tekrar verdim.

+----+--------------+---------+------------------------+-------+| no | Ad | Soyad | eposta | bolum |+----+--------------+---------+------------------------+-------+| 1 | Chd Shd | ISI | [email protected] | eee || 2 | Mehmet | Korkmaz | red@chdonline.net| pe || 3 | Adem | Sarnici | help@chdonline.net | pe || 4 | Seckin Fatih | Solgun | network@chdonline.net | me |+----+--------------+---------+------------------------+-------+
Önce PHP ile veritabanına bağlanma ve veri alma işlemlerini ele alalım. PHP ile MySQL’e bağlanmak için mysql_connect() işlevi kullanılır.
scription">PHP- Kodu:

<?#################***nbsp;  mysql.php   ##################/* mysql’e   bağlanma islemi [email protected]_connect(“localhost”, ”kullanici”, ”parola”)   or  die (“Veritabanına bağlanırken bir hata oluştu!”);/* mysql’de kendi   veritabanimizi secim islemi [email protected]_select_db(“base”)  or   die(“Veritanında bir hata oluştu!”);$sira = 0;while ($sira < 4){  /*   mysql’e sorgu gönderiliyor ve bu sorgudan gelen degerler bir degiskene   atanıyor.  $sorgu = mysql_query(“select * from kullanicilar”);  $ad =   mysql_result($sorgu, $sira, ’Ad’);  echo “$ad <br>”;    $sira++;}?>
Yukarıdaki PHP dosyası bizim kendi sunucumuz üzerindeki MySQL sunucusuna kullanici kullanıcı adı ve parola parolası ile bağlanıyor. Komutların başındaki @ işareti komutun işletilmesinde bir hata oluşursa ekrana hata mesajının basılmaması içindir. Onun yerine kendi belirlediğimiz hata mesajını or die kalıbı ile verebiliyoruz. Bağlanma işleminden sonra mysql_select_db (mysql’deki use base gibi) işlevi ile kendi veritabanımıza geçiyoruz.
Buradan sonra sira bir adlı bir değişkene 0(sıfır) değerini atadım. Bunun amacı MySQL’de işlem yapılan satırların sıfırdan itibaren bir satır sayısı almalarıdır. (Ben örneğimde while döngüsünde koşulu $sira < 4 şeklinde tanımladım ama normalde bir tabloda kaç satır olduğunu bilmeniz mümkün olmayabilir. Ben satır sayısını bildiğim için böyle bir yol seçtim.)
Döngü içerisinde $sorgu adlı değişkene mysql_query() işlevi ile SQL’den alınan bilgiler atanıyor. Daha sonra mysql_result() işlevi ile bu bilgilerden istek doğrultusundan ayıklama yapılıyor. mysql_result() işlevinin işleyiş tarzını bir düzleme benzetirsek:
  1. $sorgu adındaki bilgilerin olduğu düzleme git.
  2. $sira ile belirtilen satırdan
  3. Ad sütunundaki bilgiyi al.

şeklinde bir yorum yapılabilir. mysql_query() sorgusu ile alnan sonuçlar mysql_result() ile ayıklanır. $ad değişkenine atanan değerler alt alta ekrana basılıyor. Daha sonra $sira değişkeni bir arttırılıyor (aksi taktirde sonsuz bir döngü içine girilir!) ve döngüden çıkılıyor.
Şimdi de kafamızda hayali bir senaryo oluşturup bu senaryoya göre bir HTML dosyası ve bu dosyadan veri alan bir PHP dosyası yapalım. Kullanıcı kaydı tutan bir web formu ve bu formdan bilgi alacak PHP dosyasını oluşturalım. Ama daha önce bu bilgilerin kaydedileceği SQL tablosunu oluşturalım.


description">PHP- Kodu:
mysql –h localhost –u kullanici –pEnter Password:mysql> use   base;Database changedmysqlcreate table kayit    -> (no int   auto_incrementkullaniciadi varchar(15),    -> sifre(25),   eposta(25), primary key(no));mysqlquit 
Yukarıda komut satırından mysql’e bağlanıp kayit isimli bir tablo oluşturdum. Şimdi sıra HTML form dosyamızda.

PHP- Kodu:
<!-- kayit.html --><html><body bgcolor="#FFFFFF"   text="#000000"><form action="kayit.php"   method="post"><b>Kullanıcı Adınız:</b><input   type="text" name="u_name"   size="20"><br><b>Parolanız:</b><input   type="password" name="pass" size="20"><br><b>e-posta   adresiniz:</b><input type="text" name="mail"   size="20"><br><input type="submit" value="  Kayıt    "></form></body></html
PHP- Kodu:
<?/*   kayit.php */@mysql_connect("localhost""kullanici",  "parola")    or  die("Veritabani ile baglanti  kurulamadi!");@mysql_select_db("base")     or die("Veritabaninda bir hata  olustu!");@mysql_query("insert into  kayit  values(‘’,’$u_name’$pass’$mail’)");echo   "<center><b>Bilgileriniz varitabanina   kaydedildi.</b></center>";require("./kayit.html");?>
Yukarıdaki PHP dosyası form ile gelen bilgileri veritabanındaki kayit adlı tabloya kaydediyor.
Kayıt işleminden sonra ekrana işlemin başarı ile gerçekleştirildiğine dair bir mesaj geliyor ve formu içeren HTML dosyası tekrar ekrana basılıyor.
MySQL’de tablo yenileme (update) ve veri silme (delete) komutları da mysql_query() işlevi ile kullanılır. Yani normal olarak SQL sorgusu gönderiliyor.
Burada sonra artık örnek uygulamalara geçiyorum.
Yeni bölüme başlamadan önce size phpinfo() işlevinden biraz söz etmek istiyorum. Yapmanız gereken tek şey bir PHP dosyası için <? phpinfo(); ?> yazıp kaydetmek. Üzerinde çalıştığınız sunucunun birçok özelliğini ve PHP ile birlikte kullanabileceğiniz birçok faydalı değişkeni bu işlev altında bulabilirsiniz.
Ziyaretçi Defteri Örneği
Çoğu web sitesinde gördüğümüz ziyaretçi defterlerini PHP yardımı ile kendi sitenizde de kullanabilirsiniz. Gerçi internet üzerinde bu işi yapan hazır betikler bulmak pek zor değil fakat bu basit uygulamaları daha ileri teknikler için bir ön adım olarak kullanmanız açısından faydalı olacaktır.
Bu iş için önce bir HTML dosyası ile kullanıcıdan bilgi alınmalı. Daha sonra bu bilgi bir PHP dosyası ile bir metin dosyasına yazılarak isteyen kullanıcılara görüntülenmeli.



PHP- Kodu:

<!-- Bu dosya defter.html adı ile kaydedilecek   --><html><head><title>Ziyaretçi   Defteri</title></head><body bgcolor="#ffffff"   text="#000000"><center><br><table bgcolor="#000000"   border="0" cellpadding="1" cellspacing="0" width="450">    <tr><td>    <table border="0" cellpadding="0"   cellspacing="0" bgcolor="#FFFFFF" width="450">      <tr><td   bgcolor="#006486">        <b><center>Defteri   Doldurun</b>      </td></tr>      <td>          <form action="defter.php" method="post"><br>             <b>Kimden :</b><input type="text" name="kimden"   size=30><br><br>          <center><textarea   rows="15" cols="50" name="metin"></textarea>        </td></tr>      <tr><td>          <center><br>        <input type="submit" value="    Deftere ekle  ">         <input type="reset" value="    Yazdıklarımı sil  "><br><br>      </td></tr>      </table>    </td></tr></table></body></html

Bu reklam sadece misafirlere görünüyor. Oturum açar veya üye olursan, bu reklamdan kurtulursun.

PHP- Kodu:

<?/* Bu dosya defter.php adi ile kaydedilecek */if ($dosya_ac =   (fopen(“./defter.txt”,”a”))){  $tarih date("d.m.Y");  $yeni_metin =   "<br><table border='0' cellpadding='0' cellspacing='0'   bgcolor='#eaeaea' width='600'>    <tr><td><b>$kimden</b> tarafından   <b>$tarih</b> tarihinde   yazılmış.<br><br></td></tr>\n    <tr><td>$metin</td></tr></table><br>”;    fwrite($dosya_ac$yeni_metin);  fclose($dosya_ac);  echo “Sayın   $kimden defterimizi doldurduğunuz için teşekkürler.<br>”;    require(“./defter.txt”);} else{ echo   “<center><br><b>Dosya açmada bir hata   oluştu!</b></center>”;}?>
Yukarıdaki iki dosyayı yazdıktan sonra belirtilen isimler ile kaydedin. Tabii bu dosyalar basitten hazırlanmış haldeler. Görünümü güzelleştirmek ve geliştirmek size kalmış.
Sanırım ilk HTML dosyasında ne yaptığımı anlatmaya gerek yok. Bir form ile kimden ve metin adlı iki tane değişkeni belirtilen PHP dosyasına post yöntemi ile yolluyorum. Belki PHP dosyasında biraz karışıklık yaşamışsınızdır. Burada yabancı olduğunuz sadece date() işlevi var. PHP’de tarih almak için kullanılan date() işlevi, istenen bilgi türü küçük harf olursa (benim dosyamdaki d ve m gibi ) bilgi rakamla, büyük harf olursa (benim dosyamdaki Y gibi) bilgi tam olarak yazılır (tabi ki İngilizce).
Ziyaretçiden gelen bilgiler defter.txt adlı bir dosyada tutuluyor (dosyaya herkes için yazma yetkisi verilmelidir!) ve benim PHP koşulumun sonunda bu dosya ekrana yazdırılıyor (require ile). $metin değişkenini bir tablo içinde yazmamın tek sebebi ziyaretçiye görünecek dosyanın daha hoş olması içindir. require() işlevi ile ekrana yazdrdığımız dosya bir txt dosyası olsa bile içindeki HTML kodları istemci tarafından yorumlanacaktır. Eğer sayfanızdan ayrı bir bağ verip önceden yazılanların görüntülenmesini istiyorsanız, o zaman bir metin değil de HTML dosyası kullanmanız gerekecektir.
Sayaç Örneği
Sayaç yapmanın birçok yolu vardır. Ben en basitinden bir uyguluma olarak, dosyalara değer yazıp bu değerler üzerinde işlem yapan bir sayaç uygulaması örneği verdim.



PHP- Kodu:

<?/* Bu dosya sayac.php adi ile kaydedilecek */***nbsp;$REMOTE_ADDR   degiskeni sunucu hafizasinda tutulan gecici degiskenlerdendir.$r_ip =   $REMOTE_ADDR;$ip_dosya_ac = fopen(“./ip.txt”, ”r”);$dosyadaki_ip =   fgets($ip_dosya_ac,1024);if ($r_ip != $dosyadaki_ip){   $sayac_dosyasi_ac  = fopen(“./sayac.txt”, ”r”);  $eski_deger =   fgets($sayac_dosyasi_ac,1024);  fclose($sayac_dosyasi_ac);    $sayac_dosyasi_yaz = fopen(“./sayac.txt”,”w”);  $yeni_deger =   ++$eski_deger;  fwrite($sayac_dosyasi_yaz, $yeni_deger);    fclose($sayac_dosyasi_yaz);  $ip_dosyasi_ac = fopen(“./ip.txt”,”w”);    fwrite($ip_dosyasi_ac, $r_ip);  fclose($ip_dosyasi_ac);  echo “Sitemiz   bugüne kadar <b>$yeni_deger</b> kere ziyaret edilmiştir.”;}   else {  $sayac_dosyasi_ac = fopen(“./sayac.txt”, ”r”);  $eski_deger =   fgets($sayac_dosyasi_ac,1024);  fclose($sayac_dosyasi_ac);  echo   “Sitemiz bugüne kadar <b>$eski_deger</b> kere ziyaret   edilmiştir.”;}?>
Yukarıdaki dosyayı oluşturduktan sonra aynı dizine sayac.txt ve ip.txt diye iki dosya oluşturun. Yalnız sayac.txt dosyasının içine başlangıç değeri olarak 0(sıfır) yazmalısınız.
Yukarıdaki PHP programı önce ip.txt dosyasını açıp içindeki IP numarası ile ziyaretçinin IP numarasını karşılaştırıyor. Eğer iki numara aynı değilse sayaç dosyası açılıyor ve dosyada eski ziyaretçi sayısı ($eski_deger) okunuyor. Daha sonra bu okunan eski değer bir arttırılıp yani bir değişkene ($yeni_değer) atanıyor. Daha sonra IP değerinin tutulduğu dosya açılıp ziyaretçinin IP numarası bu dosyaya yazılıyor. En son olarak da ziyaretçiye sitenin bugüne kadar kaç defa ziyaret edildiğini gösteren bir mesaj ekrana yazılıyor.

Alıntı: https://www.sosyalistforum.net/php-a...kullanmak.html