




Asp'de 2 Farklı Tablodan Veri Çekmek Ne Güzel
-
1.Sorum:Asp'de 2 farklı tablodan veri çekmek istiyorum:
Set Rs=Server.CreateObject("ADODB.Recordset")
Sor = "Select * From tb1 and tb2 order by id desc"
Rs.Open sor,Baglantim,1,3
Bu şekilde yaptığımda hata yapıyorum. Sorun nerde acep. Ne şekilde yazmalıyım?
2.Sorum cookie üzerine:
Benim yaptığım login sisteminde maximum 15-20dk online oluyorsun eğer bir şey yapmazsan sitede. Cookie yapmam gerekiyor heralde.Login kodlarım şu şekil:
DbYol=Server.MapPath("db.mdb")
set log=server.CreateObject("Adodb.Connection")
log.open"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& DbYol &";"
Function avla(byval hedef)
hedef = Replace(hedef ,">","",1,-1,1)hedef = Replace(hedef ,"<","",1,-1,1)hedef = Replace(hedef ,"''","",1,-1,1)hedef = Replace(hedef ,"'","",1,-1,1)hedef = Replace(hedef ,"#","",1,-1,1)hedef = Replace(hedef ,"*","",1,-1,1)hedef = Replace (hedef ,"`","",1,-1,1) hedef = Replace (hedef ,"&","",1,-1,1) hedef = Replace (hedef ,"'","",1,-1,1) hedef = Replace (hedef ,"Chr(34)","",1,-1,1) hedef = Replace (hedef ,"Chr(39)","",1,-1,1)
avla=trim(hedef)
end functionif Request.QueryString("cmd")="True" Then
Set Logon=Server.CreateObject("Adodb.recordset")
IlkSorguSql= " Select * from tbUsers where stMail='"&avla(Request.Form("mail"))&"' and stPassword='"&avla(Request.Form("Password"))&"'"
Logon.open IlkSorgusql,log
if Logon.eof Then
Response.Redirect("?Baslik=Kullanci adi veya sifreniz yanlis")
else
Session("UserName")=avla(Logon("stUserName"))Session("Password")=avla(Logon("stPassword"))
Response.Redirect("index.asp")
end if
end if
cookie yi bu sistemime nasıl yerleştiririm yardım ederseniz şahane olur.
-
SELECT h.KolonAdi1,h.KolonAdi2,h.KolonAdi3 ,a.KolonAdi1, a.KolonAdi2,a.KolonAdi3 FROM Tablo1 a , Tablo2 h
bu şekilde 2 farklı tablodaki verilerini birleştirebilirsin hocam
-
Sharp h. ve a. ne, o kısmı anlamadım. Teblolar aşağıdaki gibi.
Tb1
id baslik kategori
Tb2
id baslik kategori
Sor = "Select * baslik,resim from tb1,tb2 order by id desc" olmayacak mı senin dediğine göre?
-
Select a.id,a.baslik,a.kategori,h.id,h.baslik,h.kategori from tb1 a, tb1 h
bu şekilde denermisin hocam
-
Oldu galiba, ama arama sonuçları kısmında yapamadım,aynı şeyden onlarca çıkıyor.
"Select a.id,a.baslik,a.resim,h.id,h.baslik,h.resim from tb1 a,tb3 h where a.baslik and h.baslik like '%"&ara&"%'"
arama sonuçlarını bu şekil döküyorum,fakat aynı şeyden bir sürü çıkıyor.
-
Arkadaşlar tablo açmanın yolunu söyleyebilecek misiniz, access databaseye girmeden admin paneli üzerinden. Herseferinde tablo açmak için ftpden databaseyi indiriyorum tablo açıp tekrar yüklüyorum.Mantığını ve mümkünse kodlamasını verebilecek var mı
-
Tablo Silme
DB.Execute("DROP TABLE tabloadi")
Tablo Ekleme
DB.Execute("CREATE TABLE tabloadi")
Hücre Silme
DB.Execute("ALTER TABLE tabloadi DROP COLUMN [hucreadi]")
Hücre Ekleme (hücre tipi için googlea bak)
DB.Execute("ALTER TABLE tabloadi ADD [hucreadi] Memo, [hucreadi] Integer, [hucreadi] Integer") -
Teşekkür ettim, az önce bir yerde detaylı olarak buldum.Alıntı..
<%
Set objADOX = Server.CreateObject("ADOX.Catalog")
objADOX.Create "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("db/Dosyaadı.mdb") &"; Jet OLEDB:Engine Type=5;"
Set objADOX = Nothing
%>İlk Olarak ADOX Nesnesini Oluşturup, Veritabanının Oluşacağı Yeri ve Veritabanı ismini Belirttik. Burada Kalın Yazılan Yolu Veritabanınızın Oluşmasını İstediğiniz Yer İle Değiştirin. KODLARI ASP Şeklinde Kayıt Edip Çalıştırdığınızda Yeni Veritabanınız Belirttiğiniz Klasöre Oluşacaktır. Kullandığımız Koddaki Engine Type = 5Bölümü Access 2000 Veri Tabanı Biçimini İfade Etmektedir. Diğer Veritabanı Türleri;
· Engine Type = 5 // Access 2000
· Engine Type = 4 // Access 95
· Engine Type = 3 // Access 2.0
· Engine Type = 2 // Access 1.0
Veritabanı Oluşturmak İçin En Mantıklısı ACCESS 2000(Engine Type 5) Türünü Kullanarak Oluşturmaktır.
Tablo EklemeTablo Eklemek İçin İlk Önce Bağlantı Nesnemizi Oluşturalım;
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/veritabanıadı.mdb")
%>Bağlantı Kodlarını Oluşturduk. Tablo Eklerken Kullanacağınız Kod Şu Şekildedir:
<%
objConn.Execute("Create TABLE TabloAdı (Değer1 AlanTürü, Değer2 AlanTürü)")
objConn.Close : Set objConn = Nothing
%>Bu Şekilde Veritabanına Tablo Ekleyebilirsiniz. ASP İle Tablo Eklerken Kullanabileceğiniz Alan Türleri Ve Anlamları Şunlardır;
· AutoIncrement = Otomatik Sayı
· TEXT = Metin
· MEMO = Not
· NUMERIC = Sayı
· DATETIME = Tarih/Saat
· BIT = Evet/Hayır
Veritabanı İçin Örnek Bir Tablo Hazırlayalım;
<%
objConn.Execute("Create TABLE tblDeneme (ID AutoIncrement, Baslik TEXT, Icerik MEMO)")
%>Gördüğünüz Gibi Tek Satırlık Kod İle Veritabanınıza Tablo Ekleyebiliyorsunuz. Kodları Çalıştırdığınızda Veritabanınıza Tbldeneme Adlı Tablo Oluştuğunu Göreceksiniz. Bu Tablonun Sütunları ve Biçimleri Şu Şekilde Olacaktır:
· ID: Otomatik Sayı
· Baslik: Metin
· Icerik: Not
Bu Şekilde ASP Kodları İle Veritabanı Oluşturabilir ve Veritabanına tablo oluşturabilirsiniz. Bu İşi Form Kullanarak Otomatik Hale De Getirebilirsiniz (Örneğin Formdan Bilgi Alıp Ona Göre Veritabanı/Tablo Oluşturmak Ya da Querystring İle Adres Satırından Gelen İsme Göre Veritabanı Oluşturmak Gibi).
ASP ile veritabanı ve tablo oluşturabildiğiniz gibi, veritabanı ve tabloları da silebilirsiniz.
Tablo SilmekTablo silmek için DROP Table SQL sözcüğü kullanılır. Tablonun içindeki veriler dahil tabloyu tamamen siler. Kullanımı şu şekildedir:
<% objConn.Execute("DROP Table tblDeneme") %>Kodu Çalıştırdığınızda tblDeneme Adlı Tablonun Verileri Dahil Tamamı Silinecektir.
-
masumsunsen bunu yazdı:
-----------------------------Oldu galiba, ama arama sonuçları kısmında yapamadım,aynı şeyden onlarca çıkıyor.
"Select a.id,a.baslik,a.resim,h.id,h.baslik,h.resim from tb1 a,tb3 h where a.baslik and h.baslik like '%"&ara&"%'"
arama sonuçlarını bu şekil döküyorum,fakat aynı şeyden bir sürü çıkıyor.
-----------------------------
ortak bir id olmalı her tabloda ve sorgu içinde o idleri eşleştirmelisin.
Örnek veriyorum 2 tablom var. birisi uyeler diğeri uyelerin ayarları. uyeID ortak id alanı
SELECT a.uyeAD, a.uyeID, b.uyeID, b.ayar
FROM uyeler a, ayarlari b
WHERE a.uyeAD like '%"&ara&"%' AND a.uyeID=b.uyeID -
http://www.yazilimmutfagi.com/MakaleOku.aspx?Makale=TSQL+Join+islemlerinin+MantIgI+-+Inner+join+ve+Outer+join+KullanImlarI&MakaleKey=61f6992a-3b7d-43ec-92b0-bd5b3c240b9d
şunu bi oku hacım, böyle yaparak performansın içine etmiş oluyorsun access de buna fazlasıyla ihtiyacın olacak
-
Arkadaşlar şu cookie sorununa da bir çözüm bulabilir miyiz. Login bölümü altta,kod ve form..
DbYol=Server.MapPath("db.mdb")
set log=server.CreateObject("Adodb.Connection")
log.open"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& DbYol &";"
Function avla(byval hedef)
hedef = Replace(hedef ,">","",1,-1,1)hedef = Replace(hedef ,"<","",1,-1,1)hedef = Replace(hedef ,"''","",1,-1,1)hedef = Replace(hedef ,"'","",1,-1,1)hedef = Replace(hedef ,"#","",1,-1,1)hedef = Replace(hedef ,"*","",1,-1,1)hedef = Replace (hedef ,"`","",1,-1,1) hedef = Replace (hedef ,"&","",1,-1,1) hedef = Replace (hedef ,"'","",1,-1,1) hedef = Replace (hedef ,"Chr(34)","",1,-1,1) hedef = Replace (hedef ,"Chr(39)","",1,-1,1)
avla=trim(hedef)
end functionif Request.QueryString("cmd")="True" Then
Set Logon=Server.CreateObject("Adodb.recordset")
IlkSorguSql= " Select * from tbUsers where stMail='"&avla(Request.Form("mail"))&"' and stPassword='"&avla(Request.Form("Password"))&"'"
Logon.open IlkSorgusql,log
if Logon.eof Then
Response.Redirect("?Baslik=Kullanci adi veya sifreniz yanlis")
else
Session("Mail")=avla(Logon("stMail"))Session("Password")=avla(Logon("stPassword"))
Response.Redirect("index.asp")
end if
end if
<form action="<% if Session("Logon")="True" Then %>index.asp?cmd=True<% else %>?cmd=True<% end if %>" method="post" name="form1" id="form1">
Mail:
<input name="mail" type="text" id="mail" value="<% = avla(Request.Form("mail")) %>" />
Şifre:
<input name="Password" type="password" id="Password" value="<% = avla(Request.Form("Password")) %>" />
<input name="button2" type="submit" class="style43 " id="button2" value="Giriş" />
</form>