Sql sorgu sorunu

Kodla Büyü

BayDogru

Aktif Üye
Mesajlar
217
Elimde 3 tablo var
Tablo 1
id konuadi
Tablo2
id idtablo1 video
Tablo3
id idtablo2 hit

Tablo1 e ait elimde 3 adet tablo2 bikgisi var. Bu videolarin izlenip izlenmedigini tablo3 ile kontrol etmek istiyorum

Kullanici bir video izlesiginde diger videolari izlemis gibi gorunuyor. Sorguyu nasil yapabilirim.
 
Ne demek istediğini anlamadım. Karıştı ifadeler daha basit anlatabilir misin?Ayrıca Tablo 3 de sadece hit alanı varsa bu alanı Tablo 2 ye taşı. Neden 3.tabloyu oluşturdun?
 
Tablo2 kisinin gorecegi dersleri ayarliyor. Ilgili derse bastiginda o dersi izleyip izlemedigi tablo3 ile kotrol ediliyor. Bir konuya ait bir video oldugunda sorun yok ancak birden fazla video oldugunda hepsini izlemeden sadece birini izlese bile islem yapiliyor. Hem hepsini izlemewini istiyorum.
 
Bir tablo oluşturacaksın bu tabloda izleyen kişinin id sini ve izlediği videonun id ve ders id sini tutacaksın. Kod kısmında bir derse ait tüm videoların id sini bir listeye ekle. Kişinin o derse ait izlediği video id lerini başka bir listeye ekle. Sonra bu listeleri karşılaştırarak dersi bitirip bitiremediğini anlayabilirsin.
 
Tablo: Ders
DersID primary key autoincrement
DersAdi text

Tablo: Video
VideoID primary key autoincrement
DersID integer
VideoAdi text

Tablo:User
UserID primary key autoincrement
Username text
Password text

Tablo:History
KayitID primary key autoincrement
UserID integer
DersID integer
VideoID integer

İzlediği derse ait videloarı şöyle çekeceksin
SELECT * FROM History WHERE UserID=1 and DersID=1

buradaki 1 yerlerine querystringden veya sessiondan veri getireceksin tabi web sayfası oluşturuyorsan.

Derse ait videoları da
SELECT * FROM Video WHERE DersID=1 diyerek çekeceksin.

daha sonra çektiğin verilerdeki video sayılarına bakabilirsin eşitse bitirmiş demektir ya da izlemediği videoları da buradan izlemen gereken videolar şunlar diye ekranda gösterebilirsin.

veya kayıt sayısı için COUNT kullanabilirsin.
SELECT COUNT(*) FROM History WHERE UserID=1 and DersID=1
SELECT COUNT(*) FROM Video WHERE DersID=1 diyerek çekeceksin.

SQL COUNT kullanımına bakabilirsin.İyi çalışmalar.

https://www.w3schools.com/sql/sql_count_avg_sum.asp
 
Geri
Üst