O

Çavuş
21 Ağustos 2004
Tarihinde Katıldı
Takip Ettikleri
0 üye
Görüntülenme (?)
89 (Bu ay: 0)
Gönderiler Hakkında
O
3 yıl
Oracle\u0027da Tüm Tablo ve Sequences Değerlerini Drop Edelim
Oracle veritabanı ile çalışırken tüm veritabanını silmeden içerisindeki tablo ve sequences değerlerini silelim.


Kimi zaman başka veritabanlarında çalışırken ihtiyaç duyulan bazı kritik noktaları bir yerlere not edip başkalarının da yararlanmasında fayda görmekteyim. Kısa bir giriş sonrası makalemizden bahsecek olursak; veritabanında tüm tablo ve onlara bağlı sequence değerlerini ortadan kaldırmaya çalışacağız.

Oracle Tablo ve Sequence Drop
BEGIN
for i in (select 'drop sequence "'||sequence_name||'"' tb from USER_SEQUENCES)
loop
execute immediate i.tb;
end loop;
for i in (select 'drop table "'||table_name||'" cascade constraints' tb from user_tables)
loop
execute immediate i.tb;
end loop;
commit;
END;

Öncelik olarak tablolara bağlı olan sequence değerlerini drop ettik daha sonra ise tabloları drop etmiş olduk. Böylece tertemiz bir veritabanı elde etmiş olduk.

Kanak:
https://www.ontedi.com/sql/oracleda-tum-tablo-ve-sequences-degerlerini-drop-edelim
O
4 yıl
Bat Dosyası ile SQL Server Veritabanları Yedekleme İşlemi
Veritabanı ile çalışmanın en zorlu kısımlarından birisi de şüphesiz ki yedekleme işlemidir. Bu bölümde veritabanlarını tek tek değil de bütün bir şekilde topluca yedekleme işlemi yapacağız.
Öncelik olarak yedeklemeye dahil olacak olan veritabanlarının ekran görüntüsünü paylaşalım.

Veritabanları
< Resime gitmek için tıklayın >


Sonrasında tüm veritabanlarını yedekleyeceğimizi bildirmiştik. Bu noktada ufak bir yedekleme sql scripti yazalım

SQL Yedekleme Scripti
DECLARE @DosyaAdi VARCHAR(50)
DECLARE @Patika VARCHAR(256)
DECLARE @DosyaAdiYeni VARCHAR(256)
DECLARE @DosyaAdiEk VARCHAR(20)
SET @Patika = 'D:\yedekler\'
SELECT @DosyaAdiEk = CONVERT(VARCHAR(20), GETDATE(), 120);
SET @DosyaAdiEk = REPLACE(@DosyaAdiEk, ' ','-')
SET @DosyaAdiEk = REPLACE(@DosyaAdiEk, ':','')
DECLARE dbCursor CURSOR READ_ONLY FOR
SELECT name FROM master.sys.databases WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb') AND state = 0 AND is_in_standby = 0
OPEN dbCursor
FETCH NEXT FROM dbCursor
INTO @DosyaAdi
WHILE @@FETCH_STATUS = 0
BEGIN
  SET @DosyaAdiYeni = @Patika + @DosyaAdi + '_' + @DosyaAdiEk + '.bak'
  BACKUP DATABASE @DosyaAdi TO DISK = @DosyaAdiYeni;
  FETCH NEXT FROM dbCursor
  INTO @DosyaAdi
END
CLOSE dbCursor
DEALLOCATE dbCursor

Not: Script içerisinde SET @Patika = 'D:yedekler' şeklinde nereye yedekleneceğini belirttik. Sizler onu kendi değerlerinize göre düzenleyebilirsiniz.
SQL Server Management Studio üzerinde bu scripti çalıştıralım.

Scripti Çalıştıralım
< Resime gitmek için tıklayın >


Yedekleme sonuçlarını alt kısımda bize bildirmiş oldu. Yedekleme klasörünü kontrol edelim.

Yedeklenen Veritabanları
< Resime gitmek için tıklayın >


Buraya kadar her şey iyi gitti. Sıra geldi bat dosyası ile bu scripti "SQL Server Management Studio" tarzı bir arayüze girmeden yapmaya çalışalım.
Ben sql scripti ve bat dosyasını masaüstünde çalıştıracağım için patikalar masaüstü olacak şekilde ayarlı. Bat dosyası ve sql scriptinin masaüstündeki ekran görüntülerini paylaşalım.

Bat ve SQL Dosyası
< Resime gitmek için tıklayın >

Bat dosyasının içeriğini kontrol edelim.

Bat Dosya İçeriği
< Resime gitmek için tıklayın >


İşaretli olan kısımları SQL Server bilgilerine ve yedekleme scriptinin patikasına göre dolduralım. Daha sonra bat dosyasını çalıştıralım.

Bat Dosyasını Çalıştıralım
< Resime gitmek için tıklayın >


Bat dosyasının çalışması sonrasında yedekleme klasörümüzü kontrol edelim. Yedekler oluştu mu diye.

Bat Çalışma Sonrası Yedekler
< Resime gitmek için tıklayın >

Örnek olması açısından dosyaları indirip kendi bilgilerinize göre yedekleme işlemlerini yapabilirsiniz.

Script üzerinde biraz daha detaylı çalışılarak otomatik yedekleme işlemleri yapılabilir. Mesela bat dosyasını windows zamanlanmış görevlerde çalıştırabilirsiniz. Böylece istediğniz zaman otomatik yedekleme işlemleri başlamış olacaktır.


Kaynak: https://www.ontedi.com/sql/bat-dosyasi-ile-sql-server-veritabanlari-yedekleme-islemi
O
5 yıl
Çocuk Etkinlikleri Uygulaması Yayında
Ebeveynler için harika bir "Çocuk Etkinlikleri" uygulaması yayında.

Çocuğunuzla etkinlik yaparken hem kaliteli zaman geçirebilirsiniz, hem de çocuğunuzun birçok gelişim alanını destekleyebilirsiniz.

Özellikleri:
- Yaş gruplarına göre etkinlikler
- Kolay ve pratik
- Eğitici
- Beğendiğiniz etkinlikleri favorilere ekleyin ve kolayca ulaşın.
- Her türlü öneri, görüş, soru ve sorun için hızlı iletişim bölümü.
- Türkçe, İngilizce, Almanca, Rusça, İspanyolca, Fransızca

Uygulama Adresi:
https://play.google.com/store/apps/details?id=mikrosistem.etkinliklerv1



Uygulama içi görseller.

Yaş Gruplarına Göre Kategoriler
< Resime gitmek için tıklayın >





Yaş Gruplarına Göre Kategoriler
< Resime gitmek için tıklayın >



Yaş Kategorisi Detayı
< Resime gitmek için tıklayın >



Yaş Kategorisi Detayı

< Resime gitmek için tıklayın >




Etkinlik Detayı
< Resime gitmek için tıklayın >




Beğendiğiniz Etkinliği Favorilere Ekleyin
< Resime gitmek için tıklayın >




Her Türlü Soru, Öneri ve Görüşleriniz için "Bize Ulaşın" Bölümü
< Resime gitmek için tıklayın >
O
5 yıl
Arama Motoru Optimizasyonu (SEO) Uygulaması Yayında
Uzun süredir üzerinde çalıştığım işinize fazlasıyla yarayacağını düşündüğüm uygulamayı sonunda yayına alabildim.
Kısaca uygulamamız sayesinde;
- Türkçe ve İngilizce olarak iki dilde kullanılabilmektedir.
- Seo Analiz
- Domain Takip
- Hosting Takip
- Ip Whois
- MD5, SHA-1, SHA-256 Şifreleme
- Notlar
- Site Analiz (Ahref, Alexa vb..) (Yakında)
- Alanadı Bildirimi (Yakında)

İşlemlerini rahat bir şekilde yapabilmektesiniz. Böylece sitelerinize ait önemli notları, uyarıları ve geliştirmeleri tek bir uygulama ile kolay bir yönetibileceksiniz. SEO analizleri sayesinde sitenizde güncel SEO kurallarını uygulayabileceksiniz. Uygulamamız SEO kuralları değiştiği sürece güncellenecektir. Sitelerinizi SEO kuralları ile bir adım öne çıkarın. Ayrıca şifreleme bölümü ile kolay bir şekilde MD5, SHA-1 ve SHA-256 şifreleme işlemlerini yapabileceksiniz.

Uygulamamıza ait bölümler yakın zamanda diğer versiyonlar ile daha da artacaktır.

Uygulama Adresi: https://play.google.com/store/apps/details?id=mikrosistem.seov1


Karşılama Ekranı
- Uygulamanın tanıtım ekranı.

< Resime gitmek için tıklayın >


Seo Analiz Ekranı
- Web sitelerinin seo analizini bu bölümden yapabilirsiniz.
< Resime gitmek için tıklayın >




Seo Analiz Ekranı
< Resime gitmek için tıklayın >

Seo Analizi Yapılan Siteler Ekranı
< Resime gitmek için tıklayın >

Domain Whois Ekranı.
- Web sitelerine ait whois sorgulaması ve kaydını bu ekrandan yapabilirsiniz.
- Ayrıca web sitelerine ait hosting tarihlerini de kayıt altına alabilirsiniz.
- Böylece hostinglerinizi daha rahat takip edebileceksiniz.
< Resime gitmek için tıklayın >

Domain Whois
< Resime gitmek için tıklayın >

Ip Whois
- Ip Adreslerinin Bölge, Şehir, Koordinat Bilgilerini Sorgulayabiliyoruz.
< Resime gitmek için tıklayın >


Şifreleme Araçları
- Bir değerin MD5, SHA1, SHA-256 hashlerini bu bölümden oluşturabilirsiniz.
< Resime gitmek için tıklayın >
Notlar bölümü.
- Bu bölümde önemli notları kaydedebilir, güncelleyebilirsiniz.
< Resime gitmek için tıklayın >

Notları güncelleme ekranı
< Resime gitmek için tıklayın >
O
6 yıl
SQL Server\u0027da STUFF Fonksiyonuyla Birden Fazla Kaydı Tek Satırda Gösterme İşlemi
Veritabanı işlemleri yaparken bir kayda karşılık gelen birkaç farklı kaydı tek satırda göstermemiz gereken durumlar için kısa bir makale ile sizlerleyiz.

Elimizde şehirlerin ve ilçelerin olduğu iki tane tablo olduğunu düşünelim. Şehirler tablosunu inşaa edelim.

tblSehirler Tablosu

CREATE TABLE tblSehirler
(
sehir_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1) ,
sehir_adi VARCHAR(255)
)

INSERT INTO tblSehirler (sehir_adi) VALUES ('Adana')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Adıyaman')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Afyon')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Ağrı')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Amasya')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Ankara')


Oluşan şehirler tablosunun görselini paylaşalım.

Şehirler Tablosu
< Resime gitmek için tıklayın >


İlçeleri de oluşturalım.

tblIlceler Tablosu
CREATE TABLE tblIlceler
(
ilce_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1) ,
sehir_ID INT,
ilce_adi VARCHAR(255)
)

INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Seyhan')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Ceyhan')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Yüreğir')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Sarıçam')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Çukurova')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (2, 'Kahta')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (2, 'Gölbaşı')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (2, 'Gerger')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Başmakçı')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Bayat')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Bolvadin')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Dinar')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (4, 'Diyadin')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (4, 'Doğubayazıt')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (4, 'Patnos')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (5, 'Göynücek')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (5, 'Gümüşhacıköy')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (5, 'Hamamözü')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Akyurt')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Altındağ')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Balâ')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Keçiören')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Çankaya')


Oluşan ilçeler tablosunun görselini paylaşalım.

İlçeler Tablosu
< Resime gitmek için tıklayın >


Şimdi ise her şehire karşılık gelen tüm ilçeleri her şehirden tek kayıt gelecek şekilde yazalım.

STUFF Sorgusu
SELECT A.sehir_ID, A.sehir_adi AS Sehir,
STUFF
(
(
SELECT
', ' + ilce_adi
FROM tblIlceler AS B
WHERE A.sehir_ID = B.sehir_ID
FOR XML PATH('')
), 1, 1, ''
) AS Ilceler
FROM tblSehirler AS A


Kodlarımızın sonucuna ait görseli paylaşalım.

Sonuç
< Resime gitmek için tıklayın >


Bol sorgulu günler.

Kaynak: https://www.ontedi.com/sql/sql-serverda-stuff-fonksiyonuyla-birden-fazla-kaydi-tek-satirda-gosterme-islemi
O
6 yıl
SQL Server\u0027da Yıl, Ay ve Gün Farkı Gösterimi
Uygulamalarınızda iki tarih arasındaki değerleri A Yıl, B Ay, C Gün şeklinde gösterme gereği duyarız. Yaptığımız küçük bir uygulama ile bu gösterimi sağlamış olacağız.

Veritabanı işlemleri yaparken tarih verilerinin daha güzel bir gösterimi için bazı method yada fonksiyonlara ihtiyaç duyarız. Kısaca o fonksiyonu sizlere aktaralım. Fonksiyonumuz iki tane tarih verisi istemektedir. Verilen iki tarihi işledikten sonra gösterim olarak örneğin '2 Yıl 7 Ay 16 Gün' olarak bize geridönüş sağlamaktadır.

Tarih Fonksiyonu
CREATE FUNCTION dbo.fnYilAyGun
(
@BaslangicTarihi DATETIME,
@BitisTarihi DATETIME
)
RETURNS varchar(100)
AS
BEGIN
DECLARE @Yil INT
DECLARE @Ay INT
DECLARE @Gun INT
DECLARE @Sonuc VARCHAR(100)
SET @Yil = DATEDIFF(yy, @BaslangicTarihi, @BitisTarihi)
SET @Ay = DATEDIFF(mm, @BaslangicTarihi, @BitisTarihi) - (@Yil * 12)
SET @Gun = DATEDIFF(dd, @BaslangicTarihi, @BitisTarihi) - ((@Yil * 365) + (@Ay * 30))
IF (@Yil < 1)
BEGIN
SET @Yil = ''
END
IF (@Ay < 1)
BEGIN
SET @Ay = ''
END
IF (@Gun < 1)
BEGIN
SET @Gun = ''
END
SET @Sonuc = (' ' + CAST(@Yil AS VARCHAR(4)) + ' Yıl ' + CAST(@Ay AS VARCHAR(2)) + ' Ay ' + CAST(@Gun AS VARCHAR(2)) + ' Gün')
SET @Sonuc = REPLACE(@Sonuc, ' 0 Yıl', '')
SET @Sonuc = REPLACE(@Sonuc, ' 0 Ay', '')
SET @Sonuc = REPLACE(@Sonuc, ' 0 Gün', '')
RETURN @Sonuc
END


Fonksiyonumuzu yazdık, şimdi ise bunu SQL Server üzerinde oluştuğunu teyit edelim.
Oluşan Fonksiyon
< Resime gitmek için tıklayın >

Şimdi ise örnekler konuyu pekiştirmeye çalışalım.

Örnek 1
SELECT dbo.fnYilAyGun('2012-01-02', '2020-03-10') AS TarihFarki


Örnek 1 Sonuç
< Resime gitmek için tıklayın >

Örnek 2
SELECT dbo.fnYilAyGun('2018-04-20', '2018-05-28') AS TarihFarki


Örnek 2 Sonuç
< Resime gitmek için tıklayın >

Kaynak: https://www.ontedi.com/sql/sql-serverda-yil-ay-ve-gun-farki-gosterimi
O
6 yıl
JavaScript ile Vize Final Not Ortalaması Hesaplama
Son dönemlerde bazı arkadaşların bana bu konuda talepleri geliyordu. Gelen bu taleplere karşı kayıtsız kalmayıp JavaScript ile not ortalaması hesaplayan küçük bir uygulamayı sizlerle paylaşmak istedim.

Üniversite yıllarında çokca bu durumla karşı karşıya kalmışızdır. Şimdi de siteden mesaj gönderenlerin talebine karşılık bu makaleyi herkesin yararlanacağı şekilde açık edeyim. Kısaca bir özet geçtikten sonra malzemeleri hazırlayıp uygulamamızı yayına alalım.
Üniversite zamanlarımdan hatırladığım kadarıyla vize puanının %40'ı, final puanının %60'ı alınıp ortalama puan hesaplaması geçerli oluyordu.
Şimdi bu durumu biraz daha ucu açık olacak şekilde yapalım. Yani vize ile final yüzdelerini kullanıcının gireceği şekilde yapalım.
Öncelikle arayüz giydirmesi için HTML iskeletini yapalım.

HTML Betikleri
<div class="kapsul">
<div class="satir">
<div class="sutun">
<div class="input-kapsul">
<label class="baslik">Vize Notu</label>
<input type="text" class="input vize-notu" placeholder="Lütfen vize notunu giriniz" />
</div>
</div>
<div class="sutun">
<div class="input-kapsul">
<label class="baslik">Vize Yüzdesi</label>
<input type="text" class="input vize-yuzde" placeholder="Lütfen vize yüzdesi giriniz" />
</div>
</div>
</div>
<div class="satir">
<div class="sutun">
<div class="input-kapsul">
<label class="baslik">Final Notu</label>
<input type="text" class="input final-notu" placeholder="Lütfen final notunu giriniz" />
</div>
</div>
<div class="sutun">
<div class="input-kapsul">
<label class="baslik">Final Yüzdesi</label>
<input type="text" class="input final-yuzde" placeholder="Lütfen final yüzdesi giriniz" />
</div>
</div>
</div>
<div class="sonuc">

</div>
<div class="satir">
<div class="buton-kapsul">
<button class="buton hesapla">Hesapla</button>
</div>
</div>
</div>


HTML iskeleti üzerine giydirme yapmak için CSS kısmını hazırlayalım.
CSS Betikleri
*{margin:0;padding:0;font-family:inherit;}
body{font-family:'Arial',sans-serif;background-color:#f5f5f5;font-size:12px;line-height:20px;}
.kapsul{width:600px;position:relative;background:#fff;margin:10px auto;padding:10px;}
.ortalayici{width:600px;min-height:20px;margin:0px auto;text-align:center;}
.ortalayici h1{margin:0px;}
.ortalayici a{color:#BC5393;text-decoration:none;}
.satir{display:flex;flex:2;margin-bottom:10px;}
.satir .sutun{display:flex;flex:1;}
.input-kapsul{font-size:13px;height:auto;outline:none;box-shadow:inset 1px 2px 0 rgba(0, 0, 0, 0.06);border:1px solid #D9D9D9;background-color:#fff;width:calc(100% - 12px);margin:0px 5px !important;}
.input-kapsul .input{display:block;width:100%;height:34px;border:none;font-size:14px;line-height:1.42857143;color:#555;background-color:transparent;outline:none;padding:5px;}
.input-kapsul .baslik{display:block;font-weight:bold;color:#969696;font-size:10px;cursor:text;transition:all .25s ease;padding:5px 5px 0px 5px;}
.buton-kapsul{padding:0px 5px;}
.buton-kapsul .buton{background-color:#345370;padding:10px 20px;color:#fff;border:none;opacity:0.9;border-radius:4px;cursor:pointer;}
.buton-kapsul .buton:hover{opacity:1;}
.sonuc{padding:5px 5px 5px 40px;margin:5px;position:relative;}
.sonuc:before{position:absolute;top:50%;left:5px;color:#fff;font-size:20px;padding:5px;border-radius:50%;width:20px;height:20px;text-align:center;margin-top:-15px;}
.sonuc.basarisiz{border:1px solid #ff0000;}
.sonuc.basarisiz:before{content:'!';background:#ff0000;}
.sonuc.basarili{border:1px solid #008000;}
.sonuc.basarili:before{content:'✓';background:#008000;}


Oluşan Arayüz
< Resime gitmek için tıklayın >

Oluşan Arayüz
< Resime gitmek için tıklayın >

İskelet ve giydirme bitti. Şimdi buna aksiyon ekleme zamanı. Kısaca aksiyon şu şekilde ilerleyecek:
- Vize notunu girecek
- Vize yüzdesini girecek
- Final notunu girecek
- Final yüzdesini girecek
- Uygun koşullar sağlandığının kontrolü yapılacak (Girdiği herhangi bir notun 0'dan küçük ve 100'den büyük olmamasını sağlamak vb.. gibi)

JavaScript Betikleri
var divSonuc = document.querySelector('.sonuc');
var btnHesapla = document.querySelector('.hesapla');
btnHesapla.addEventListener("click", function(event) {
let flVizeNotu = 0;
let strVizeNotu = document.querySelector('.vize-notu').value;

let flVizeYuzde = 0;
let strVizeYuzde = document.querySelector('.vize-yuzde').value;

let flFinalNotu = 0;
let strFinalNotu = document.querySelector('.final-notu').value;

let flFinalYuzde = 0;
let strFinalYuzde = document.querySelector('.final-yuzde').value;

let strUyari = "";
if (strVizeNotu == '' || isNaN(strVizeNotu))
strUyari += "- Lütfen vize notu giriniz.<br />";
else
flVizeNotu = parseFloat(strVizeNotu);

if (strVizeYuzde == '' || isNaN(strVizeYuzde))
strUyari += "- Lütfen vize yüzdesi giriniz.<br />";
else
flVizeYuzde = parseFloat(strVizeYuzde);

if (strFinalNotu == '' || isNaN(strFinalNotu))
strUyari += "- Lütfen final notu giriniz.<br />";
else
flFinalNotu = parseFloat(strFinalNotu);

if (strFinalYuzde == '' || isNaN(strFinalYuzde))
strUyari += "- Lütfen final yüzdesi giriniz.<br />";
else
flFinalYuzde = parseFloat(strFinalYuzde);

if (flVizeNotu < 0 || flVizeNotu > 100)
strUyari += "- Vize notu 0-100 arasında olmalıdır.<br />";

if (flVizeYuzde < 0 || flVizeYuzde > 100)
strUyari += "- Vize yüzdesi 0-100 arasında olmalıdır.<br />";

if (flFinalNotu < 0 || flFinalNotu > 100)
strUyari += "- Final notu 0-100 arasında olmalıdır.<br />";

if (flFinalYuzde < 0 || flFinalYuzde > 100)
strUyari += "- Final yüzdesi 0-100 arasında olmalıdır.<br />";

if ((flVizeYuzde + flFinalYuzde) != 100)
strUyari += "- Vize ve Final yüzdeleri toplamı 100 olmalıdır.<br />";

divSonuc.classList.remove("basarili");
divSonuc.classList.remove("basarisiz");
if (strUyari != "")
{
divSonuc.classList.add("basarisiz");
divSonuc.innerHTML = strUyari;
}
else
{
let flVizeSonuc = ((flVizeNotu * flVizeYuzde) / 100);
let flFinalSonuc = ((flFinalNotu * flFinalYuzde) / 100);
let flSonuc = flVizeSonuc + flFinalSonuc;
divSonuc.classList.add("basarili");
divSonuc.textContent = "Sınav ortalamanız: " + flSonuc;
}
});


Ortalamayı geçmeniz dileğiyle :)

Kaynak: https://www.ontedi.com/javascript/javascript-ile-vize-final-not-ortalamasi-hesaplama
O
6 yıl
JavaScript ile İl, İlçe, Mahalle Örneği ve JSON Kullanımı
Bu makalemizde birbirine göre değişen select kutuları ve her değişim olayında uygun koşula göre kayıtların ilgili selecte doldurulması işlenecektir.

Makalemizi "İl, İlçe ve Mahalle" seçimlerine göre yapacağımızı belirtmekte fayda var. Ayrıca veritabanı kullanmadan direkt olarak bir JSON dosyasından ilgili kayıtları kullanacağız.

Öncelik olarak sehirler.json adlı dosyamızı oluşturup birkaç tane şehir girelim.
sehirler.json
[
{"sehir_ID":"1","sehir_adi":"Adana"},
{"sehir_ID":"2","sehir_adi":"Adıyaman"},
{"sehir_ID":"3","sehir_adi":"Afyon"},
{"sehir_ID":"4","sehir_adi":"Ağrı"}
]


Bu şehirlere karşılık uygun ilçeler oluşturalım.
ilceler.json
[
{"ilce_ID": "1", "sehir_ID":"1","ilce_adi":"Yüreğir"},
{"ilce_ID": "2", "sehir_ID":"1","ilce_adi":"Seyhan"},
{"ilce_ID": "3", "sehir_ID":"1","ilce_adi":"Ceyhan"},
{"ilce_ID": "4", "sehir_ID":"1","ilce_adi":"Çukurova"},
{"ilce_ID": "5", "sehir_ID":"1","ilce_adi":"Sarıçam"},
{"ilce_ID": "6", "sehir_ID":"1","ilce_adi":"Kozan"},
{"ilce_ID": "7", "sehir_ID":"1","ilce_adi":"Feke"},
{"ilce_ID": "8", "sehir_ID":"2","ilce_adi":"Besni"},
{"ilce_ID": "9", "sehir_ID":"2","ilce_adi":"Çelikhan"},
{"ilce_ID": "10", "sehir_ID":"2","ilce_adi":"Gerger"},
{"ilce_ID": "11", "sehir_ID":"2","ilce_adi":"Gölbaşı"},
{"ilce_ID": "12", "sehir_ID":"2","ilce_adi":"Kâhta"},
{"ilce_ID": "13", "sehir_ID":"2","ilce_adi":"Samsat"},
{"ilce_ID": "14", "sehir_ID":"2","ilce_adi":"Sincik"},
{"ilce_ID": "15", "sehir_ID":"3","ilce_adi":"Başmakçı"},
{"ilce_ID": "16", "sehir_ID":"3","ilce_adi":"Bayat"},
{"ilce_ID": "17", "sehir_ID":"3","ilce_adi":"Bolvadin"},
{"ilce_ID": "18", "sehir_ID":"3","ilce_adi":"Çay"},
{"ilce_ID": "19", "sehir_ID":"3","ilce_adi":"Çobanlar"},
{"ilce_ID": "20", "sehir_ID":"3","ilce_adi":"Dazkırı"},
{"ilce_ID": "21", "sehir_ID":"4","ilce_adi":"Diyadin"},
{"ilce_ID": "22", "sehir_ID":"4","ilce_adi":"Doğubayazıt"},
{"ilce_ID": "23", "sehir_ID":"4","ilce_adi":"Eleşkirt"},
{"ilce_ID": "24", "sehir_ID":"4","ilce_adi":"Hamur"},
{"ilce_ID": "25", "sehir_ID":"4","ilce_adi":"Patnos"},
{"ilce_ID": "26", "sehir_ID":"4","ilce_adi":"Taşlıçay"},
{"ilce_ID": "27", "sehir_ID":"4","ilce_adi":"Tutak"}
]


İlçeler de oluştuğuna göre bu ilçelere ait biraz mahalle ekleyelim.
mahalleler.json
[
{"mahalle_ID": "1", "sehir_ID":"1", "ilce_ID": "2", "mahalle_adi":"2000 Evler Mahallesi"},
{"mahalle_ID": "2", "sehir_ID":"1", "ilce_ID": "2", "mahalle_adi":"Ahmet Remzi Yüreğir Mahallesi"},
{"mahalle_ID": "3", "sehir_ID":"1", "ilce_ID": "2", "mahalle_adi":"Akkapı Mahallesi"},
{"mahalle_ID": "4", "sehir_ID":"1", "ilce_ID": "2", "mahalle_adi":"Alidede Mahallesi"},
{"mahalle_ID": "5", "sehir_ID":"1", "ilce_ID": "2", "mahalle_adi":"Bahçelievler Mahallesi"},
{"mahalle_ID": "6", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Gökgöz Mahallesi"},
{"mahalle_ID": "7", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Görbeyaz Mahallesi"},
{"mahalle_ID": "8", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Güneri Mahallesi"},
{"mahalle_ID": "9", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Hacıbeyli Mahallesi"},
{"mahalle_ID": "10", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Hacımirzalı Mahallesi"},
{"mahalle_ID": "11", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Hacıuşağı Mahallesi"},
{"mahalle_ID": "12", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Hamam Mahallesi"},
{"mahalle_ID": "13", "sehir_ID":"2", "ilce_ID": "11", "mahalle_adi":"Kurugeçit Mahallesi"},
{"mahalle_ID": "14", "sehir_ID":"2", "ilce_ID": "11", "mahalle_adi":"Yenikent Mahallesi"},
{"mahalle_ID": "15", "sehir_ID":"2", "ilce_ID": "11", "mahalle_adi":"Asfalt Mahallesi"},
{"mahalle_ID": "16", "sehir_ID":"2", "ilce_ID": "11", "mahalle_adi":"Yeni Mahallesi"},
{"mahalle_ID": "17", "sehir_ID":"2", "ilce_ID": "11", "mahalle_adi":"Kalemkas Mahallesi"},
{"mahalle_ID": "18", "sehir_ID":"1", "ilce_ID": "1", "mahalle_adi":"19 Mayıs Mahallesi"},
{"mahalle_ID": "19", "sehir_ID":"1", "ilce_ID": "1", "mahalle_adi":"Çamlıbel Mahallesi"},
{"mahalle_ID": "20", "sehir_ID":"1", "ilce_ID": "1", "mahalle_adi":"Dadaloğlu Mahallesi"},
{"mahalle_ID": "21", "sehir_ID":"1", "ilce_ID": "1", "mahalle_adi":"Dervişler Mahallesi"},
{"mahalle_ID": "22", "sehir_ID":"1", "ilce_ID": "3", "mahalle_adi":"Kelemeti Mahallesi"},
{"mahalle_ID": "23", "sehir_ID":"1", "ilce_ID": "3", "mahalle_adi":"Kösreli Mahallesi"},
{"mahalle_ID": "24", "sehir_ID":"2", "ilce_ID": "8", "mahalle_adi":"Tetirli Mahallesi"},
{"mahalle_ID": "25", "sehir_ID":"2", "ilce_ID": "8", "mahalle_adi":"Yukarı Sarhan Mahallesi"}
]


Yeterince veri oluştuğuna göre bunlara göre HTML betiklerimizi hazırlayalım.
HTML Betikleri

<div class="kapsul">
<div class="satir">
<p>Şehir:</p> <select id="select-sehirler"></select>
</div>
<div class="satir">
<p>İlçe:</p> <select id="select-ilceler"></select>
</div>
<div class="satir">
<p>Mahalle:</p> <select id="select-mahalleler"></select>
</div>
</div>


Oluşturduğumuz bu HTML betiklerinin nasıl göründüğüne bakalım.
< Resime gitmek için tıklayın >

Oluşan çıktı sonucunda select elementlerinin değerinin değişiminde (change) uygulanacak JavaScript (jQuery) betiklerini hazırlayalım.

JavaScript (jQuery) Betikleri
        let objSehirler = $('#select-sehirler');
objSehirler.empty();
objSehirler.append('<option selected="true" disabled>Seçiniz</option>');
objSehirler.prop('selectedIndex', 0);

const sehirlerjsonurl = '/sehirler.json';
$.getJSON(sehirlerjsonurl, function (data) {
$.each(data, function (a, b) {
objSehirler.append($('<option></option>').attr('value', b.sehir_ID).text(b.sehir_adi));
});
});

let objIlceler = $('#select-ilceler');
objIlceler.empty();
objIlceler.append('<option selected="true" disabled>Seçiniz</option>');
objIlceler.prop('selectedIndex', 0);
$(document).ready(function(){
$("#select-sehirler").on("change", function(){
let strSehir_ID = $(this).val();
fnIlceler_Doldur(strSehir_ID);
fnMahalleler_Doldur(null);
});
});
fnIlceler_Doldur = (parSehir_ID) => {
objIlceler.empty();
objIlceler.append('<option selected="true" disabled>Seçiniz</option>');
const ilcelerjsonurl = '/ilceler.json';
$.getJSON(ilcelerjsonurl, function (data) {
$.each(data, function (a, b) {
let strSehir_ID = b.sehir_ID;
if (parSehir_ID === strSehir_ID)
objIlceler.append($('<option></option>').attr('value', b.ilce_ID).text(b.ilce_adi));
});
});
}
let objMahalleler = $('#select-mahalleler');
objMahalleler.empty();
objMahalleler.append('<option selected="true" disabled>Seçiniz</option>');
objMahalleler.prop('selectedIndex', 0);
$(document).ready(function(){
$("#select-ilceler").on("change", function(){
let strIlce_ID = $(this).val();
fnMahalleler_Doldur(strIlce_ID);
});
});
fnMahalleler_Doldur = (parIlce_ID) => {
objMahalleler.empty();
objMahalleler.append('<option selected="true" disabled>Seçiniz</option>');
const mahallelerjsonurl = '/mahalleler.json';
$.getJSON(mahallelerjsonurl, function (data) {
$.each(data, function (a, b) {
let strIlce_ID = b.ilce_ID;
if (parIlce_ID === strIlce_ID)
objMahalleler.append($('<option></option>').attr('value', b.mahalle_ID).text(b.mahalle_adi));
});
});
}

Çalışmanız esnasında JSON dosyaları çağırılırken Access to XMLHttpRequest at from origin 'null' has been blocked by CORS policy hatası karşınıza çıkabilir. O nedenle çalışmayı bir sunucuda denemeniz daha sağlıklı sonuçlar elde etmenizi sağlar.


Yine de kendi bilgisayarınızda test etmek istiyorsanız bilgisayarınıza Visual Studio Code yükleyin. Ardından eklentiler kısmından Live Server eklentisini kurunuz. Daha sonra çalışma dosyalarınızı Visual Studio Code uygulamasıyla "Open Folder" diyerek bir proje olarak açın. Sonrasında ise html dosyamıza sağ tıklayıp "Open with Live Server" diyerek onu lokal olarak çalıştırabilirsiniz.


< Resime gitmek için tıklayın >

< Resime gitmek için tıklayın >


Bol uygulamalı günler.

Kaynak: https://www.ontedi.com/javascript/javascript-ile-il-ilce-mahalle-ornegi-ve-json-kullanimi
O
6 yıl
Instagram Video İndirme Aparatı, Eklentisiz, Yüklemesiz
Açıkcası bu işin Android uygulamasını yapmıştım çok fazla uzun sürmeden askıya alındı. Ben de bari biraz farklılık olsun diye web uyarlaması yaptım. Kullanıcı bilgilerinizi istemez. Gizli hesaplarda video bilgilerini getirmiyor bilginiz olsun.

https://www.ontedi.com/instagram-video-indir

Belirli sınırlamalar mevcuttur. Gelen taleplere göre sınır arttırılabilir. Gereksiz ise de konu silinebilir.
O
6 yıl
SQL Server\u0027da While Döngüsü Örnekleri
Programlama dillerinin vazgeçilmezi olan döngüler konusunu bu sefer SQL Server için örneklerle işleyeceğiz.

Bilindiği üzere programlama dillerinde belirli aralıktaki belirli düzene sahip dizi tipindeki değerleri yazdırmak için çeşitli döngüler mevcuttur. Bu döngülerden birisi de While döngüsüdür. Biraz daha açıklama yapmak gerekirse; "Belirli bir koşul sağlanıncaya kadar ilerle, ilerlerken şunları yap. Koşul sağlanınca olayı bitir."

Şimdi ise kullanım şekline bakalım
WHILE (Gidilecek Son Sınır)
BEGIN
// Burada uygun koşulları sağlayan değerlerle işlemler yapmak;
END

Örnek 1

DECLARE @SAYAC INT = 0
WHILE @SAYAC < 20
BEGIN
PRINT @SAYAC
SET @SAYAC = @SAYAC + 1
END

Örnek 1 Çıktısı
< Resime gitmek için tıklayın >


Örnek 2

DECLARE @SAYAC INT = 500
WHILE @SAYAC > 40
BEGIN
PRINT @SAYAC
SET @SAYAC = @SAYAC - 60
END

Örnek 2 Çıktısı
< Resime gitmek için tıklayın >


Örnek 3

DECLARE @Yazi VARCHAR(50) = 'BU MAKALE GAYET GÜZEL'
DECLARE @KarakterSayisi INT = LEN(@Yazi)
DECLARE @SAYAC INT = 0
WHILE @SAYAC <= @KarakterSayisi
BEGIN
PRINT SUBSTRING(@Yazi, @SAYAC, 1)
SET @SAYAC = @SAYAC + 1
END

Örnek 3 Çıktısı
< Resime gitmek için tıklayın >

Bol döngülü seyirler.
Kaynak: https://www.ontedi.com/sql/sql-serverda-while-dongusu-ornekleri
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.