![]() | |
| | #1 (permalink) |
| Eski toprak Üyelik Tarihi: 05/2003 Yer: TurKey
Mesaj: 1,623
|
Merhaba arkadaşlar foruma yeni üye oldum. üye olmadan önce 2 saattir forumu ve msjlarınızı inceliyorum. maşallah çoğunuz uzman olmuşsunuz iki haftadır cevabını bulamadığım bir sorum var, başka bir sitenin forumunda sorup da tatmin olamadığım cevapların (yine de saolsunlar) olduğu bir txti buraya yapıştırıyorum ilgilenirseniz çok memnun olurum. tahmin ettiğim kadarıyla oldukça basit bir soru ama asp de daha çok yeni olduğum için çözemiyorum şimdiden tşkler.. : Soru 1:merhaba arkadaşlar.. vt min içinde diyelim 5 tane sütunum var, id (oto), kategori (mesela:asp, delphi..), yazar(mesela:ali, veli..), konubaslik(mesela:response, menü..), mesaj (makale) bi sayfa yaptım, adı index.asp bu sayfada genel kategorileri listeliyorum. ASP DELPHI . . fakat vt ye kayıt sistemini biraz farklı yaptım (daha kısa bir yolunu bilmiyorum ) şöyle: ekleme bölümünde bu 4 tablonun textboxları (veya metin kutusu) var: kategori yaz : ...... (Bunları kaydediyorum ve yeni öğrendiğim distinctkomutu) yazar adı : ...... (ile index.asp sayfasında görüntülüyorum. ) Konu başlığı : ...... Mesaj : ...... index.asp sayfası kategorilerin listelendiği sayfa. kayıt girişi yapılırken birden fazla kişi aynı kategori altında mesaj yazabilme ihtimali olduğu için bu yüzden distinct komutu ile sütundaki aynı isimli verileri bir defa görüntülettiriyorum. asıl sorunum şu:diyelim index.asp sayfasında vt deki kategorileri listelettirdim (SQL = "Select distinct kategori from kategoriler order by kategori desc") peki bunların linklerini nasıl ayarlıcam. (kaynaklar.asp sayfasında da yazarların mesajlarının başlıklarını listelemek istiyorum. (konubaslik)) link için: <a href="kaynaklar.asp?id=<%=rs("kategori")%>" style="text-decoration: none"><span style="font-size: 11pt"><%= rs("kategori") %></span></a> komutunu yazdım ama olmuyor "Öğe, istenen ad veya sıra sayısı ile ilişkili derleme içinde bulunamıyor." hatası alıyorum. yardımlarınızı bekliyorum kolay gelsin... -------------------------------------------------------------------------------------------------------------------- cevap 1: sorun kaynaklar.asp deki vertabanı bağlantısında o zaman oradaki komutları doğru yazmamış olabilirsin çünkü anladığım kadarıyla kategoriyi listeliyor fakat linklere yıklayın kaynaklar.asp o kategoriyi bulamıyor değil mi? böyle ise sorun burada değil. kaynaklar.asp kodlarına bakmak lazım --------------------------------------------------------------------------------------------------------------------- soru 2 : ilginiz için tşk ederim ama sorunum tam olarak bu değil: kategoriler bulunup listeleniyor fakat istediğim gibi listelenmiyor.. yani ben kategoriler ana sayfasında hangi kategoriye tıkladıysam açılan sayfada o kategorinin yazarının listelenmesini istiyorum fakat program tüm yazarları listeliyor. mesela kat ana sayfada asp delphi c++ kategorilerim var ben asp ye tıklayınca asp yazarlarının listelenmesini istiyorum ama o asp+delphi+c kategorisindeki tüm yazarları listeliyor. vt tablosundaki sütun bilgilerini de vereyim kısaca: bir tablodan bu işlemi yürütüyorum. kategoriler tablosu.. sütunlarım: id (oto), kategori, yazar, konubaslik, mesaj işte sütunlarum.. her bir kayıtta bu alanların hepsi de dolduruluyor. yani burada en çok tekrar eden alan kategori alanı bu yüzden bir den fazla id de aynı kategori ismi verilebiliyor. bu yüzden kategori ana sayfasındaki listelemeyi distinct omutu ile yapıyorum ki aynı alan (kategori) kayıtlarını bir kere gösteriyor. ama her hangi bir kategoriye (delphi) tıklayınca sadece delphi nini yazarlarını sıralayacağına tüm kategorilere kayıtlı yazarları sıralıyor.. yardımınızı bekliyorum tşk ler.. ------------------------------------------------------------------------------------------------------------------------ cevap 2 : kategoriye göre yazarları listeleyen komutları gönderirsen daha iyi olur hatanın ufak bir hata olduğunu tahmin ediyorum son listeyi çıkaran select komutu nedir ------------------------------------------------------------------------------------------------------------------------ soru 3 : index.asp (kategoriler) ana sayfasının vt bağlantı kodları; <% Set baglanti = Server.CreateObject("ADODB.Connection") baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("***.mdb") set rs = Server.CreateObject("ADODB.RecordSet") SQL = "Select distinct kategori from kategoriler order by kategori desc" rs.open SQL,baglanti,1,3 %> ....... ....... ....... <a href="index.asp?kategori=<%=rs("kategori")%>" style="text-decoration: none"><span style="font-size: 11pt"><%= rs("kategori") %></span></a> </td> <%rs.movenext Next %> ----------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- yazarindex.asp sayfasının vt bağlantı kodları; <% Set baglanti = Server.CreateObject("ADODB.Connection") baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("***.mdb") set rs = Server.CreateObject("ADODB.RecordSet") SQL = "Select yazar, kategori from kategoriler order by kategori='kategori' desc" rs.open SQL,baglanti,1,3 %> ...... ...... ...... <a href="yazarindex.asp?yazar=<%=rs("yazar")%>" style="text-decoration: none"><span style="font-size: 11pt"><%= rs("yazar") %></span></a> </td> <%rs.movenext Next %> işte kodlar bunlar.. soruyu kısaca tekrar edeyim: kategoriler tablosu var içinde id, kategori, yazar, yazibaslik, mesaj kategoriler ana sayfasında (index.asp) "kategori" sütunundan çağırılan konu başlıkları (asp, delphi..) gösteriliyor. mesala asp kategorisinin linkine tıkladığımızda asp konusunda yazı yazan yazarların adları listelenecek. (yazarindex.asp de) delphi kategorisine tıkladığımızda bu kategorideki yazarlar listelenecek.. daha sonra yazarindex.asp sayfasında listelenen yazarlardan birine tıkladığımızda o yazara ait makalelerin konu başlıkları da baslik.asp de listelenecek.. son olarak da listelenen makale konu başlıklarından birine tıkladığımızda ise makale.asp sayfasında o makale nin tam metni görüntülenecek.. vt sütunlarına bir örnek, kategoriler tablosu; ------------------------------------------------------------------------------- id (auto) kategori yazar yazibaslik mesaj ------------------------------------------------------------------------------- 1 ASP Ali Demir Asp'ye giriş (makale metni) 2 ASP Erkan Aslan Response nesnesi (makale metni) 3 Delphi Mehmet Durmaz Delphi IDE (makale metni) 4 ASP Ali Demir Asp de Vtabanı (makale metni) 5 c++ Erkan aslan pointerlar (makale metni) 6 Asp Ömer Yan request nesnesi (makale metni) ------------------------------------------------------------------------------- görüldüğü gibi aynı kategori de birden fazla yazar makale yazabiliyor.. ya da aynı yazar bir den fazla kategoride de yazabiliyor.. yardımlarınızı bekliyorum tşkler.. -------------------------------------------------------------------------------------------------------------------------- cevap 3 : yazarindex.asp sayfasının vt bağlantı kodları; <% Set baglanti = Server.CreateObject("ADODB.Connection") baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("*.mdb") set rs = Server.CreateObject("ADODB.RecordSet") SQL = "Select yazar, kategori from kategoriler WHERE kategori='kategori' ORDER BY yazar desc" rs.open SQL,baglanti,1,3 %> ...... kodu byu şekilde değiştir ORDER BY sıralamayı neye göre yapacağını belirtir sen ise kategorinin ne olacağını belirtiyorsun onun için WHERE kullanmalısın WHERE sanki vb deki if-else gibi düşünebilirsin benim yazdığımda ORDER BY ile sıralamayı yazar isimleirne göre yapıyor sadece istersen yazmayabilirsin ORDER BY yazar kısmını -------------------------------------------------------------------------------------------------------------------------- soru 4 : "Ya BOF ya da EOF Doğru veya geçerli kayıt silinmiş. İstenen işlem geçerli bir kayıt gerektiriyor." vt de kayıt olmasına rağmen bu hatayı veriyor vt kodlarını aynı sizin dediğiniz gibi yazıyorum. ama where kullanmayınca listeliyor da önce de söyledim, istediğim gibi listelemiyor. kusura bakmayın yardımlarınızı bekliyorum.. -------------------------------------------------------------------------------------------------------------------------- cevap 4 : yazarindex.asp sayfasının vt bağlantı kodları; <% Set baglanti = Server.CreateObject("ADODB.Connection") baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("*.mdb") set rs = Server.CreateObject("ADODB.RecordSet") SQL = "Select yazar, kategori from kategoriler WHERE kategori='" SQL =SQL & kategori & "' ORDER BY yazar desc" rs.open SQL,baglanti,1,3 %> kategori değişkenini unutmuşuz onu öylece kullanamayız ifadede sanırım başka sorun yoktur where kullandığında hepsini listelemesi doğru çünkü koşul komutu değil where komutunda hata veriyor çünkü kategori='kategori' yazdığımızda tırnak içindeki kategori yi değişken olarak ankamıyor ve kategorisi kategori yazan kayıtlarını arıyor.dolayısı ile bulamıyor -------------------------------------------------------------------------------------------------------------------------- soru 5 : SQL = "Select yazar, kategori from kategoriler WHERE kategori='" SQL =SQL & kategori & "' ORDER BY yazar desc" kardeş bu kodun aynısını yazdım ama aynı hatayı yine alıyorum.. veri bulunamadı.. lütfen yardımlarını bekliyorum.. |
| | |
| | #2 (permalink) |
| Registered User Üyelik Tarihi: 01/2003
Mesaj: 6,337
|
Bu yapiyla da dediklerini yapmak mumkun ama isi fazla ilerletmeden once veritabaninin tasarimini duzeltmen lazim. Oncelikle su tablolari olusturacaksin: tbl_kategori --------------- kategori_id kategori_adi tbl_yazar ----------- yazar_id yazar_adi tbl_yazi ------------ yazi_id yazi_baslik yazi_metin yazi_yazar_id yazi_kategori_id Bu degisiklikleri yapmayi dusunursen devamini yazabilirim. |
| | |
| | #3 (permalink) |
| Eski toprak Üyelik Tarihi: 05/2003 Yer: TurKey
Mesaj: 1,623
|
hocam tamam işi oldu bil. inşallah soruyu ii anlatabilmişimdir.. bu tabloları halletim. şimdi kod sayfalarını nasıl yapacağım tablo ilişkilendirme die bişey varmış access ta tablo filan ilişkilendirilecek mi bu soruda neese cevabınızı bekliyorum tşkler..
__________________ Güçlü bir TÜRKİYE için önce güçlü bir TÜRKÇE! |
| | |
| | #4 (permalink) |
| Registered User Üyelik Tarihi: 01/2003
Mesaj: 6,337
|
Evet, tablolar iliskilendirilecek. tbl_kategori tablosundaki kategori_id, tbl_yazar tablosundaki yazar_id ve tbl_yazi tablosundaki yazi_id alanlari autonumber tipinde olacak. Ara not: autonumber, aslinda long integer (uzun tamsayi) tipindedir. tbl_yazi tablosundaki yazi_yazar_id ve yazi_kategori_id alanlari ise long integer (uzun tamsayi) tipinde olacak. Tipleri ve icerdikleri bilgi ayni oldugu icin tablolari su alanlar araciligiyla iliskilendirebiliriz: * tbl_kategori.kategori_id >>> tbl_yazi.yazi_kategori_id * tbl_yazar.yazar_id >>> tbl_yazi.yazi_yazar_id Iliskilendirmeyi yapmak icin Access'de mdb dosyani actiktan sonra bos alana mouse sag tus ile tiklayip acilan menuden relationship (iliski...) secenegini sececeksin. Butun tablolari relationship sayfasina ekledikten sonra mouse'la alani tutup, iliskilendirecegin tablodaki ilgili alanin ustune birakacaksin. Enforce referential integrity (veri tutarliligina zorla) ve Cascade update related fields (guncelle...) seceneklerini aktif hale getireceksin. Yalniz bu islemlerde sorun cikmamasi icin bu islemleri yapmadan tablolarina veri girme. Yoksa bu kurallari bozan veri iceren tablolar iliskilendirilemez. |
| | |
| | #7 (permalink) |
| Eski toprak Üyelik Tarihi: 05/2003 Yer: TurKey
Mesaj: 1,623
|
tablo ilişkilendirme olayını hallettim.. kodları ayarlıyamıyorum.. kategoriler ana sayfasındaki bir linke tıkladığım zaman o kategoride makale yazmış olan yazarları sıralamasını istiyorum. (sadece o kategorideki yazarları..) 4 adet sayfam var: 1-kategori.asp 2-yazar.asp 3-makale_baslik.asp 4-makale.asp kısaca şöyle izah edeyim:kategori.asp den bi konu seçilecek, açılan yazar.asp den bir yazar seçilecek, açılan makale_baslik.asp sayfasından seçilen yazara ait makale başlıklarından biri seçilecek, ve seçilen makale de makale.asp sayfasında görüntülenecek.. kategori.asp sayfasına şööle bi kod ekledim kategorileri ilgili tablodan çağırıyor. ama oradan bir kategoriye tıkladığımda tüm yazar adlarını listeliyor. (bu arada kayıtları vt yi açarak elle girdim deneme bi kaç kayıt. daha kayıt giriş vs. sayfalarını hazırlamadım çünkü.. kategoriler, ve yazarlar tablolarına kayıt girdim fakat yazilar tablosuna kayıt girmeme izin vermiyor yanılmıyorsam ilişkilerden dolayı.. "kategoriler tablosunda ilgili kayıtlar olması gerektiğinden kayıt ekleyemez veya değiştiremezsiniz! " hatası aldım.) kategori.asp: <% Set baglanti = Server.CreateObject("ADODB.Connection") baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("vt1.mdb") set rs = Server.CreateObject("ADODB.RecordSet") SQL = "Select distinct kategori_adi from kategoriler where kategori_id" rs.open SQL,baglanti,1,3 %> <tr> <td width="5%" bgcolor="#000084"> <p align="center"> <img border="0" src="" width="9" height="9"></td> <td width="57%" bgcolor="#000084"> <a href="yazar.asp?.." style="text-decoration: none"><span style="font-size: 11pt"><%= rs("kategori_adi") %></span></a> </td> <%rs.movenext Next %> </tr> yazar.asp: <% Set baglanti = Server.CreateObject("ADODB.Connection") baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("vt1.mdb") set rs = Server.CreateObject("ADODB.RecordSet") SQL = "Select yazar_adi from yazarlar WHERE yazar_id" rs.open SQL,baglanti,1,3 %> <tr> <td width="5%" bgcolor="#000084"> <p align="center"> <img border="0" src="" width="9" height="9"></td> <td width="57%" bgcolor="#000084"> <a href="makale_baslik.asp?.." style="text-decoration: none"><span style="font-size: 11pt"><%= rs("yazar_adi") %></span></a> </td> <%rs.movenext Next %> </tr> böyle bişeyler işte.. linklerin kodunun da nasıl olcaanı bilmiyorum. ??? <a href="makale_baslik.asp?.." style="text-decoration: none"><span style="font-size: 11pt"><%= rs("yazar_adi") %></span></a>??? yardımlarınızı bekliyorum arkadaşlar şimdiye kadar ki yardımınız için de tşke ederim.. iyi çalışmalar...
__________________ Güçlü bir TÜRKİYE için önce güçlü bir TÜRKÇE! |
| | |
| | #8 (permalink) |
| Registered User Üyelik Tarihi: 01/2003
Mesaj: 6,337
|
Kategorileri siralarken su sorguyu kullanacaksin: strSQL = "SELECT * " & _ "FROM tbl_kategori " & _ "ORDER BY kategori_adi;" DISTINCT kullanmana gerek yok cunku kategori tablosunda, kategori ismi sadece bir kere gececek. Bir kategoride yazi yazmis yazarlari listelemek icin * once o kategorinin numarasini alacaksin (kategori_id) * sonra su sorguyu kullanacaksin: strSQL = "SELECT yazar_adi, yazar_id " & _ "FROM tbl_yazar INNER JOIN tbl_yazi " & _ "ON tbl_yazar.yazar_id = tbl_yazi.yazi_yazar_id " & _ "WHERE yazi_kategori_id = " & clng(kategori_id) & " " & _ "GROUP BY yazar_adi, yazar_id " & _ "ORDER BY yazar_adi;" Bir yazara ait yazilari listelemek icin * once yazar numarasini alacaksin (yazar_id) * sonra su sorguyu kullanacaksin strSQL = "SELECT * " & _ "FROM tbl_yazi " & _ "WHERE yazi_yazar_id = " & clng(yazar_id) & ";" (Bunu sormamissin ama) bir kategoriye ait olan yazilari listelemek icin: * once kategori numarasini alacaksin (kategori_id) * sonra su sorguyu kullanacaksin: strSQL = "SELECT * " & _ "FROM tbl_yazi " & _ "WHERE yazi_kategori_id = " & clng(kategori_id) & ";" Bir yazinin bilgilerini almak icin * once yazinin numarasini alacaksin (yazi_id) * sonra su sorguyu kullanacaksin: strSQL = "SELECT * " & _ "FROM tbl_yazi " & _ "WHERE yazi_id = " & clng(yazi_id) & ";" Linkler icin id alanlarini kullanacaksin. yazar_id, kategori_id, yazi_id ... Mesela bir kategorideki yazarlari listeleyecegin sayfaya su sekilde link vereceksin (5 numarali kategoride yazi yazmis olan yazarlari lsitelemek icin): yazarlar.asp?kategori_id=5 |
| | |
| | #10 (permalink) |
| Registered User Üyelik Tarihi: 01/2003
Mesaj: 6,337
|
[QUTE]kategoriler, ve yazarlar tablolarına kayıt girdim fakat yazilar tablosuna kayıt girmeme izin vermiyor yanılmıyorsam ilişkilerden dolayı.. "kategoriler tablosunda ilgili kayıtlar olması gerektiğinden kayıt ekleyemez veya değiştiremezsiniz! " hatası aldım.) [/quote] tbl_yazi adli yazilarin yer aldigi tabloya kayit girerken * yazi_yazar_id alanina, tbl_yazar tablosunda var olan bir yazarin numarasini (yazar_id) gireceksin. Adini degil... * yazi_kategori_id alanina, tbl_kategori tablosunda var olan bir kategorinin numarasini (kategori_id) yazacaksin. Adini degil... |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| Acil: C# ile access (mdb) nasıl bağlanabilirim? | nooaa | C# | 1 | 08/08/2008 13:38 |
| access yardım! | mavimser | Veritabanları & SQL | 0 | 23/03/2007 17:13 |
| arkadaşlar acil basic ve access 'le ilgili örnek | shnan | Visual Basic | 1 | 24/02/2007 11:08 |
| Access ile açılır menülerde çoklu seçim... çok acil... | Webplast | Veritabanları & SQL | 5 | 15/12/2004 12:44 |
| access de çıkartma işlemi (acil) | SHAKAK | Veritabanları & SQL | 4 | 15/07/2004 16:28 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |