• 12-11-2020, 13:39:39
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar benim size bir sorum olacak. elimde 2 tane tablom var birisi ürün diğeri de markamodel diye
    Markamodel tablosu içerisinde araç markaları ve modelleri yer alıyor. ürün tablosunda markamodel satırı ise, bunları sayısal olarak yazdırıyor.
    örneğin markamodel tablosunda x markası ürün tablomda değer olarak "1"i alıyor. diğer markalarda da bunlar değişiyor.
    ürünleri site içerisinde gösterirken benim request.querystring den gelen değeri almam gerekiyor. yani nasıl; ürün tablomdaki markamodel satırındaki sayısal değer ne ise; markamodel tablosundan bunu satırın başlığı olarak yazdırmam lazım. iki gündür denemediğim kombinasyon kalmadı ama sanırım çok basit bir şeyi atlıyorum.

    "SELECT *,(SELECT Baslik FROM MarkaModel WHERE MarkaModel.DataID=Urun.MarkaModel) AS MarkaModelAd FROM Urun", conn

    bu satır çalışıyor ancak hepsini aynı gösteriyor. yani gelen değere göre değil, seçili olan tek bir satırı alıp her üründe aynı markayı gösteriyor. bunu nasıl çözebilirim?
  • 12-11-2020, 13:45:11
    #2
    left,right,inner join biliyor musunuz hocam ?
  • 12-11-2020, 13:46:02
    #3
    ozgunatik adlı üyeden alıntı: mesajı görüntüle
    left,right,inner join biliyor musunuz hocam ?
    çok hakim değilim hocam sql tarafına
  • 12-11-2020, 13:46:56
    #4
    bkartas adlı üyeden alıntı: mesajı görüntüle
    çok hakim değilim hocam sql tarafına
    Bir bakın sorunuzun cevabı onlarda hocam
  • 12-11-2020, 13:46:58
    #5
    innerjoin araştırın hocam
  • 12-11-2020, 13:49:48
    #6
    markamodel e ayrı select de atabilirsin yada sorgunu bu şekilde değil şöyle "select u.*,mm.markamodelad from urun u inner join markamodel mm on u.markamodel.id=mm.markamodelid where u.urunid=id" düzenliyip çektiğin model e markamodel i ekle sitendede onu gösterebilirsin.
  • 12-11-2020, 14:08:40
    #7
    mysql de iç içe select sorguları düzgün çalışmayabilir tavsiyem join kullanmanız olur
    kısaca
    select arabalar.*,markalar.ad as 'araba markası' from arabalar inner join markalar on markalar.id=arabalar.markaId gibi
  • 12-11-2020, 14:16:22
    #8
    Arkadaşlar hepinize çok teşekkür ederim. Ancak sorunum tam olarak veriyi göstermekte değil. Verileri request.querystring'den gelecek veriye göre çekmekte.

    örneğin a ürünün markası b olsun
    c ürününün markası d olsun.

    benim buradaki asıl sorum, seçili üründe seçili markayı göstermek. innerjoin kullandığımda da iç içe select döngüsü yaptığımda da marka gözükmekte. sadece sorun şu, a ürününde de c ürününde de b markası gözüküyor.

    Mesela ürün içeriğini size nasıl çektiğimi göstereyim.

    SqlCommand cmdServis = new SqlCommand("SELECT * FROM Urun WHERE DataID="+ Request.QueryString["DataID"], conn); SqlDataReader drServis = cmdServis.ExecuteReader();

    if (drServis.Read()) {

    ltIcerik.Text = drServis["Icerik"].ToString();

    }

    gibi
  • 13-11-2020, 10:01:05
    #9
    Bu işlemleri tek sayfada yapma oop öğren biraz

    bu classın (yani model in)
    public class carsmodel { public carsmodel() {
    } public carsmodel(int ModelID) { ID = ModelID; } public int CarsID { get; set; } public string Name { get; set; } public int Status { get; set; } public DateTime CreationDate { get; set; } public string imagepath { get; set; } public string imagepath2 { get; set; } public string seflink { get; set; }

    }

    bu methodun olsun
    public carsmodel GetSelectModel(int entityID) {
    carsmodel icrk = null;
    MySqlCommand cmd = new MySqlCommand("select * from carsmodel where ModelID=@id", sql.SqlConn);
    cmd.Parameters.AddWithValue("@id", entityID);
    if (sql.SqlConn.State.ToString() != "Open")
    sql.SqlConn.Open();
    MySqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows) {
    if (dr.Read()){ icrk = new carsmodel(Convert.ToInt32(dr[0]))
    {
    CarsID = Convert.ToInt32(dr[1]),
    Name = dr[2].ToString(),
    Status = Convert.ToInt32(dr[3]),
    CreationDate = Convert.ToDateTime(dr[4]),
    imagepath = dr[5].ToString(),
    imagepath2 = dr[6].ToString(),
    seflink = dr[7].ToString()
    }; } }
    dr.Close();
    dr.Dispose();
    sql.SqlConn.Close();
    return icrk;
    }

    carsmodel cs = cds.GetSelectModel(convert.toint32(request.queryst ring("gelenid")));

    lblbilabila.text=cs.name;

    bunlar select atarsın istediğin yere buna başka bi tablo ekliceksen de bi üst mesajımda yazdığım şekilde yaz model olarak datarowların sonuna ekle.