php2ek5arkadaslar bunu uzun zamandir yapmak istiyordum php konusunda

kendini gelistirmek isteyen arkadaslar icin guzel bir dokuman olacak eminim.. oncelikle dokuman su ana kadarki son sistemlerde denenmistir ve sorun gorulmemistir, (php 5 …), kullandigim vista sisteminde de denedim, localde yani.. dokuman gelistirilmeye acik, sorun olursa konu altinda yorum yazarak yardim alabilirsiniz.

aragida anlatilan kodlar kullanilarak gelistirilmeye baslanan bir veb sitesi ve temasi demosu:
Demo silinmistir :s
Yukaridaki demo’nun Kaynak dosyalari download:
http://www.kuaza.org/kuaza-tema-arsivi-f193/php-islemlerini-yapabilen-yeni-tema-50-bitti-t2244.html

yukaridaki link kuaza tema arsivi icin hazirlanan bir iceriktir, gelistirilmeye devam edilmektedir..
gorus ve onerilerinizi yazabilirsiniz..

simdi gel gelelim okumanimizin baslangicina oncelikle kendimize bir veritabani olusturuyoruz ve asagidaki bilgileri veri tabanindan olusturdugumuz veritabanina yukluyoruz..


CREATE TABLE not_defteri (
  id int(10) unsigned NOT NULL auto_increment,
  baslik varchar(255) NOT NULL,
  aciklama varchar(255) NOT NULL,
  resim varchar(255) NOT NULL,
  ekleyen varchar(255) NOT NULL,
  tarih varchar(255) NOT NULL,
  k_site varchar(255) NOT NULL,
  k_url varchar(255) NOT NULL,
  PRIMARY KEY  (id)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=67 ;


— Tablo döküm verisi not_defteri

INSERT INTO not_defteri (id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url) VALUES
(1, ‘maffay’, ‘maffay hakkinda hersey :)’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 1’, ‘kuaza.org’),
(2, ‘baba nerdesin soyle’, ‘Bu site paylaşılan dosyaları içerisinde barındırmamaktadır,
dosyalar farklı kaynaklardan derlenip paylasılmaktadır ve sorumlulukları
tamamen kaynaklarına aittir.Hak sahibinin talebi durumunda paylasımlar
derhal sitemizden kaldırılacaktır.
Sitede verilen lin’, ‘http://www.kuaza.com/out/i45812_kk.jpg ‘, ‘pala’, ‘2009’,
‘bir kuaza olusumudur :)’, ‘kuaza.org’),
(3, ‘Baslik 3’, ‘Modern Kristallitler’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 3’, ‘kuaza.org’),
(4, ‘Baslik 4’, ‘Masa Lambalari’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 4’, ‘kuaza.org’),
(5, ‘Baslik 5’, ‘Aplikler’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 5’, ‘kuaza.org’),
(48, ‘ne basligi’, ‘dfgdfgdfgdfgdfg’, ‘sdfsdfsd’, ‘fsdf’, ‘sdfsd’, ‘fsdf’, ‘sdfsd’),
(47, ‘kuaza.net php dersleri’, ‘aciklama icin zaman yok be guzelim’,
‘http://www.kuaza.com/out/i45657_image0011hk3rq3fb2iswp2.jpg’, ‘maffay61’,
’11-2-2008′, ‘ucretsiz resim yukleyin’, ‘kuaza.com’),
(66, ‘Sonuçları şşüü’, ‘Sonuçları şşüü’, ‘Sonuçları şşüü’, ‘Sonuçları şşüü’,
‘Sonuçları şşüü’, ‘Sonuçları şşüü’,
‘Sonuçları şşüü’);

 

sonrasinda baglanti bilgilerimizi iceren sayfamizi hazirlayalim…

baglan.php


<?PHP

$conn mysql_connect("localhost""root""");

if (!$conn) {
    echo 
"Unable to connect to DB: " mysql_error();
    exit;
}
  
if (!
mysql_select_db("deneme")) {
    echo 
"Unable to select mydbname: " mysql_error();
    exit;
}
mysql_query ("SET NAMES ‘latin5’ ");
?>

 

bu yukaidaki bilgileri kendinize gore gerekli yerlerini duzenleyin.. veri tabanina baglantimiz basarili olacaktir, sonrasinda ilk sayfamiz listeleme sayfamiz olsun, index sayfasinda veritabanimizdan gelen bilgileri listeleyelim..

k_index.php


<?PHP
require_once(‘baglan.php’);
?>
<table width="800px">
<tr>
<td bgcolor="gray">Sira</td>
<td bgcolor="gray">baslik</td>
<td bgcolor="gray">aciklama</td>
<td bgcolor="gray">resim</td>
<td bgcolor="gray">ekleyen</td>
<td bgcolor="gray">tarih</td>
<td bgcolor="gray">Site</td>
</tr>
<?php

$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    WHERE  id"
;

$result mysql_query($sql);

if (!$result) {
    echo 
"Could not successfully run query ($sql) from DB: " mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo 
"No rows found, nothing to print so am exiting";
    exit;
}

// While a row of data exists, put that row in $row as an associative array
// Note: If you’re expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you’ll
//    then create $userid, $fullname, and $userstatus

while ($row mysql_fetch_assoc($result)) {
    

$id=$row[‘id’];
$baslik=$row[‘baslik’];
$aciklama=$row[‘aciklama’];
$resim=$row[‘resim’];
$ekleyen=$row[‘ekleyen’];
$tarih=$row[‘tarih’];
$k_site=$row[‘k_site’];
$k_url=$row[‘k_url’];

?>

<tr><td><?php echo "$id"?></td>
<td> <?php echo "$baslik"?></td>

<td> <?php echo "$aciklama"?></td>
<td> <a href="<?php echo "$resim"?>" /> Resmi gormek icin tiklayin</a></td>
<td> <?php echo "$ekleyen"?></td>
<td> <?php echo "$tarih"?></td>
<td> <a href="http://<?php echo "$k_url"?>"><?php echo "$k_site"?></a></td>

<?php 

}

mysql_free_result($result);
?>
</tr>
</table>

 

yukaridaki listeleme sayfasina dikkat ederseniz oncelikle baglan.php sayfasini sayfamiza cagirdik sonrasinda gelen bilgileri degiskenlere atadik, ve alt tarafindaki tablolara yansittik..

simdide ekleme silme ve duzenleme sayfamizi yapalim..

k_islem.php


<style type="text/css">
<!–
.style1 {
    color: #FF8040;
    font-weight: bold;
}
–>
</style>
<form action="k_ekle.php" method="POST">
<table width="439" border="0">
  <tr>
    <td width="53" height="32"><span class="style1">Bolumler</span></td>
    <td width="370">&nbsp;<span class="style1">Doldurulmasi Zorunlu Alanlar</span></td>
  </tr>
  <tr>
    <td>Baslik</td>
    <td><input name="baslik" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>aciklama</td>
    <td><textarea name="aciklama" rows="10" cols="45"></textarea></td>
  </tr>
  <tr>
    <td>Resim</td>
    <td><input name="resim" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Ekleyen</td>
    <td><input name="ekleyen" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Tarih</td>
    <td><input name="tarih" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site ismi</td>
    <td><input name="k_site" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site url</td>
    <td><input name="k_url" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Ekle"/></td>
  </tr>
</table>
</form>
<table width="0">
<tr>
<td bgcolor="gray">Sira</td>
<td bgcolor="gray">baslik</td>
<td bgcolor="gray">aciklama</td>
<td bgcolor="gray">resim</td>
<td bgcolor="gray">ekleyen</td>
<td bgcolor="gray">tarih</td>
<td bgcolor="gray">Site</td>
<td colspan="2" bgcolor="gray">islem</td>
</tr>

<?PHP
require_once(‘baglan.php’);

$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    WHERE  id"
;

$result mysql_query($sql);

if (!$result) {
    echo 
"Could not successfully run query ($sql) from DB: " mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo 
"No rows found, nothing to print so am exiting";
    exit;
}

while ($row mysql_fetch_assoc($result)) {
    

$id=$row[‘id’];
$baslik=$row[‘baslik’];
$aciklama=$row[‘aciklama’];
$resim=$row[‘resim’];
$ekleyen=$row[‘ekleyen’];
$tarih=$row[‘tarih’];
$k_site=$row[‘k_site’];
$k_url=$row[‘k_url’];

?>

<tr><td><?php echo "$id"?></td>
<td> <?php echo "$baslik"?></td>

<td> <?php echo "$aciklama"?></td>
<td> <a href="<?php echo "$resim"?>" /> Resmi gormek icin tiklayin</a></td>
<td> <?php echo "$ekleyen"?></td>
<td> <?php echo "$tarih"?></td>
<td> <a href="http://<?php echo "$k_url"?>"><?php echo "$k_site"?></a></td>
<td> <a href="k_duzenle.php?id=<?php echo "$id"?>">Duzenle</a></td>
<td> <a href="k_sil.php?id=<?php echo "$id"?>">Sil</a></td>
<?php 

}

mysql_free_result($result);
?>
</tr>
</table>

 

yukaridaki islem sayfamizda da oncelikle ekleme bolumu yaptik ve hemen altinada veritabanindaki bilgileri listeleyerek duzenleme ve silme alanlari ekledik, bu sekilde listelenen bilgileri duzenleme ve silme linklerini kullanarak islem yapabilecegiz..

———-
Listelemeyi Sondan Baslayarak yapmak icin asagidakileri uygulamaniz yeterlidir:

Bunu

butun

kodlarinizda,

k_index.php

icin ve

k_islem.php

icinde kullanabilirsiniz.

 

listeleme islemini sondan baslayarak yapmak icin bu komutu kullanacagiz:

ORDER by id DESC

yani listeleme sayfamiz olan

k_islem.php

, sizinkini bilmiyorum herneyse, bu sekildeki kodlari:


$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    WHERE  id"
;     

bu sekilde degistirecegiz:

$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    ORDER by id DESC"
;     

yani sorgu sonundaki

WHERE id

degerine bununla degistirdigimizde :

ORDER by id DESC

Siralamayi sondan baslatarak yaptirmis oluyoruz…

——–

ama once eklemek istedigimiz bilgilerin gidecegi ve veritabanina eklenmesini saglayan sayfamizi olusturmaya..

k_ekle.php


<?PHP
require_once(‘baglan.php’);
?>

<?php

# güvenli form ç?kt?lar?
$baslik  strip_tags(htmlspecialchars(mysql_real_escape_string

($_POST["baslik"])));
$aciklama strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["aciklama"])));
$resim  strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["resim"])));
$ekleyen strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["ekleyen"])));
$tarih strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["tarih"])));
$k_site strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["k_site"])));
$k_url strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["k_url"])));

if(($baslik=="") or ($aciklama=="") or ($resim=="") or ($ekleyen=="") or ($tarih=="") or
 (
$k_site=="") or ($k_url=="")){
echo 
"Lutfen bos alan birakmayiniz<br />
<a href=’k_islem.php’>Tekrar Denemek icin geri donebilirsiniz</a>"
;
}else{

# kay?t sorgusu
$query mysql_query("INSERT INTO not_defteri 
(baslik,aciklama,resim,ekleyen,tarih,k_site,k_url) 
VALUES (‘$baslik’,’$aciklama’,’$resim’,’$ekleyen’,’$tarih’,’$k_site’,’$k_url’)"
);

# kontrol ediliyor
if($query) {
echo 
"kayit tamam";
echo 
"<br /><a href=’k_islem.php’>
geriye donerek islemlere devam edebilirsiniz</a>"
;
} else {
echo 
"kayit tamamlanamadi <br />
<a href=’k_islem.php’>Tekrar Denemek icin geri donebilirsiniz</a>"
;

}
}
?>

 

gordugunuz gibi ilk basta gelen verinin guvenirliligini kontrol ettik, ve ilerde gelebilecek aciklaara karsi veritabanina eklenen bilgileri sinadik..

 

sira geldi duzenleme sayfamizin yapimina gelen veriyi duzenlemek icin yukaridaki sayfada(k_islem.php) listeledigimiz veritabani id lerine duzenle linki eklemistirk, bu duzenle linkine tikladiktan sonra duzenleme yapacagimiz sayfayi olusturalim..

k_duzenle.php


<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
</head><?PHP
require_once(‘baglan.php’);
?>

   <?php 

# Once bilgileri al
$id=(int)$_GET[‘id’];

$sorgu=mysql_query("select * from not_defteri where id=’$id’");
$bilgi mysql_fetch_array($sorgu); 

echo ‘<form method="POST" action="k_baglan_duzenle.php">
<table width="439" border="0">
  <tr>
    <td width="53" height="32"><span class="style1">Bolumler</span></td>
    <td width="370">&nbsp;<span class="style1">Doldurulmasi Zorunlu Alanlar</span></td>
  </tr>
<input type="hidden" name="id" value="’
.$id.‘">
  <tr>
    <td>Baslik</td>
    <td><input name="baslik" value="’
.$bilgi[baslik].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>aciklama</td>
    <td><textarea name="aciklama" rows="10" cols="45">’
.$bilgi[aciklama].

</textarea></td>
  </tr>
  <tr>
    <td>Resim</td>
    <td><input name="resim" value="’
.$bilgi[resim].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Ekleyen</td>
    <td><input name="ekleyen" value="’
.$bilgi[ekleyen].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Tarih</td>
    <td><input name="tarih" value="’
.$bilgi[tarih].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site ismi</td>
    <td><input name="k_site" value="’
.$bilgi[k_site].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site url</td>
    <td><input name="k_url" value="’
.$bilgi[k_url].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Ekle"/></td>
  </tr>
</table>
</form>’
;  ?> 
</html>

 

en basa yazdigimiz html karakter seti komutu veritabanindan gelen tr karakterli bilgilerin bozuk cikmamasini saglamak ;;

sonrasinda k_islem.php sayfasindan gelen id yi get metoduyla aldik ve o id deki bilgileri listeledik..

listeleme isleminden sonra yaptigimiz degisikliklerin veritabanina kaydedilmesi icin bize bir de bu bilgilerin yollandigi update sayfasi lazim, gelin simdi bunu yapalim..

k_baglan_duzenle.php


  <?PHP
require_once(‘baglan.php’);
?>
<?php
$id
=$_POST["id"];
$baslik=$_POST["baslik"];
$aciklama=$_POST["aciklama"];
$ekleyen=$_POST["ekleyen"];
$resim=$_POST["resim"];
$tarih=$_POST["tarih"];
$k_site=$_POST["k_site"];
$k_url=$_POST["k_url"];

$guncelle=mysql_query("update not_defteri SET 

baslik=’$baslik’,aciklama=’$aciklama’,
ekleyen=’$ekleyen’,resim=’$resim’,tarih=’$tarih’,k_site=’$k_site’,
k_url=’$k_url’ where id=’$id’");

if($guncelle) {

echo "guncelleme basarili oldu<br />
<a href=’k_islem.php’>geriye donerek islemlere devam edebilirsiniz</a>"
;
}else{
echo 
"guncelleme basarisiz oldu";
}
?>

bir ocneki sayfamizdan k_duzenle.php sayfamizdan yani gelen bilgileri degiskenlere atadik, ve sonrasinda update komutunu kullanarak veritabanina eklettirdik..

duzenleme sayfamizda bitmistir simdi gelelim silme sayfamiza..

daha once k_islem.php sayfasindan sil linki eklemistik, buna tiklayarak sil komutunu yapmamiz icin bize gerekli olan son sayfada,

 

k_sil.php


<?php
require_once(‘baglan.php’);

$id=$_GET["id"];
echo 
"$id";
$sil=mysql_query("delete from not_defteri where id=’$id’");
if(
$sil){
echo 
"silme islemi basarili";
}else{
echo 
"silme islemi basarisiz";
}
?>

yukaridaki komutlada get metoduyla gelen id yi degiskene atadik ve degiskeni delete kodu kullanarak veritabanindan sildik..

islem bu kadar arkadaslar, sorulariniz olursa cekinmeyin sorun..

vista kullaniyorum localhostta sorunsuz bir sekilde calisiyor, sizde denemelerini yapmak icin yukaridaki dokumanlari kullanabilirsiniz..

 

14 YORUMLAR

  1. slm arkadaşlar ben yorum script yukledım mysql herşey güzel calışıyor ama tek dıger sayfalara ekledıgımde her sayfada aynı yorum oluyor onu nasıl ayarlıyacagım bilen varmı.

  2. Peki hocam benim veritabanımda kategorilerde var veri girişi yaparken kategoriye göre girmek istiyorum nasıl bir kod kullanmalıyım yardımcı olursan çok sevinirim

Bir Cevap Yazın