Mysql Ders 2 - Veritabanından bilgi almak.

Şu iki soruya cevap veremiyorsanız lütfen önce birinci dersi okuyun: Veritabanı nedir ?

MYSQL ile BİLGİ OKUMAK

Bir önceki derste veritabanının ne olduğunu öğrendik. Bilgi silme komutunu kullandık. şimdi veritabanından basit bir bilgi alalım. ve onu kullanıcıya gösterelim.

Önce yapacağımız işin mantığına bakalım.

mysqlders2

1- Veritabanına Bağlan: Veritabanına neden bağlanıyoruz. çünkü veritabanı ayrı bir programdır. ayrı bir bilgisayarda hatta başka bir ülkede bile olabilir.Başta bu size garip gelebilir ama veritabanı ile Php nin aynı bilgisayarda olması şart değildir. Bu sebeple aynı bilgisayarda olsun veya olmasın hiç farketmez. bağlanma komutu kullanmamız gerekir.

Bağlanmak için mysql_connect isimli komut kullanılır. Connect kelimesi size çok yabancı geliyorsa şunu dinleyin. Nokia Connecting people: nokia insanları birbirine bağlar, iletişim kurar (biraz raklama girdik ama aklıma daha basit örnek gelmedi. buradaki bağlamak iletişim anlamında kullanılıyor. o reklamdaki sloganı hatırladıysanız bunu birdaha unutmazsınız) Bilgi almadan önce Mysql ile Php yi birbirine iletişim kurdurmamız gerekiyor.

Kütüphane örneğini düşünün, bir şekilde iletişim kurup sesimizi iletmemiz gerekiyor.

komut kullanımı:

mysql_connect("adres","isim","şifre");

buradaki adres kelimesi artık sizin için birşey ifade ediyordur. Eğer veritabanıaynı bilgisayarda ise adres olarak "localhost" yazacağız. veritabanı uzak bir bilgisayarda ise onun adresini yazacağız.

Peki şunu soruyor musunz: isim ve şifre ne işe yarıyor. neden şifre gereksin ki ? 

Bende size şunu sorayım: Şifre olmazsa herkes bizim kütüphanemize ulaşıp bilgi silebilir mi ?

Cevap : Evet, Eğer veritabanı şifreli olmasaydı herkes girip bilgilerimizi silebilirdi.

2- Veritabanı seçim işlemi: ikinci aşama olarak kullanacağımız kütüphanedeki rafları seçmemiz gerekiyor. Bu rafları istediğimiz kadar çoğaltabiliyoruz. yani kütüphanemizde sadece bir raf yok. bu durumda kütüphaneciye hangi raftan bilgi istediğimizi söylememiz gerekiyor.

komut kullanımı:

mysql_select_db("raf adı")

3- Bilgi isteyelim: bu aşamaya kadar bir yanlışlık yapmadıysak veritabanından bilgi isteyebiliriz.  tek yapmamız gereken. Query dilinde doğru cümleyi kurmak.


$bilgi = mysql_query("SELECT * FROM kitap ");   

Burada bilgi istemek için kullandığımız komut aslında mysql_query( ) kısmı. kütüphaneciye söyleyeceğimiz cümleyi ise bu iki parantez arasına yazıyoruz.

Query:     "SELECT * FROM kitap"

Türkçesi: "Kitaptaki herşeyi ver"


Bu durumda kitapta birşeyler yazıyorsa görevli eleman hepsini fotokopi çekip elimize verecektir. Aldığımız $bilgi aşağıdaki gibi olacaktır.

mysqlderskayit

Tam bu nokta olayın kilit noktasıdır. dikkat edin. Kütüphaneci bize tek tek isimleri falan vermiyor.  Elimize uzun bir listeyi toplu halde veriyor.Bu aşamada Listeyi dilerseniz tek tek okursunuz dilerseniz başka biryere kaydedersiniz. Şimdi listedekileri tek tek okuyalım.

Listeyi okumak için gerçek hayatta ne yapıyorsak aslında Php ile aynısını yapacağız. En üstten başlarız ve her satıra tek tek bakarız.

4- Gelen bilgiyi parçala : Gelen bilgi büyük bir tablo halinde olduğu için hepsini bir anda okuyamayız. Bilgiyi ancak satır satır okuyabiliriz. bu işlemi yapmak için de mecburen döngü kullanmamız gerekir. çünkü başka şekilde php ile her satıra sıra ile bak dememiz mümkün değil.

komut kullanımı:

mysql_fetch_array( ): Anlamı; Bu komutta parantez içindeki bilginin bir satırını al demektir. bu komutla birlikte While döngüsü kullanıldığında her satıra tek tek bakmış oluruz.

while($satir=mysql_fetch_array($bilgi))
{

     // okuma burda yapılacak

}

Döngü çalıştığında her satıra tek tek bakacak ve tablodaki tüm satırları dolaşacaktır.

okumak için print komutu kullanacağız.

while($satir=mysql_fetch_array($bilgi))
{
    print $satir["AD"];

}

Yukarıdaki komut çalıştığında sadece listedeki isimleri yazar. Eğer yanına kişinin soyadını da yazmak istiyorsanız ne yapacağınızı siz düşünün. onu bulursanız dersin özünü anladınız demektir. Geriye kalan komutları şimdilik ezberlemek zorunda değilsiniz. Acemilikte kopyalayıp kullanabilirsiniz. bir süre sonra bu komutları zaten adınız gibi biliyor olacaksınız.

Hepsinin bir ara toplu görüntüsü:

mysql_connect("adres","kullanıcı adı","sifre");

mysql_select_db("raf ismi");

$bilgi = mysql_query("SELECT * FROM kitap "); 
 
while($satir = mysql_fetch_array($bilgi)
{
    print $satir["AD"];
}


Not: Bu komutları php ile çalıştırıp denemeyin. çünkü sizin bilgisayarınızda raf ismi diye bir kayıt henüz yok. veya şifre diye bir bilgiyi henüz girmedik. burada işin özünü anlamaya çalışın. bir sonraki dersimizde bunun canlı uygulamasını yapacağız.

drekon2010-01-04 20:10:47

DMCA.com
Bookmark and Share
Hit:83346
Puan ver:

:)).

arjinMehmet Ali

Kaynak dosyaları bana gönderebilir misin? Yoksa bu böyle uzar :)

Gerçekçi ol imkansızı iste...
2010-07-02 19:14:56

acill:))))))

mervemerve nahırcı

haklısın tmm mail atayım ne adresin......???

2010-07-05 09:43:48

arjinMehmet Ali

:))  Profilmnde görün müyor muydu? Neyse mail aşağıda sorunlarıda tam olarak belirtirseniz daha kolay yardım edebilirim... Genel olarak ne yapacaınıda olablr :)))))

ceyhanpc[at]hotmail.com

Gerçekçi ol imkansızı iste...
2010-07-05 20:25:20

:D

mervemerve nahırcı

yok görünmüyo  yada ben göremiyorum neyse mail atıcam tüm sayfalarımı ve sql dosyamıda göndereyim ....... 

2010-07-06 09:39:16

while ve mysql

kadir_81Kadir Malakcıoğlu

ya benm bi sorum var ben site yapıyorum.. Sitemde şöyle bir durum oluşuyor...Kullanıcılar adında veri tabanım var burda ben istediğim kadar kullanıcı ekleyebiliyorum.Bu tablonun içeriğinde ise kullanıcı adı şifresi gibi genel bilgileri var..iş bundan sonra başlıyo ..kullanıcı girişi sayfamda ben bu veri tabanından gelen kullanıcı bilgilerini while dongusu ile donfurup çekiyorum.Fakat diyelim kullanıcı şifrelerinidogru girdi Ekrana dogru girince onaylandı mesajı verdırıyorum veeee sonuç veri tabanında nekadar kullanıcı varsa o sayıda onaylandı yazıyo yani 2 tane kullanıcı varsa  2 taneyazıyo while dongusunu parantezini kısıtlıyum bu saferde sadece en son kullanıcıyıo baz alıyo yardım edin lütfen ya çözemiyorum acaba başka yol mu uygulamam lazım bilen varsa paylaşşın lutfen ayrıca mailimede yanıtı bekliyorum zor bsy degl kopyala yapıştr yapmak... Saygılar herkeze. . .

2011-03-26 11:33:27

hayatdegerhayat bulut

merhaba ben  hastane ile ilgili bir ödev yapıyorum.

<!--giris.php-->

<html>

<body>

<?php

mysql_connect("localhost","kubra","1234");

mysql_select_db("hastane");

$bilgi=mysql_query(SELECT * FROM `hastalar`);

while($satir=mysql_fetch_array($bilgi))

{

    print $satir["AD"];

}

</body>

</html> 

bu kodları yazdım.fakat sql komutlarının dışarı aktar dediğimde bunlar var ve hata verdi.

-- phpMyAdmin SQL Dump

-- version 2.9.2

-- http://www.phpmyadmin.net

-- 

-- Anamakine: localhost

-- Üretim Zamanı: 28 Temmuz 2011 saat 02:46:14

-- Sunucu sürümü: 5.0.27

-- PHP Sürümü: 5.2.1

-- 

-- Veritabanı: `hastane`

-- 

-- --------------------------------------------------------

-- 

-- Tablo yapısı: `hastalar`

-- 

CREATE TABLE `hastalar` (

  `hastaID` int(20) NOT NULL auto_increment,

  `kullaniciAdi` varchar(50) NOT NULL,

  `sifre` varchar(50) NOT NULL,

  `HastaAdi` varchar(50) NOT NULL,

  `hastaSoyad` varchar(50) NOT NULL,

  `tetkitler` varchar(50) NOT NULL,

  PRIMARY KEY  (`hastaID`),

  UNIQUE KEY `kullaniciAdi` (`kullaniciAdi`),

  UNIQUE KEY `sifre` (`sifre`),

  UNIQUE KEY `sifre_4` (`sifre`),

  UNIQUE KEY `kullaniciAdi_2` (`kullaniciAdi`),

  KEY `hastaID` (`hastaID`),

  KEY `hastaID_2` (`hastaID`),

  KEY `sifre_2` (`sifre`),

  KEY `sifre_3` (`sifre`),

  KEY `hastaID_3` (`hastaID`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- 

-- Tablo döküm verisi `hastalar`

-- 

-- --------------------------------------------------------

-- 

-- Tablo yapısı: `uyeler`

-- 

CREATE TABLE `uyeler` (

  `uyeno` int(11) NOT NULL auto_increment,

  `uyeadi` varchar(225) NOT NULL default '',

  `uyesifre` varchar(225) NOT NULL default '',

  `email` varchar(225) NOT NULL default '',

  `tarih` varchar(225) NOT NULL default '',

  `msifre` varchar(225) NOT NULL default '',

  `ban` int(11) NOT NULL default '0',

  PRIMARY KEY  (`uyeno`)

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- 

-- Tablo döküm verisi `uyeler`

-- 

INSERT INTO `uyeler` VALUES (1, 'ejder123', '123', '[email protected]', '19/03/08', '8bf4bb0e2efad01abe522bf314504a49', 1);

hata :7.satır diyor.
2011-07-28 01:48:36

resim galerisi sorunu

Merhaba arkadaşlar, phpde bir resim galerisi oluşturdum, veri tabanında ise iki tablo var birinci tablo resim galeri, ikicisi ise resim kategori diye. benim sorum şu, öncelikle iki kategori oluşturdum, bu iki kategorilere iki farklı resim yükledim, anasayfada son yüklenen resimlerin gösterilmesini isityorum gösteriyor, lakin kategori adını dedil kategori numarasını gösteriyor bende eşitse değerini kullandım kod aynen şu: ?php if($row_resimler['res_kat']==$row_kategori['kat_id']) echo $row_kategori['kat_adi'] kategorinin adını gösteriyor lakin sadece ilk kategori adını gösteriyor diğerlerini boş bırakıyor. gözükmeyen diğer kategori adlarını nasıl göstere bilirim. yardımlarınız için şimdiden tşk ederim

2013-04-23 20:34:45

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro