Önce veritabanını hazırlayalım. Program bir veritabanından ve şimdilik iki tablodan oluşuyor.
“db” isimli bir veritabanı oluşturun. Daha sonra da liste isimli bir tablo.

Alan Adı Veri türü
KayitID Otomatik Sayı
KitapAdi Metin
YEvi Metin
Fiyati Metin
KayitID KitapAdi YEvi Fiyati
KayitID Yazari Aciklama

*** Alan adlarında Türkçe karakter girmemeye dikkat edin. Türkçe karakterler hataya sebep olacaktır. Kodlarınız doğru olsa da programınız hata verecektir.
*** Elimizde ufak bir veritabanı ve tablolar var. Bu kadar küçük tabloları ikiye bölmek saçma gelebilir ama büyük ölçekli tablolar için uygun bir yöntemdir. Böylece veritabanınızın şişmesini engellemiş olursunuz.

Tablolar KayıtID alanı ile birbirleriyle ilişkilendirilmiştir. Yani KitapID’si 3 olan kitap:

KayitID KitapAdi YEvi Fiyati Yazari Aciklama

Değerlerine sahiptir.

***Fiyat değerlerini salladım :) ama herhalde böyle birşeylerdir. Ayrıntılı bilgi için yayınevlerinin web adreslerini ya da en yakın kitapçıyı ziyaret edebilirsiniz.

TABLO İÇERİĞİNİN ASP SAYFASINA YAZDIRILMASI

Tablomuzu hazırladık peki nasıl görüntüleyeceğiz? İlk önce sayfamızın tasarlanması gerekiyor. Bunun için birçok editör kullanabilirsiniz. Endişelenmeyin NotePad de işinizi görür. Ama ben yine de Dreamweaver ya da FrontPage gibi bir editör kullanmanızı tavsiye ederim. Elle kod girmekten daha kolay. Ama Asp kodlarını yazmaktan kurtulamazsınız :)

<%@Language=VBScript%>
<%
‘Veritabanı bağlantısını yap
set Con=server.CreateObject(”ADODB.Connection”)
‘Bu durumda veritabanının yeri asp server içinde wwwliste/db.mdb’dir
Con.open “DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=” & Server.MapPath(”/wwwliste/db.mdb”)
‘Bağlantıyı aç

set RS = server.CreateObject(”ADODB.Recordset”)
RS.ActiveConnection=Con

‘liste tablosundaki bütün alanları KitapAdı’na göre sırala

sqlString= “select * from liste order by KitapAdi”

RS.Open sqlString

%>


<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=windows-1254″>
<meta name=”GENERATOR” content=”Microsoft FrontPage 4.0″>
<meta name=”ProgId” content=”FrontPage.Editor.Document”>
<title>İndex</title>
</head>

<body bgcolor=”#ECF5FF”>

<table border=”1″ width=”100%” bordercolor=”#000000″ cellspacing=”0″>
<tr>
<td width=”100%” height=”2″ valign=”top”>
<table border=”1″ width=”100%” bordercolor=”#FFFFFF” cellspacing=”0″>
<tr>
<td width=”13%”>Kitap Adı</td>
<td width=”15%”>Yayın Evi</td>
<td width=”14%”>Fiyatı</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width=”100%” height=”29″ valign=”top”>

<table border=”1″ width=”100%” bordercolor=”#808080″>
<%

‘Son kayıda kadar döngü
while not rs.EOF
%>
<tr>
<td width=”13%”>
‘KitapAdi alanının değeri browser’a yazdırılır
<%=rs.Fields.Item(”KitapAdi”)%></td>
‘Yevi alanı yazdırılır
<td width=”15%”><%=rs.Fields.Item(”YEvi”)%></td>
‘Fiyati alanı yazdırılır
<td width=”14%”><%=rs.Fields.Item(”Fiyati”)%></td>
</tr>
‘Sonraki kayıta git
<%RS.MoveNext
wend
%>
</table>

</td>
</tr>
</table>
</html>

AYRINTI SAYFALARI OLUŞTURMAK

Bu bölümde index.asp’deki Kitap Adı’na link verip bu linki kitap ayrinti.asp sayfasına yönlendireceğiz. Bunu yaparken index.asp’de tıkladığımız kayıt ile ayrıntı.asp de göstereceğimiz kayıtın “KayitID” alanlarının aynı olmasından yararlanacağız.
İlk önce index.asp’de gerekli eklemeyi yapalım:

Eklediğimiz kod index.asp’deki listelenen kaydın KaytID’si ile ayrinti.asp’de görüntülenecek kaydın KayitID’sinin eşit olduğunu sorgular. Bir başka değişle ayrinti.asp’de, tıkladığınız kaydın KayitID’si ile eşit olan kaydın ayrıntıları görüntülenecektir. “kid” index.asp’deki listelenen kayıtların KayitID değerini tutmaktadır.


<table border=”1″ width=”100%” bordercolor=”#808080″>
<%
while not rs.EOF
%>
<tr>
<td width=”13%”><a href=”ayrinti.asp?kid=<%=RS(”KayitID”)%>”><%=rs.Fields.Item(”KitapAdi”)%></a></td>
<td width=”15%”><%=rs.Fields.Item(”YEvi”)%></td>
<td width=”14%”><%=rs.Fields.Item(”Fiyati”)%></td>
</tr>
<%RS.MoveNext
wend
%>
</table>

Şimdi sırada ayrinti.asp’nin yazılması var:


<%@Language=VBScript%>
<%
‘KaID değişkeni index.asp’deki tıklanan kaydın KayitID’sini tutar.

KaID=TRIM(Request(”kid”))

Veritabanı bağlantısını yap
set Con=server.CreateObject(”ADODB.Connection”)
Con.open “DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=” & Server.MapPath(”/wwwliste/db.mdb”)

‘liste tablosundaki KayitID’si geçerli olan kayda eşit olan (KaID’ye) kaydı al.
sqlString= “select * from liste where KayitID=” & KaID
‘Bağlantıyı aç
set RS = server.CreateObject(”ADODB.Recordset”)
RS.ActiveConnection=Con

RS.Open sqlString

%>

<%

‘İki tablo kullandığımız için ayrinti tablosunun da değerlerinin alınması gerekir.
‘İkinci bir bağlantı oluşturulur ve istenen değerler ayrinti tablosundan da alınır.


sqlString= “select * from ayrinti where KayitID=” & KaID
set RS2 = server.CreateObject(”ADODB.Recordset”)
RS2.ActiveConnection=Con

RS2.Open sqlString

%>

<html>
<head>
<title>Ayrıntı</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=windows-1254″>
</head>

<body bgcolor=”#ECF5FF” text=”#000000″>
<table width=”100%” border=”0″>
‘Döngüler başlatılır
<%
while not rs.EOF
%>

<%
while not rs2.EOF
%>
<tr>
<td colspan=”3″>&nbsp;</td>
</tr>
<tr>
<td width=”13%”>Kitap Adı:</td>
‘Kayıtlar browser’a yazdırılır
<td width=”23%”><%=rs.Fields.Item(”KitapAdi”)%></td>
<td rowspan=”4″><%=rs2.Fields.Item(”Aciklama”)%></td>
</tr>
<tr>
<td width=”13%”>Yazarı:</td>
<td width=”23%”><%=rs2.Fields.Item(”Yazari”)%>
</td>
</tr>
<tr>
<td width=”13%”>Yayın Evi:</td>
<td width=”23%”><%=rs.Fields.Item(”YEvi”)%></td>
</tr>
<tr>
<td width=”13%”>Fiyatı:</td>
<td width=”23%”><%=rs.Fields.Item(”Fiyati”)%></td>
</tr>
<tr>
<td width=”13%”>&nbsp;</td>
<td colspan=”2″>&nbsp;</td>
</tr>
<%RS2.MoveNext
wend
%>
<%RS.MoveNext
wend
%>
</table>
</body>
</html>

TABLOYA YENİ KAYIT EKLEMEK

Peki database’imiz hep böyle mi kalacak? Elbette hayır. Yeni kayıtlar girmek gerek:
İlk önce index.asp’nin sonuna aşağıdaki kodu ekleyelim:

<table width=”100%” border=”0″>
<tr>
<td><a href=”ekle.asp”>Kayıt Ekle</a></td>
</tr>
</table>

Bu değişikle sadece sayfa sonuna “Kayıt Ekle” linkini oluşturduk.
Sıra bu link tıklanınca ekrana gelecek olan sayfanın hazırlanmasına geldi:

<html>
<head>
<title>Kayıt Ekle</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=windows-1254″>
</head>
<body bgcolor=”#ECF5FF” text=”#000000″>
‘Form içeriği ekle2.asp’ye gönderilir
<form name=”kekle” method=”post” action=”ekle2.asp”>
<table width=”100%” border=”0″>
<tr>
<td colspan=”3″ bgcolor=”#FF6600″ height=”11″>
<div align=”center”>
<p><b><font color=”#FFFFFF”>Kayıt Ekleme Formu
</font></b><font color=”#FFFFFF”><font size=”1″>(*) alanlar zorunlu</font></font></p>
</div>
</td>
</tr>
<tr>
<td width=”24%”>Kitap Adı*:</td>
<td colspan=”2″>
<input type=”text” name=”KitapAdi” size=”30″ maxlength=”50″ style=”color: #006FA4; font-family: Tahoma; font-size: 8pt; border-style: solid; border-width: 1″>
</td>
</tr>
<tr>
<td width=”24%”>Yazarı*:</td>
<td colspan=”2″>
<input type=”text” name=”Yazari” size=”25″ maxlength=”50″ style=”color: #006FA4; font-family: Tahoma; font-size: 8pt; border-style: solid; border-width: 1″>
</td>
</tr>
<tr>
<td width=”24%”>Yayın Evi:</td>
<td colspan=”2″>
<input type=”text” name=”YEvi” size=”20″ maxlength=”50″ style=”color: #006FA4; font-family: Tahoma; font-size: 8pt; border-style: solid; border-width: 1″>
</td>
</tr>
<tr>
<td width=”24%”>Fiyatı*:</td>
<td colspan=”2″>
<input name=”Fiyati” type=”text” size=”10″ maxlength=”25″ style=”color: #006FA4; font-family: Tahoma; font-size: 8pt; border-style: solid; border-width: 1″>
</td>
</tr>
<tr>
<td width=”24%”>Açıklama:</td>
<td colspan=”2″>
<textarea name=”Aciklama” wrap=”VIRTUAL” rows=”5″ cols=”35″ style=”color: #006FA4; font-family: Tahoma; font-size: 8pt; border-style: solid; border-width: 1″></textarea>
</td>
</tr>
<tr>
<td width=”24%”>&nbsp;</td>
<td width=”7%”>
<input type=”submit” name=”btnEkle” value=”Ekle” style=”color: #006FA4; font-family: Tahoma; font-size: 10pt; border-style: solid; border-width: 1″>
</td>
<td width=”69%”>
<input type=”reset” name=”Reset” value=”Temizle” style=”color: #006FA4; font-family: Tahoma; font-size: 10pt; border-style: solid; border-width: 1″>
</td>
</tr>
<tr>
<td width=”24%”>&nbsp;</td>
<td colspan=”2″>&nbsp;</td>
</tr>
</table>
</form>
</body>
</html>

Dikkat ederseniz bu sayfada database’e kayıt yazdıracak herhangi bir kod yok. Sayfada bir form var ve bu formdaki değerler, “ekle2.asp”‘ye gönderiliyor. Tahmin ettiğiniz gibi veritabanına kaydı girecek olan kodlar “ekle2.asp”‘de:

<!–#INCLUDE FILE=”adovbs.inc”–>
<%
‘Değişkenler atanır
KitapAdi=TRIM(Request(”KitapAdi”))
Yazari=TRIM(Request(”Yazari”))
YEvi=TRIM(Request(”YEvi”))
Fiyati=TRIM(Request(”Fiyati”))
Aciklama=TRIM(Request(”Aciklama”))
Alanlar boşsa varsayılan değerleri gir
If KitapAdi=”" Then
KitapAdi=”???”

If Yazari =”" Then
Yazari =”???”

If Fiyati =”" Then
Fiyati =”???”

If YEvi=”" Then
YEvi=”???”
End If

If Aciklama=”" Then
Aciklama=”???”
End If

set Con=server.CreateObject(”ADODB.Connection”)
Con.open “DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=” & Server.MapPath(”/wwwliste/db.mdb”)

%>

<html>
<head>
<title>ekle2.asp</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=windows-1254″>
</head>

<body bgcolor=”#ECF5FF” text=”#000000″>
<%

‘liste tablosuna ilgili alanları gir
sqlString = “INSERT INTO liste ” &_
“( KitapAdi, YEvi, ” &_
“Fiyati ) VALUES ( ” &_
” ‘” & KitapAdi & “‘, ” &_
” ‘” & YEvi & “‘, ” &_
” ‘” & Fiyati & “‘)”
Con.Execute sqlString

‘ayrinti tablosuna ilgili alanları gir
sqlString2 = “INSERT INTO ayrinti ” &_
“( Yazari, Aciklama ) VALUES ( ” &_
” ‘” & Yazari & “‘, ” &_
” ‘” & Aciklama & “‘)”
Con.Execute sqlString2

%>

<table width=”100%” border=”0″ align=”center”>
<tr>
‘Eklenen kaydın adını göster.
<td><font color=”#CC3300″><b><%=KitapAdi%></b></font> kaydedildi</td>
</tr>
</table>

</body>
</html>

Favorilerinize Ekleyin.
  • BlinkList
  • del.icio.us
  • Digg
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists
  • blogmarks
  • Furl
  • Netscape
  • NewsVine
  • Reddit
  • Shadows
  • Technorati
  • YahooMyWeb
  • Fark
  • feedmelinks
  • Fleck
  • kick.ie
  • LinkaGoGo
  • Linkter
  • MyShare
  • Spurl
  • Webride