Professional Documents
Culture Documents
PHP Programlama 3 Bolum
PHP Programlama 3 Bolum
3. Bölüm
Tolga GÜYER
©2009-2010
İçindekiler
3.1 Neden Veritabanı Kullanırız?
3.2 MySQL Veritabanı Hakkında
3.3 MySQL Veritabanının Yönetimi
3.4 PHP & MySQL
3.5 Öğrendiklerimizi Uygulayalım: İkinci
El Otomobil Satışı
3.6 Öğrendiklerimizi Uygulayalım:
Öğrenci Bilgileri Girişi
PHP Programlama - 3. Bölüm 2
Tolga GÜYER
Neden Veritabanı Kullanırız?
Çünkü verilerimizi düzenli ve kalıcı olarak
saklamanın başka yolu yoktur.
if (sqlConnect())
{
echo "Bağlantı kuruldu ve veritabanı
seçildi.";
}
else
{
echo "Sorun var!";
}
?>
mysql_connect(MyServer,MyUser,MyPassword);
$snc2 = mysql_select_db(MyDatabase);
mysql_query("SET NAMES 'latin5'");
$sncDeger = $snc1 and $snc2;
return $sncDeger;
}
?>
şeklinde sıralanabilir.
<tr>
<td bgcolor="#FFFFCC">Vize :</td>
<td bgcolor="#33FFFF"><input size="3" type="text"
name="vize"></td></tr>
<tr>
<td bgcolor="#FFFFCC">Final :</td>
<td bgcolor="#33FFFF"><input size="3" type="text"
name="final"></td></tr>
<tr>
<td colspan="2" bgcolor="#FFCC99"><input
name="dugme" type="submit" value="Hesapla &
Kaydet"></td></tr>
</table>
</form>
<?php
function sqlConnect() {
$snc1 = mysql_connect("localhost","root" , "");
$snc2 = mysql_select_db("ogrenci2");
$sncDeger = $snc1 and $snc2;
return $sncDeger;}
function gecmeNotuHesapla($v, $f){
return (2*$v+3*$f)/5;}
function harfNotuHesapla($Not){
if ($Not<=39) {$harf = "FF"; $basari=0;}
elseif ($Not<=49){$harf = "DC"; $basari=0;}
elseif ($Not<=59){$harf = "CC"; $basari=1;}
elseif ($Not<=69){$harf = "CB"; $basari=1;}
elseif ($Not<=79){$harf = "BB"; $basari=1;}
elseif ($Not<=89){$harf = "BA"; $basari=1;}
elseif ($Not<=100){$harf = "AA"; $basari=1;}
return $harf;}
PHP Programlama - 3. Bölüm 54
Tolga GÜYER
PHP & MySQL
Devamı
function basariDurumu($Not){
if ($Not<=49) {$basari=0;}
else {$basari=1;}
return $basari;}
if(isset($_POST["dugme"])){
if (sqlConnect()){
echo "<p>Bağlantı başarılı...";
$numara = $_POST['numara'];
$ad = $_POST['ad'];
$soyad = $_POST['soyad'];
$vize = (int)$_POST['vize'];
$final = (int)$_POST['final'];
$gecme =
number_format(gecmeNotuHesapla($vize, $final),2);
$harf = harfNotuHesapla($gecme);
if (basariDurumu($gecme)==1)
{$basari_durumu="Geçti";}
else {$basari_durumu="Kaldi";}
$sonuc=mysql_query("INSERT INTO anatablo
(numara, ad , soyad , vize, final, gecme, harf,
basari) VALUES ('$numara', '$ad' , '$soyad' ,
'$vize' , '$final' , '$gecme' , '$harf' ,
'$basari_durumu')");
if ($sonuc){
echo "<p>Geçme Notu.......", $gecme;
echo "<p>Harf Notu........", $harf;
echo "<p>Başarı Durumu....", $basari_durumu;
echo "<p>Bilgiler veritabanına eklenmiştir...";}
else{echo "Bilgiler eklenemedi...";} }
else { echo "Bağlantıda sorun var...“;} }
?>
Fonksiyon İşlevi
mysql_affected_rows() Bir önceki MySQL işleminden etkilenen
satırların sayısını verir
mysql_change_user() Anlık MySQL bağlantısının kullanıcısın
değiştirir. Kullanımı tavsiye edilmez.
mysql_client_encoding() Anlık bağlantının karakter kümesinin ismini
gönderir
mysql_close() Anlık MySQL bağlantısını kapatır
mysql_connect() MySQL bağlantısını kurar
mysql_create_db() Yeni bir MySQL veritabanı oluşturur.
Kullanımı tavsiye edilmez. Yerine
mysql_query() önerilir
mysql_data_seek() Kayıt işaretçisini konumlandırır
PHP Programlama - 3. Bölüm 77
Tolga GÜYER
PHP & MySQL MySQL Fonksiyonları
Fonksiyon İşlevi
mysql_db_name() mysql_list_dbs() den bir veritabanı ismi alır
mysql_db_query() Veritabanına bir MySQL sorgusu gönderir.
Kullanımı tavsiye edilmez. Yerine
mysql_select_db() ve mysql_query()
önerilir
mysql_drop_db() Bir MySQL veritabanını siler. Kullanımı
tavsiye edilmez. Yerine mysql_query()
önerilir
mysql_errno() En son MySQL işleminin ürettiği hata
mesajının numarasını gönderir
mysql_fetch_array() Kayıt kümesinden bir satırı ilişkilendirilmiş
ve/veya sayısal bir dizi olarak gönderir
PHP Programlama - 3. Bölüm 78
Tolga GÜYER
PHP & MySQL MySQL Fonksiyonları
Fonksiyon İşlevi
mysql_fetch_array() Kayıt kümesinden bir satırı ilişkilendirilmiş
ve/veya sayısal bir dizi olarak gönderir
mysql_fetch_assoc() Kayıt kümesinden bir satırı ilişkilendirilmiş
bir dizi olarak gönderir
mysql_fetch_field() Kayıt kümesinden bir alan bilgisini nesne
olarak gönderir
mysql_fetch_lengths() Sonuç satırındaki her alanın içerik
uzunluklarını gönderir
mysql_fetch_object() Kayıt kümesinden bir satırı nesne olarak
gönderir
mysql_fetch_row() Kayıt kümesinden bir satırı sayısal bir dizi
olarak gönderir
PHP Programlama - 3. Bölüm 79
Tolga GÜYER
PHP & MySQL MySQL Fonksiyonları
Fonksiyon İşlevi
mysql_field_flags() Kayıt kümesinden bir alanla ilişkilendirilmiş
bayrak değerlerini gönderir
mysql_field_len() Bir kayıt kümesindeki bir alanda yer alan
maksimum uzunluğu gönderir
mysql_field_name() Bir kayıt kümesindeki belirli bir alanın adını
gönderir
mysql_field_seek() Kayıt işaretçisini belirli bir alana
konumlandırır
mysql_field_table() Belirli bir alanı içeren tablonun adını
gönderir
mysql_field_flags() Kayıt kümesinden bir alanla ilişkilendirilmiş
bayrak değerlerini gönderir
PHP Programlama - 3. Bölüm 80
Tolga GÜYER
PHP & MySQL MySQL Fonksiyonları
Fonksiyon İşlevi
mysql_field_type() Kayıt kümesinde yer alan belirli bir alanın
veri türünü gönderir
mysql_free_result() Boş sonuç belleğini verir
mysql_get_client_info() MySQL istemci bilgisini verir
mysql_get_host_info() MySQL ana bilgisayar bilgisini verir
mysql_get_proto_info() MySQL protokol bilgisini verir
mysql_get_server_info() MySQL sunucu bilgisini verir
mysql_info() En son sorgulama bilgisini verir
mysql_insert_id() En son INSERT işlemi ile gerçekleştirilen
AUTO_INCREMENT ID (otomatik artan
sayı) bilgisini verir
Fonksiyon İşlevi
mysql_list_dbs() MySQL sunucuda bulunan veritabanı
listesini verir
mysql_list_fields() MySQL tablo alanlarını listeler. Kullanımı
tavsiye edilmez. Yerine mysql_query()
önerilir
mysql_list_processes() MySQL işlemlerini listeler
mysql_list_tables() MySQL tablolarını listeler. Kullanımı tavsiye
edilmez. Yerine mysql_query() önerilir
mysql_num_fields() Bir kayıt kümesindeki alanların (sütunların)
sayısını gönderir
mysql_num_rows() Bir kayıt kümesindeki satırların sayısını
gönderir
PHP Programlama - 3. Bölüm 82
Tolga GÜYER
PHP & MySQL MySQL Fonksiyonları
Fonksiyon İşlevi
mysql_pconnect() Sürekli bir MySQL bağlantısı başlatır
mysql_ping() Bir sunucu bağlantısı denetimi gerçekletiri
(ping) ve eğer bağlantı yoksa tekrar bağlantı
kurar
mysql_query() MySQL veritabanı üzerinde bir sorgu
çalıştırır
mysql_real_escape_string() SQL cümlesinde kullanılmak üzere bir
string alır
mysql_result() Bir kayıt kümesindeki bir alanın değerini
verir
mysql_select_db() Etkin MySQL veritabanını belirler
Fonksiyon İşlevi
mysql_stat() MySQL sunucusunun anlık sistem
durumunu verir
mysql_tablename() Bir alana ait tablo adını verir. Kullanımı
tavsiye edilmez. Yerine mysql_query()
önerilir
mysql_thread_id() Anlık çalıştırılan prosedür (thread) kimlik
(ID) bilgisini verir
mysql_unbuffered_query() MySQL veritabanı üzerinde bir sorgu
çalıştırır (verileri çekmez, tampon bellek
kullanır)
while
($row=mysql_fetch_array($sonuclar)){
$secenekler .= "<option
value=".$row['pernum']."></option>\n";
}
echo ($secenekler);
?>
</select>
<p><input name="dugme" type="submit"
value="Veritabanına Ekle"></p>
</form>
function sqlConnect()
{
$snc1 = mysql_connect("localhost","root","");
$snc2 = mysql_select_db("otomobil");
mysql_query("SET NAMES 'latin5'"); // Türkçe
harfleri içeren karakter setine geçiliyor.
$sncDeger = $snc1 and $snc2;
return $sncDeger; } ?>
PHP Programlama - 3. Bölüm 95
Tolga GÜYER
Öğrendiklerimizi Uygulayalım:
İkinci El Otomobil Satışı Devamı
<SCRIPT LANGUAGE="JavaScript">
function frmYenile()
{
document.otogir.method='POST';
document.otogir.submit();
}
</SCRIPT>
<?php
sqlConnect();
if (isset($_POST['marka']))
{
$sonuc = mysql_query("SELECT marka
FROM marka_model WHERE
marka='".$_POST['marka']."'");
while
($row=mysql_fetch_array($sonuc))
{
$marka = $row['marka'];
}
echo "<option
value=\"$_POST[marka]\"
selected=\"selected\">$marka</option>";
$sonuclar = mysql_query("SELECT
marka FROM marka_model WHERE
marka<>'".$_POST['marka']."' GROUP BY marka");
$secenekler="";
while
($row=mysql_fetch_array($sonuclar))
{
$secenekler .= "<option
value=".$row['marka'].">".$row['marka']."</option>
\n";
}
}
else
{
$sonuclar = mysql_query("SELECT
marka FROM marka_model GROUP BY marka");
$secenekler="<option value=\"-1\"
selected=\"selected\">== S E Ç İ N İ Z
==</option>";
while
($row=mysql_fetch_array($sonuclar))
{
$secenekler .= "<option
value=".$row['marka'].">".$row['marka']."</option>
\n";
}
}
echo ($secenekler);
?>
</select>
</td>
</tr>
<tr>
<td width="169" bgcolor="#FFFFCC">Model :</td>
<td width="318" bgcolor="#33FFFF">
<select size="1" name="model">
<option value="-1" selected="selected">== S E Ç
İ N İ Z ==</option>
<?php
$sonuclar = mysql_query("SELECT model FROM
marka_model WHERE marka='".$_POST['marka']."'");
$secenekler="";
while
($row=mysql_fetch_array($sonuclar))
{
$secenekler .= "<option
value=".$row['model'].">".$row['model']."</option>
\n“; }
echo ($secenekler); ?>
PHP Programlama - 3. Bölüm 100
Tolga GÜYER
Öğrendiklerimizi Uygulayalım:
İkinci El Otomobil Satışı Devamı
</select>
</td>
</tr>
<tr>
<td bgcolor="#FFFFCC">Yýl :</td>
<td bgcolor="#33FFFF">
<select size="1" name="yil">
<option value="-1" selected="selected">== S E Ç İ
N İ Z ==</option>
<?php
$secenekler="";
for ($y=1980;$y<=2009;$y++)
{
$secenekler .= "<option
value=".$y.">".$y."</option>\n";
}
echo $secenekler; ?> </select></td></tr>
PHP Programlama - 3. Bölüm 101
Tolga GÜYER
Öğrendiklerimizi Uygulayalım:
İkinci El Otomobil Satışı Devamı
<tr>
<td bgcolor="#FFFFCC">Renk :</td>
<td bgcolor="#33FFFF">
<select size="1" name="renk">
<option value="-1" selected="selected">== S E Ç İ
N İ Z ==</option>
<option value="Kırmızı">Kırmızı</option>
<option value="Beyaz">Beyaz</option>
<option value="Gri">Gri</option>
<option value="Siyah">Siyah</option>
</select>
</td>
</tr>
<tr>
<td bgcolor="#FFFFCC">Yakıt Tipi :</td>
<td bgcolor="#33FFFF">
<?php
if(isset($_POST["dugme"])){
if (sqlConnect()){
echo "<p>Bağlantı Kuruldu...";
$renk = $_POST['renk'];
$marka = $_POST['marka'];
PHP Programlama - 3. Bölüm 104
Tolga GÜYER
Öğrendiklerimizi Uygulayalım:
İkinci El Otomobil Satışı Devamı
$model = $_POST['marka'];
$yil = (int)$_POST['yil'];
$ytip = $_POST['ytip'];
$klima = $_POST['klima'];
$cdcalar = $_POST['cdcalar'];
$sunroof = $_POST['sunroof'];
$fiyat = (double)$_POST['fiyat'];
if (mysql_query("INSERT INTO
otomobil_bilgileri (marka, model, renk, yil, ytip,
klima, cdcalar, sunroof, fiyat) VALUES ('$marka',
'$model', '$renk' , $yil , '$ytip' , '$klima' ,
'$cdcalar' , '$sunroof' , $fiyat)"))
{
echo "<p>Bilgiler veritabanına
eklenmiştir...";
}
else
{ echo "Bilgiler eklenemedi...";}
}
else
{
echo "Bağlantı Kurulamadı...";
}
}
?>
$secenekler="<option value=\"-1\"
selected=\"selected\">Seçiniz</option>“;
PHP Programlama - 3. Bölüm 111
Tolga GÜYER
Öğrendiklerimizi Uygulayalım:
Öğrenci Bilgileri Girişi Devamı
while
($row=mysql_fetch_array($sonuclar))
{
$secenekler .= "<option
value=".$row['f_kod'].">".$row['f_ad']."</option>\
n";
}
}
echo
($secenekler);
?>
</select>
$secenekler="";
while
($row=mysql_fetch_array($sonuclar))
{
$secenekler
.= "<option
value=".(string)$row['b_kod'].">".(string)$row['b_
ad']."</option>\n";
}
echo
($secenekler); ?> </select>
function siraNoAl($fkod,$bkod,$gyil){
$sonuc = mysql_query("SELECT bsira FROM
ogrtablo WHERE fkod=".$fkod." AND bkod=".$bkod."
AND gyil=".$gyil." ORDER BY bsira DESC");