PHP ve Kayıt Listeleme

Php ile vei tabanındaki kayıtları listelemek için aşağıdaki komutları kullanabiliriz.

$sql="select * from iller"; #SQL Cümlesini yazıyoruz
# Aşağıda yer alan 3 satır php&mysql türkçe karakter sorununu çözüyor.
mysql_query("SET NAMES 'utf8' ");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET COLLATION_CONNECTION='utf8	_general_ci'");
$sonuc=mysql_query($sql);#sql verilerini sonuc değişkenine atıyoruz.
if(!$sonuc) echo "Sql verileri alınamıyor";
echo "<p>";
# Sonuç değişkeni içerisinde yer alan toplam kayıt sayısı num_rows ile alınıyor(Satır sayısı)
$kayitsayisi=mysql_num_rows($sonuc);
 
<?php
for ($i=0; $i < $kayitsayisi;$i++)#kayıt sayısı kadar döngümüzü başlatıyoruz.
{
$row=mysql_fetch_row($sonuc);#satırı seçiyoruz, döngü içinde olduğundan komut bir sonraki döngüde diğer satıra geçecektir.
echo $row[1]."<br>"; 
}
?>

Php ve Döngüler (While – For – Foreach)

Döngüler daha çok Mysql veri tabanından verileri alırken işimize yaramaktadır. Alınacak veriye bağlı olarak veya kod yazma stilinize bağlı olarak hangi döngüyü kullanacağınız tamamen size kalmış.

For döngüsü kullanımı(3 değişken alır. Başlangıç , bitiş ve artış değeri) :

<?php
$kayitsayisi=9; // veri tabanından bu kadar kayıt geldiğini varsayıyoruz.
for($i=0;$i<$kayitsayisi;$i++) {
echo $i."<br>"; //br tagi bir alt satıra geçmemiz için yazıldı.
}               // $i yerine dizideki herhangi bir alan da yazılabilirdi.
?>

While döngüsü kullanımı (yukarıda yer alan kodlar ile aynı işi yapmaktadır.);

<?php
$kayitsayisi=9; // veri tabanından bu kadar kayıt geldiğini varsayıyoruz.
$sayac=0;
while ($sayac<$kayitsayisi) {
echo $sayac."<br>";
$sayac++;
}
?>

Foreach Kullanımı (foreach diziler için kullanılmaktadır. Mysql veri tabanından dizi olarak çekilen veriler ile ilgili okuma işlemlerini bu komut yardımı ile yapabiliriz) ;

<?php
$dizi = array('eleman1','eleman2','eleman3','eleman4','eleman5','eleman6');
 
foreach ($dizi as $x) { // dizinin her elamanı için döngü devam eder.
echo $x."<br>";
 
}
?>

PHP kayıt sayısı bulma

php

Veri tabanı bağlantıları yapıldıktan sonra;

$sonuc=mysql_query($sql); //sqlden çektiğimiz verileri sonuc değişkenine atıyoruz.
if(!$sonuc) echo "Sql verileri alınamıyor"; //verileri alamaz isek hata versin.
echo "<p>";
// Sonuç değişkeni içerisinde yer alan toplam kayıt sayısı num_rows ile alınıyor(Satır sayısı)
$kayitsayisi=mysql_num_rows($sonuc); // satır sayısı kayıt sayısı değişkeni içerisine atılıyor.
echo "Toplam Kayıt Sayısı = "; echo 	$kayitsayisi; // ekrana kayıt sayısı yazdırılıyor.

PHP ile veri tabanı bağlantısı

php

PHP ile veri tabanı bağlantısı komutları basit olarak aşağıdaki şekilde kullanılabilir;

$db_adi     = "deneme";  	#Veritabanımızın Adı - bazi durumlarda hosting tarafindan verilir.
$db_sunucu  = "localhost";      #Sunucu Adı
$db_kulladi = "root";           #Sunucu Kullanıcı Adı - bazi durumlarda hosting tarafindan verilir.
$db_sifre   = "";               #Sunucu Kullanıcı Şifre
$veriyolu   = mysql_connect($db_sunucu,$db_kulladi,$db_sifre); #
if (! $veriyolu) die ("MySql Bağlantısı Yapılamadı");
$veritabani=mysql_select_db($db_adi,$veriyolu) or die ("Veri Tabanı Bağlantısı Sağlanamadı");
if ($veritabani) echo "Veri Tabanı Bağlantısı başarılı";

genel olarak Mysql ile verileri kayit ederken Türkçe karakter problemi yasanmaktadir. Bunu aşmak için mysql query olusturmadan hemen önce yazılacak 3 satırlık kodumuz bu sorunun önüne geçmektedir.

mysql_query("SET NAMES 'utf8' ");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
// mysql_query komutları buraya gelecek.

Dosya ve Dizin İşlemleri

php

Dosya olusturmak icin TOUCH komutu kullanilmaktadir. Isterseniz sadece dosya adi ile isterseniz kök dizin belirterek de dosya olusturabilirsiniz. (Klasörlerde okuma ve yazma izniniz oldugu varsayiliyor.)

touch("deneme.txt");
touch("c:\deneme.txt");

Dosyanın oluşturulup oluşturulmadığı da bir IF döngüsü ile kontrol edilebilir.

if(file_exists("deneme.txt")) { echo"dosya bulundu"; }
else { echo "dosya bulunamadı"; }

Continue reading

Veri tabanındaki bilgileri açılır kutuya yerleştirme

1
2
3
4
5
6
7
8
9
10
İller <select name="il">
<?php
for ($i=0; $i < $kayitsayisi;$i++)
{
$row=mysql_fetch_row($sonuc);
echo "<option value=\"$row[1]\">$row[1]</option>\n"; 
}
?>
</select>
}

3. satır ile kayıt sayısı kadar döngümüzü başlatıyoruz.
5. satır ile satırı seçiyoruz, döngü içinde olduğundan komut bir sonraki döngüde diğer satıra geçecektir.
6. satır ile döngünün işlem yaptığı satırda yer alan 2. değeri alıp hem selectbox dolduruluyor hem de selectbox Value değişkenine bu değer aktarılıyor.

tabi kodlardan önce veri tabanı bağlantısının yapılmış olduğunu ve $kayitsayisi=mysql_num_rows($sonuc); ile de kayıt sayısının bulunmuş olduğunu varsayıyoruz.

nl2br fonksiyonunu

Php sayfamda Textarea bölümüne girilen bilgilerde alt satıra ENTER ile geçip bir kaç liste oluşturdum. Bunu mysql e kayıt ettim. Yalnız bu bilgileri görüntülemek istediğimde ENTER koyduğum yerler hiç algılanmamış, yazdığım tüm yazılar yan yana gözüküyordu. Çözüm PHP Manual ile birlikte geldi. Kullanımı ise çok basit :

nl2br($text)

$text : değişkenimiz.

session_start() Hatası ve Çözümü

Yaklaşık 2 saat bilgisayar başında “Warning: session_start() [function.session-stWarning: session_start() [function.session-start]: Cannot send session cookie – headers already sent byart]: Cannot send session cookie – headers already sent by” hatasına çözüm aradım. Bir çok yol denedim. Forum sitelerinde gezindim durdum ve sonunda çözümü buldum çok şükür.

Bazı bilgilerde session_start() komutunu boşluksuz bir şekilde sayfanın en üstünde vermemiz gerektiğini söylüyor. Denediğim sayfalarda sonuç alamadım. Çözüm notepad++ dan geldi.

  • Öncelikle hata veren sayfa Notepad++ ile açılır.
  • Düzenle menüsünden Convert to UTF-8 without BOM seçilir.
  • Dosya kaydedilir.

Sorun çözüldü :)