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:83344
Puan ver:

mysql_fetch_array ve print.

kalimbaMahmut BAYRIAvatar

Buradaki mysql_fetch_array yerine; eğer alan adları ile kullanacaksak mysql_fetch_assoc, eğer alan sıra numarası ile kullanacaksak mysql_fetch_row şeklinde kullanmak daha iyi olacaktır. Eğer sorgu yapılan alanlarda fazla bilgi var ise; mysql_fetch_array, hem alan sırasını hem de alan isimlerini tutacağı için bir miktar yavaş olabilir.

İkinci olarak da while döngüsü içerisinde echo veya print ile basmak yerine; basılacak olan verileri bir değişkene atayıp, döngü bitiminde basmak daha performanslıdır.

Örnek: 

<?php

$dongucikisi = "";

while($satir = mysql_fetch_array($bilgi)
{
   $dongucikisi .=  $satir["AD"];
}

echo $dongucikisi;

?>

 Not: Dersdeki en son php kodunda

while($satir = mysql_fetch_array($bilgi)

satırı sonunda bir parantez açık kalmış.

while($satir = mysql_fetch_array($bilgi))

şeklinde kullanmalısınız.

2010-01-11 19:22:27 Edit:2010-01-11 19:25:51

hehe

Teşekküler Mahmut. önemli noktalara değinmişsin.

smiley

Ek: Yazılacak içerik çok fazla olursa döngüde yazdırmak daha iyi olur diye düşünüyorum. yoksa değişkende biriken bilgiden dolayı hafıza şişmesinden başka bir sorun ortaya çıkar.

Her programcı birgün Php yi tadacaktır
2010-01-26 21:55:27 Edit:2010-01-27 16:57:07

.( help

deepnotedeep kavas

Hocam buraya kadar ıyı anlamısdım sız burada yukarıda vermıs oldugunuz kodları bız bı ıslem ypacakmıyız $bilgi = mysql_query("SELECT * FROM kitap ");  gıbı bunları bısı yapıcakmıyım ? ben bu form dan sonra pek bısı anlamadım kaydet php olusdurum . ondansonra zaten buraya yonlendırdınız burdakı kodları ne yapıcam kaydet.php yemı yazıcam ?

2010-01-29 22:30:28

ziyaretçi mesaj formu

Şu derste basit bir ziyaretçi mesaj formu yapımı anlattım. veritabanı hakkında gerekli bilgiler de orda var:

https://phpkodlari.com/php-dersleri/php-ziyaretci-defteri-yapimi-video-ders

Her programcı birgün Php yi tadacaktır
2010-02-13 18:20:27

deepnotedeep kavas

tmm hocam ziyaretci videonuzu ızledım anladım :)

2010-01-29 23:40:52

rgnglDamla BEKTAŞ

smileybu defa tam olarak herşeyi anlamadım.

2010-03-27 16:54:02

soru

aydinrahmiaydın yıldırım

peki şunu nasıl yapabiliriz.

verili örnekteki

adı ayşe olan satırdaki soyadını yazdır.

2010-04-11 18:48:20

Haber devamı

arjinMehmet Ali

Merhaba üstadım, sitenizden çok şey öğreniyorum allah razı olsun...

Merak ettiğim acaba haber sitelerinde yer alan devamını oku bölümünü anlatmanız?

haberler.php?id=12 vs.. gibi haber özetleri anasayfada yer alır haber devamına tıklanınca tam metin görüntülenir..

Gerçekçi ol imkansızı iste...
2010-06-21 02:15:25

ACİLLL

mervemerve nahırcı

merhaba sitenizi çok beğendim çok şey öğrendim burdan ellerinize sağlık...

ben web tasarımı dalı stajeriyim çalıştığım şirketin web sayfasındaki form sayfası çalışmıyor bende sizi sitenizdeki php ziyaretçi defteri yapımı videosunu izleyerek bi veri tabanı yapmayı başardım fakat php sayfam hata veriyor yardımcı olursanız çok sevinirim...

//irtibat.php

 <?php

$adi=$_POST['adi'];
$soyadi=$_POST['soyadi'];
$adres=$_POST['adres'];
$sehir=$_POST['sehir'];
$mail=$_POST['mail'];
$telefon=$_POST['telefon'];
$mesaj=$_POST['mesaj'];


mysql_connect('localhost','root','mysql');
mysql_select_db('ozencveritabani');
mysql_query("SET NAMES 'latin5'")


if (mysql_query("INSERT INTO `ziyaretci` (`numara`, `adi`, `soyadi`, `adres`, `sehir`, `email`,`telefon`, `mesajiniz`) VALUES (NULL, '$adi', '$soyadi', '$adres', '$sehir', '$mail','$telefon','$mesaj');"))

{
echo "kayt baarl";
}else{
echo "hata oluştu";
}
?>

//hata

Parse error: parse error in C:\easy php\EasyPHP 3.0\www\irtibat.php on line 17

//17.satırda ki kod

if (mysql_query("INSERT INTO `ziyaretci` (`numara`, `adi`, `soyadi`, `adres`, `sehir`, `email`,`telefon`, `mesajiniz`)
VALUES (NULL, '$adi', '$soyadi', '$adres', '$sehir', '$mail','$telefon','$mesaj');"))

staja başladığımdan beri bu hatayı çözemedim ve stajım bitmek üzere:)) lütfen yardımcı olun....
veri tabanı sql dosyamıda mail atabilirim..

 cevap beklicem

2010-06-21 14:49:04

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