Mysql

02.02.2024

Kayıt silme işlemlerinden sonra, tablo kayıt düzenleme ve AUTO_INCREMENT değerini ayarlama

Yazar: Admin

Bir tabloda yapılan kayıt silme işlemlerinden sonra, arada oluşan boşlukları aradan kaldırmak ve düzenlemek amacıyla, AUTO_INCREMENT değeri içeren sütundaki değerleri 1'den itibaren yeniden sıralama ve AUTO_INCREMENT değerini en son satır değerinden bir sonraki değere ayarlama işlemlerini aşağıdaki komutları kullanarak gerçekleştirebiliriz:


SET @count = 0;
UPDATE table_name SET table_name.id = @count:= @count + 1;

ALTER TABLE table_name AUTO_INCREMENT = 1

ALTER TABLE table_name AUTO_INCREMENT = 1 komutu tablonun AUTO_INCREMENT değerini, 1 sayısına değil, otomatik artan değerleri içeren sütunda yer alan maksimum değerin bir fazlasına ayarlar.

Detaylar

Php

01.02.2024

Mysql veri tabanına kayıtlı web sayfa içeriklerine yol tanımlaması ekleme

Yazar: Admin

Bir veritabanına kaydedilen web sayfa içeriklerindeki belirli dosyalara ait yol tanımlamalarını, proje web sayfalarında kullanabilmek için, veriyi veritabanından okuttuktan sonra, str_replace() fonksiyonu ile verideki yol tanımlarının başına proje ana dizinini ekleyebiliriz.

Aşağıdaki örnekte, public/images/ dizisi içinde bulunan image1.png adlı bir resim dosyası tanımlanarak oluşturulan bir sayfa içeriği okunduktan sonra ROOT değeri tüm image yol tanımlamalarının başına eklendikten sonra işlem yapılmaktadır.


$rDir = '/mysite/'; // Yerel sunucuda proje dizin adı
define('ROOT', ($_SERVER['SERVER_NAME']==='localhost') ? $rDir : '/'); // Yerel sunucu ise ROOT değeri '/mysite/' değilse '/'

$icerik = 'public/images/image1.png'; // İçerik okuma işlemi 

$icerik = str_replace('src="public/images', 'src="' . ROOT . 'public/images/image1.png', $icerik);

echo $icerik;

Detaylar

Mysql

31.01.2024

Bir tablonun bir sütunundaki değerleri başka bir tablo sütunundan güncelleme

Yazar: Admin

Bir tablonun bir sütunundaki satır değerlerini başka bir tablo sütunundan belirli bir sütunun eşleşmesine göre güncellemek için 2 farklı yöntem kullanabiliriz:

UPDATE TableB
INNER JOIN TableA ON TableA.columnT = TableB.ColumnV
SET TableB.columnY = TableA.columnZ

UPDATE TableB 
SET TableB. columnY = (
   SELECT TableA. columnZ 
   FROM TableA
   WHERE TableA.columnT = TableB.ColumnV
)

Detaylar

Php

02.01.2024

Fatal error: Uncaught TypeError: strpos() hatası

Yazar: Admin

PHP kodları ile ilgili olarak aşağıdakine benzer bir hata mesajı alıyorsanız:

Fatal error: Uncaught TypeError: strpos(): Argument #1 ($haystack) must be of type string, array given

Bu sorunu çözmek için, strpos() fonksiyonu yerine in_array() fonksiyonunu kullanabilirsiniz:


strpos(string,find,start)
  
in_array(search, array, type)

Detaylar

WampServer

01.01.2024

Wampserver'da ön tanımlı depolama motorunu değiştirme

Yazar: Admin

Bilgisayarımızda kurulu Wampserver programının ön tanımlı depolama motorunu değiştirmek için, mysql dizinindeki my.ini dosyasındaki default_storage_engine değerini InnoDB olarak belirlemek yeterli olacaktır.

Wampserver 3.0.0 programının C sürücüsünde kurulu olduğunu kabul edersek, my.ini dosyasının içinde bulunduğu mysql dizininin yol tanımlaması aşağıdaki şekilde olacaktır:

C:\\wamp\\bin\\mysql\\mysql8.0.31

Ön tanımlı depolama motorunu MyISAM yerine InnoDB olarak değiştirmek için, bu dizindeki my.ini dosyasındaki default_storage_engine satırı aşağıdaki şekilde olacaktır:

default_storage_engine=InnoDB

Wampserver programını kapatıp tekrar açtığımızda, ön tanımlı depolama motoru InnoDB olacaktır.

Detaylar

Php

13.11.2023

PHPMailer "SMTP Error: Could not connect to SMTP host. Connection failed" hatası

Yazar: Admin

PHPMailer kütüphanesini kullanarak e-posta gönderirken,

SMTP Error: Could not connect to SMTP host. Connection failed. stream_socket_enable_crypto()

şeklinde bir hata mesajı aldığımızda, aşağıda gösterilen yöntemle, SMTPOptions değerini ekleyerek, bu sorunu çözebiliriz:


use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer();

$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);

$mail->isSMTP();                             
$mail->Host       = 'xxxx.xxxxxxxxxxxxxxxx.com'; // E-posta sunucu adresi
$mail->SMTPAuth   = true;  
$mail->CharSet    = 'UTF-8';                  
$mail->Username   = 'xxxxxx@xxxxxxxxxxxxx.com'; // E-posta sunucu kullanıcı adı
$mail->Password   = 'parola'; // E-posta sunucu parolası
$mail->Port       = 587; // Sunucu port adresi farklılık gösterebilir.

$mail->setFrom('xxxxxx@xxxxxxxxxxxxx.com', 'Gönderen'); // Gönderen
$mail->addAddress('xxxxxx@xxxxxxx.com'); // Alıcı

$mail->isHTML(true);
$mail->Subject = 'E-posta konu başlığı';
$mail->Body    = 'E-posta içeriği';

if (!$mail->send()) {
    echo 'E-posta gönderme hatası: ' . $mail->ErrorInfo;
} 
else {
    echo 'Mesaj gönderildi!';
}

Detaylar

Borsa

07.06.2023

Borsa Youtube kanalımız ve Twitter hesabımız 08 Haziran 2023 tarihinden itibaren yayında...

Yazar: Admin

8 Haziran 2023 tarihinden itibaren borsa ile ilgili yaptığımız çalışmaları paylaşmak amacıyla oluşturduğumuz Borsa Youtube kanalımız ve Twitter hesabımız yayına başlayacaktır.

Her yatırımcının başlangıçtan itibaren ihtiyaç duyacağı kullanım ve programlama alanlarındaki temel ve ileri seviye bilgileri uygulamalı olarak verilecektir.

Twitter hesabımız üzerinden,

  1. BIST'in açık olduğu her gün, seans açılışı öncesinde, BIST 100 kapanış değeri ile ons altın, gram altın, dolar, euro, ham petrolün anlık değerleri,
  2. ABD, başlıca Avrupa ve uzak doğu ülkelerinin borsa değerleri,
  3. Yaptığımız bazı değerlendirmeler ile detaylı çalışmalarımızın özetleri paylaşılacaktır.

Youtube kanalımızda aşağıda belirtilen konularda içerik sunulacaktır:

  1. Borsanın temel kuralları
  2. Temel ve teknik analiz çalışmalarımız
  3. Hisse değerleme yöntemleri
  4. Bilanço ve gelir tablosu esasları
  5. KAP (Kamu Aydınlatma Platformu) kullanımı
  6. Borsada uygulanacak alım satım yöntemleri
  7. İstikrarlı kazanç yöntemleri

Ayrıca her iki hesap üzerinden ortak içerik sunulacaktır:

  1. Borsa takibinde kullanılan platformlarla ilgili bilgiler (tradingview.com, investing.com, ... )
  2. Faydalı aracı kurum kaynakları
  3. İndikatör anlatımları ve uygulamaları
  4. Strateji anlatımları ve uygulamaları ile backtest işlemleri
  5. Çoklu hisse takibi

Detaylar

Python

27.07.2021

MX Linux 19.4.1 işletim sisteminde Python 3.9.6 kurulumu

Yazar: Admin

Python genel amaçlı, yüksek seviyeli, yorumlanan, dinamik algılama yapısına sahip ve nesneye dayalı olarak kullanılabilen bir programlama dilidir. Bazı gelişim ve güvenlik güncellemeleri ile piyasaya sürülen Python 3.9.6 sürümü, yeni modüller, mevcut modüllerin geliştirilmiş sürümünü ve yeni özellikler içermektedir.

Debian tabanlı Linux dağıtımının çoğunda, Python'ın eski sürümleri otomatik olarak yüklü bir şekilde gelir. MX Linux 19.4.1 sürümü ile birlikte gelen Python'ın 2.7.16 sürümüdür.

Bu yazıda, Python 3.9.6 sürümünü kaynak koddan derleyerek, Debian tabanlı bir sistem olan MX Linux işletim sisteminde sistemlere kurmayı anlatmaya çalışacağız:

MX Linux 19.4.1 işletim sisteminde Python 3.9.6 kurulumu gerçekleştirmek için:

Sistemi hazırlama

1. Sudo ayrıcalıklı hesap erişimiyle MX Linux işletim sistemine giriş yapalım. Ctrl + Alt + T tuş bileşeni ile bir terminal penceresi açalım ve sistemde yüklü paketlerin güncellenmesi ve son sürümlerine yükseltilmesi için aşağıdaki komutu çalıştıralım:

$ sudo apt update && sudo apt upgrade

2. Python kaynak kodlarının derlenmesinde kullanılacak paketlerin kurulması için aşağıdaki komutu çalıştıralım:

$ sudo apt install wget build-essential libreadline-gplv2-dev libncursesw5-dev \
     libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev  

Python 3.9.6 sürümünü kaynak kodu ile kurma

1. Bu bağlantıya tıklayarak veya aşağıda gösterilen komutu çalıştırarak Python 3.9.6 kaynak kod dosyasını indirelim:

$ wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz 

2. Bilgisayarımıza indirdiğimiz dosyayı üzerine çift tıklayarak veya aşağıda gösterilen komutu çalıştırarak açalım:

$ tar xzf Python-3.9.6.tgz

3. Aşağıdaki komut ile dosyayı açtığımız dizine geçiş yapalım:

$ cd Python-3.9.6 

4. Aşağıdaki komut ile Python kaynak kodunu sistemimizde derlemek üzere hazırlayalım:

$ ./configure --enable-optimizations 

5. Aşağıdaki komut Python kurulumunu gerçekleştirelim:

$ make altinstall 

Bu işlem biraz zaman alabilir. İşlem sürecini terminal penceresinden takip edebiliriz.

6. Terminal penceresinde sadece python ifadesini kullandığımızda, sistem Python 2.7.16 sürümünün ortamına geçiş yapar. Python 3.9.6 sürümünün ortamına geçiş yapmak için aşağıdaki komutu kullanmamız gerekir:

$ python3.9

Detaylar