arkadaslar 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.com/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.com’),
(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.com’),
(3, ‘Baslik 3’, ‘Modern Kristallitler’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 3’, ‘kuaza.com’),
(4, ‘Baslik 4’, ‘Masa Lambalari’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 4’, ‘kuaza.com’),
(5, ‘Baslik 5’, ‘Aplikler’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 5’, ‘kuaza.com’),
(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 ($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"> <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> </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
$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{
$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’)");
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
$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"> <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> </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..