Bilinmesi gereken php kodları

Yazılım nankör bir meslektir vesselam.. Bu söz ile neden başladım söyleyeyim, bazen en iyi olduğumuz dilde uzun süre kullanmadığımız özgün kod parçasını unutabiliyoruz. Bu yüzden php ile proje geliştiren arkadaşlar için not babında bilinmesi gereken php kodları…

Alttaki metinsel fonksiyonlar ile gösterilecek metnin; kaç karakter sayısını, seçili kelimeyi değiştirme, gösterilecek yazının uzunluğu gibi fonksiyonlar bulunmakta.

1
2
3
4
5
6
7
8
<?php
$metin="kullanılan, gösterilen yazı";
echo strlen($metin)."<br/>";  //gösterilecek metnin kaç karakterli olduğunu gösterir

echo str_replace("yazı","cümle",$metin)."<br/>" ; //gösterilecek metindeki yazı geçen kelimeyi değiştirerek yerine cümle kelimesini yazdırmakta

echo substr($metin,0,10)."<br/>"  //gösterilecek yazının 0 dan 10. karaktere kadar olanını göstermekte
?>

Php switch case yapısı

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$sayi=2;

switch($sayi)
{
     case 0:
     echo "sayi değeri 0";
     break;
     case 1:
     echo "sayi değeri 1";
     break;
     case 2:
     echo "sayi değeri 2";
     break;
     default;
     echo "dışında bir değer";
}
 ?>

Php while döngüsü, döngüde 1 den 10 da dahil sayıyı ekrana yazdırmakta.

1
2
3
4
5
6
7
8
<?php
$sayac=1;
while($sayac <=10)
{
    echo $sayac." ";
    $sayac++;
}
?>

Programlamada en çok kullanılan diğer yapılardan bir tanesi projede tekrar ede kod blogunu bir kere yazıp istediğimiz yerde çalıştırılması. C# da bu işlemi metod lar ile yapabiliyoruz. Php de ise fonksiyonlarla yapılmakta.

Alttaki kodda coder isimli fonksiyonumuzu birden fazla yerde kullanmak için oluşturmuş olduk.

1
2
3
4
5
6
7
8
9
<?php
function coder()
{
    echo "Coder.digitaldunyam.net - Kod Blogu..."; 
}

coder();

?>

Fonksiyona parametre yani kullanıcıdan alınan bir değeri gönderip göstermek istiyorsak;

1
2
3
4
5
6
7
8
9
<?php
function parametreli($parametre)
{
    echo "Merhaba {$parametre} Coder.digitaldunyam.net - Kod Bloguna hoşgeldin...";   
}

parametreli("Murat");

?>

Bir sayfayı herhangi bir sayfaya yönlendirmek için

1
2
3
4
<?php

header ("Location: http://coder.digitaldunyam.net" );
?>

Sql connection listview örneği


Ado.net yardımı ile c#’dan sql bağlanıp forma eklediğimiz listview veri bağlantı kurmak istersek;

Bundan önce yapılan bağlantımız Connected, yani her zaman bağlı kalan mimari ile bağlanacağımız için bu bağlantı şekli hakkında biraz açıklama yapalım; Connected ile veritabanımıza her zaman bağlı oluruz, böylece hangi verilerin değişiklik yapıldığını anlık öğrenebiliriz. Bu mimari ile veri çekebilmek için SqlCommand kullanılır ve SqlDataReader ile okunur.

Connected mimarisi ile yapılan bu örnekte, öncelikle resimdeki gibi forma bir buton ve birde listview(kolonları ve gridview ayarlamalarını yapıp) ekleyelim. Form ekranını hazırladıktan sonra butona çift tıklayıp kodlamaya geçebiliriz;(Database’imiz her zamanki gibi Northwind, bağlatıyı şu şekilde yapıyoruz; server=.; database=northwind; trusted_connection=true; )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SqlConnection sql = new SqlConnection("server=.; database=northwind; trusted_connection=true;"); // tekrar tekrar kullanmak için bağlatıyı global tanımladık
SqlCommand cmd; // bağlı işlemler  ve tekrar tekrar kullanmak için global tanımladık

private void btnbaglan_Click(object sender, EventArgs e)
{
cmd = new SqlCommand("select * from products", sql);
sql.Open();
SqlDataReader rdr = cmd.ExecuteReader(); // sql sorgusunu çalıştırmak için yapılan işlem, datareader bilgileri aktarmak için kullanırız, dataset'den daha hızlıdır
while (rdr.Read()) // while ile şarrtı sağlayana kadar döngü kurduk yani Products(ürünler) tablosunda ne kadar ürün varsa getirmesini istedik
{
ListViewItem li = new ListViewItem(); //listview tablosuna  ilgili kolonlardaki bilgileri ekliyoruz
li.Text = rdr["ProductID"].ToString();
li.SubItems.Add(rdr["ProductName"].ToString());
li.SubItems.Add(rdr["unitprice"].ToString());
li.SubItems.Add(rdr["UnitsInStock"].ToString());

listView1.Items.Add(li);
}

sql.Close();

}
  1. Tekrar tekrar kullanmak için sqlconnection bağlantısını global tanımladık
  2. SqlCommand cmd; bağlı işlemleri yapabilmek için tanımlanan bu komutu ve tekrar tekrar kullanmak için global tanımladık
  3. SqlDataReader rdr = cmd.ExecuteReader(); sql sorgusunu çalıştırmak için yapılan işlem, datareader bilgileri aktarmak için kullanırız, dataset’den daha hızlıdır
  4. while (rdr.Read()) while ile şartı sağlayana kadar döngü kurduk yani Products(ürünler) tablosunda ne kadar ürün varsa getirmesini istedik
  5. listview tablosuna  ilgili kolonlardaki bilgileri ekliyoruz
  6. Son olarak sql.Close(); ile açmış olduğumuz connection ı kapatıyoruz.

Kaynak : Cemal Can AKGÜL (Bilge Adam Yazılım Eğitmeni)

Aöf vize final not hesaplayıcı

Anadolu Üniversitesi Açık Öğretim Fakülte öğrencisini daha çok ilgilendiren bir program ile merhaba. Hali hazırda Aöf Vize-Final not hesaplama programını buradan indirebilirsiniz.

Aöf vize-final not sistemi; 100 üzerinden alınan puanın, vizenin %30’u ile finalin %70′ nin toplamı 50 puanı geçmek koşulu ile dersden geçilebilmekte. Bundan dolayı uygulamamız vize notu olarak girilen değeri %30’unu alarak finalden alman gereken minimum not ve doğru cevaplanması gereken soru miktarını vermekte.

Kullanıcı tarafını atlattıktan sonra yazılımcı tarafından devam edelim. Bu mini not hesaplama uygulamasını C sharp ile yapabilmek için bir adet textbox, 3 adet buton, tasarımı biraz görselleştirmek için ise 2-3 adet timer. Form tasarımını resimdeki veya uygulamayı indirerek benzerini yaptıktan sonra kod kısmına geçebiliriz;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
  private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Start();
            dogru.Enabled = false;
            puan.Enabled = false;

        }
       
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                double vize;
                vize = Convert.ToDouble(textBox1.Text);
                double sonuc;
                double soru;
                if (vize <= 100)
                {
                   
                    sonuc = Math.Floor((50 - vize * 0.3) / 0.7);  // sonucu yuvarlamak için math.floor ve math celling fonksiyonunu kullandık
                    soru = Math.Ceiling(sonuc / 3.3);
                    label2.Text = sonuc.ToString();

                    label3.Text = soru.ToString();

                    dogru.Enabled = true;
                    puan.Enabled = true;
                }
                else
                {

                    MessageBox.Show("Hata!!! Lütfen Geçerli Bir Not Giriniz...");
                    textBox1.Clear();

                   
                    label2.Text = "--";
                    label3.Text = "--";
                    dogru.Enabled = false;
                    puan.Enabled = false;
                }
            }

            catch
            {
                MessageBox.Show("Hata!!!     \n\nLütfen Notunuzu Rakamsal Değer ile Girin\n\nÖrnek: " 65 " gibi... ");
                textBox1.Clear();
            }

           
        }

        private void button2_Click(object sender, EventArgs e)
        {

            timer2.Enabled = true;

            textBox1.Clear();
            label2.Text = "--";
            label3.Text = "--";
            dogru.Enabled = false;
            puan.Enabled = false;
        }

             

        private void button3_Click(object sender, EventArgs e)
        {
            Application.Exit();  //programdan çık
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            Opacity += 0.10;
            this.Opacity = Opacity;
            if (Opacity > 1.0)
            {

                timer1.Enabled = false;

            }
        }
       
           
        private void timer2_Tick(object sender, EventArgs e)
        {
            if (timer2.Interval<101)
            {
                timer2.Interval+=20;


                int c = 0;
                Random r = new Random();
                Point l = this.Location;

                while (c < 50)
                {
                    int sag = r.Next(1, 5);
                    int sol = r.Next(1, 5);

                    this.Location = new Point(l.X + sag, l.Y + sol);

                    c++;
                }
                this.Location = l;
            }

   
                    else
                    {
                        timer2.Enabled = false;  // timer2 durdu
                        timer2.Interval = 10;
                    }




        }

Burada Math.Floor ve fonksiyonları ile alınan notu daha doğru yazdırabilmek için çıkan sonucu yuvarladık. Uygulama sonuç olarak button1_Click içerisinde yapılan kodlamalardan ibaret. Diğerleri opsiyonel olarak yapılmış görsel özellikleri.(formun yavaş yavaş açılması, form titremesi, temizleme vs.)

Sayının basamak sayısını öğrenme

C# While döngüsü örneği ile merhaba. Kullanıcı tarafından girilen bir sayının kaç basamaklı olduğunu bulmak için while döngüsünü kullanarak yapabiliriz.

Forma bir textbox ve bir buton ekleyip, buton click’ine;

1
2
3
4
5
6
7
8
9
10
11
int sayi = Convert.ToInt32(textBox1.Text); // textbox taki değeri sayıya atadık
            int basamak=0;

            while (sayi > 0)
            {
                basamak++;
                sayi /= 10; //sayının değeri 10'a bölünüp kendisine eşitlenir. Sonuç 0 oluncaya kadar ne kadar bölürseni o kadar basam sayısı çıkar
            }


            MessageBox.Show("girilen sayı " + basamak.ToString() + " basamaklıdır");

While döngüsünün amacı koşul sağlanana kadar döngü çalıştırmasıdır. Buradaki olay döngünün kaç kere çalıştırıldığı dır. Uygulamamızda girilen değer 0 olana kadar döngü çalışıp, döngü sayısını messagebox yardımı kullanıcıya gösterdk.

Console while ile kullanıcı girişi

Csharp Console Application’da while döngüsünü kullanarak, kullanıcı adı ve şifresi ile giriş yapılan basit bir uygulama örneğiyle merhaba. Bazen form ekranına ihtiyaç duymayız, direk kodlara dalış yapıp kod üzerinde uygulamayı çalıştırabiliriz. Örneğimize geçecek olursak, kullanıcı adı admin şifresi 1234 olan basit giriş ekranı;

static void Main blogu içine;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
static void Main(string[] args)
        {
            string kuladi = "admin";
            string sifre = "1234";

            Console.WriteLine("kullanıcı adı gir");
            kuladi = Console.ReadLine();

            while (kuladi != "admin")
            {

                //kullanıcı adı hatalı ise bunları yazdır
                Console.WriteLine("Hatalı!!! geçerli kullanıcı adı gir");
                kuladi = Console.ReadLine();
            }

            Console.WriteLine("kullanıcı şifresini gir");
            sifre = Console.ReadLine();

            while (sifre != "1234")
            {
                //kullanıcı şifresi hatalı ise bunları yazdır
                Console.WriteLine("Hatalı!!! geçerli kullanıcı şifresi gir");
                sifre = Console.ReadLine();
            }

           

        }