folder Tahribat.com Forumları
linefolder Webmaster ve Yazılım Geliştiriciler
linefolder Asp'de 2 Farklı Tablodan Veri Çekmek Ne Güzel



Asp'de 2 Farklı Tablodan Veri Çekmek Ne Güzel

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    masumsunsen
    masumsunsen's avatar
    Kayıt Tarihi: 15/Aralık/2009
    Erkek

    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 function

     

    if 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.

     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Sharp
    Sharp's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    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

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    masumsunsen
    masumsunsen's avatar
    Kayıt Tarihi: 15/Aralık/2009
    Erkek

    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?

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Sharp
    Sharp's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    Select a.id,a.baslik,a.kategori,h.id,h.baslik,h.kategori from tb1 a, tb1 h

     

    bu şekilde denermisin hocam

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    masumsunsen
    masumsunsen's avatar
    Kayıt Tarihi: 15/Aralık/2009
    Erkek

    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.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    masumsunsen
    masumsunsen's avatar
    Kayıt Tarihi: 15/Aralık/2009
    Erkek

    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ı

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    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")

    :|
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    masumsunsen
    masumsunsen's avatar
    Kayıt Tarihi: 15/Aralık/2009
    Erkek

    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 Ekleme

    Tablo 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 Silmek

    Tablo 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.

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    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


    :|
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    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


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    masumsunsen
    masumsunsen's avatar
    Kayıt Tarihi: 15/Aralık/2009
    Erkek

    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 function

     

    if 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">

    <%=avla(Request.QueryString("Baslik"))%>

     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>

Toplam Hit: 3225 Toplam Mesaj: 12