Skript'i MySQL'e Bağlamak, Veri Kaydetmek

  • Konuyu başlatan Sergunkorowakurwa
  • Başlangıç tarihi
S

Sergunkorowakurwa

Ziyaretçi
Merhaba, yayınlamak üzere banlist yapacağım, siteden görüntülenilebilecek.
Ancak bir türlü bağlamayı başaramadım. Configi nasıl ayarlayacağımı, MySQL'e kaydedilecek değişkenin başına hangi etiket (mysql_) geleceğini anlatabilir misiniz?
@ZakaTPakaBLoTS @GodofMilker
 


R

Reloven

Ziyaretçi
Skript İle Uğraşmayın Abi Bukadar Skript Ufak Tefek Şeyler İçin Kullanılır Ben nebilim Girişte Msj Atarsın Filan.
 

RepublicanSensei

ˢᵖᶤᵍᵒᵗ ᵈᵉᵛᵉˡᵒᵖᵉʳ
Mesajlar
862
En iyi cevaplar
0
Beğeniler
490
Puanları
890
Bro selam, öncelikle http://dev.bukkit.org/bukkit-plugins/sqlibrary/ indir. Ardından configi böyle yap!
PHP:
    type: MySQL
    # The type of the database. Currently only MySQL and SQLite are supported. Use 'none' for Skript's default CSV flatfile storage.
 
    pattern: db_.*
    # If you only want to store part of your variables in the database (e.g. only player stats), set this pattern to match only those variables.
    # Variables that don't match the pattern will be saved in the default flatfile format.
    # This pattern uses Regex syntax, e.g. use 'db_.*' (without the quotes) to store all variables prefixed with 'db_' in the database,
    # or use '.*' (the default value) to store all variables in the database.
 
    monitor changes: true
    monitor interval: 5 seconds
    # If 'monitor changes' is set to true, variables will repeatedly be checked for updates in the database (in intervals set in 'monitor interval').
    # ! Please note that you should set 'pattern', 'monitor changes' and 'monitor interval' to the same on all servers that access the same database!
 
    # MySQL configuration
    host: forum.minecraftturk.com
    port: 3306
    user: republicansensei
    password: 123456
    database: skript
 

root

Ağaç Yumruklayıcı
Mesajlar
16
En iyi cevaplar
0
Beğeniler
20
Puanları
0
Merhaba,

Aşağıda config.sk üzerinden basitçe anlatmaya çalıştım, umarım yardımcı olmuştur. :)
Ayrıca veritabanı bağlantısı için SQLibrary eklentisinide kurmanız gerekmektedir.

# ==== Variables ====

databases:
# Databases to store variables in. These can either be used as a simple one-server-storage
# where variables are written constantly but only read at server start,
# or as a connection between multiple servers by monitoring the database(s) for changes.
#
# You can define as many databases as you want, just make sure to choose a distinct name for each one, and don't forget to set all options correctly.
#
# To be able to use a database you'll need to download the plugin 'SQLibrary' from http://dev.bukkit.org/server-mods/sqlibrary/files/
# and install it in your server's plugin directory like other plugins.
#
# Please note that '/skript reload' will not reload this section, i.e. you'll have to restart Skript for changes to take effect.

# Each database definition must be in a separate section. You can choose any name for the sections, as long as it's not already used.
ornek database:
# Buraya veritabanınızı tanımanız için herhangi bir isim girebilirsiniz. Ne olduğu önemli değildir.

type: MySQL
# Bu kısmı kullanacağınız SQL türüne göre SQLite veya MySQL olarak belirleyebilirsiniz.

pattern: .*
# Burayı olduğu gibi bırakmanız halinde bütün variablelarınız otomatik olarak veritabanına yazılacaktır.
# Eğer sadece belirli variableların veritabanına yazılmasını istiyorsanız bu kısmı örneğin db_.* yaparak önüne db_ kodunu eklediğiniz variableların
# veritabanına yazılmasını sağlayabilirsiniz.
# Örnek variable: {db_altin.%player%} Bu örnekte her oyuncunun altınını veritabanına kaydedecektir.

monitor changes: true
monitor interval: 20 seconds

# Eğer özellikle birden fazla sunucu arasında veritabanı bağlantısı yapacaksanız bu özelliği aktif etmeniz önerilir. Burada belirlediğiniz saniye
# döngüsünde veritabanından variablelar kontrol edilecektir ve sunuculara aktarılmasını sağlayacaktır.

# == MySQL configuration ==
host: localhost # Bu kısma veritabanı sunucunuzun barındığı adresi girmelisiniz. Genellikle 'localhost' dur.
port: 3306 # Bu kısım veritabanı portunuzdur. Genellikle 3306 dır ve değiştirmeniz önerilmez.
user: root # Bu kısma veritabanı kullanıcı adınızı girmeniz gerekmektedir.
password: 12345
# Bu kısma veritabanı şifrenizi girmeniz gerekmektedir.
database: skript
# Bu kısma veritabanı adını girmelisiniz. Skript burada "variables21" adında bir tablo oluşturacaktır.


# == SQLite/CSV configuration ==
file: ./plugins/Skript/variables.db
# Where to save the variables to. For a CSV file, the file extension '.csv' is recommended, but not required, but SQLite database files must end in '.db' (SQLibrary forces this).
# The file path can either be absolute (e.g. 'C:\whatever\...' [Windows] or '/usr/whatever/...' [Unix]), or relative to the server directory (e.g. './plugins/Skript/...').

backup interval: 2 hours
# Creates a backup of the file every so often. This can be useful if you ever want to revert variables to an older state.
# Variables are saved constantly no matter what is set here, thus a server crash will never make you loose any variables.
# Set this to 0 to disable this feature.
 
S

Sergunkorowakurwa

Ziyaretçi
Bro selam, öncelikle http://dev.bukkit.org/bukkit-plugins/sqlibrary/ indir. Ardından configi böyle yap!
PHP:
    type: MySQL
    # The type of the database. Currently only MySQL and SQLite are supported. Use 'none' for Skript's default CSV flatfile storage.

    pattern: db_.*
    # If you only want to store part of your variables in the database (e.g. only player stats), set this pattern to match only those variables.
    # Variables that don't match the pattern will be saved in the default flatfile format.
    # This pattern uses Regex syntax, e.g. use 'db_.*' (without the quotes) to store all variables prefixed with 'db_' in the database,
    # or use '.*' (the default value) to store all variables in the database.

    monitor changes: true
    monitor interval: 5 seconds
    # If 'monitor changes' is set to true, variables will repeatedly be checked for updates in the database (in intervals set in 'monitor interval').
    # ! Please note that you should set 'pattern', 'monitor changes' and 'monitor interval' to the same on all servers that access the same database!

    # MySQL configuration
    host: forum.minecraftturk.com
    port: 3306
    user: republicansensei
    password: 123456
    database: skript
Merhaba,

Aşağıda config.sk üzerinden basitçe anlatmaya çalıştım, umarım yardımcı olmuştur. :)
Ayrıca veritabanı bağlantısı için SQLibrary eklentisinide kurmanız gerekmektedir.

# ==== Variables ====

databases:
# Databases to store variables in. These can either be used as a simple one-server-storage
# where variables are written constantly but only read at server start,
# or as a connection between multiple servers by monitoring the database(s) for changes.
#
# You can define as many databases as you want, just make sure to choose a distinct name for each one, and don't forget to set all options correctly.
#
# To be able to use a database you'll need to download the plugin 'SQLibrary' from http://dev.bukkit.org/server-mods/sqlibrary/files/
# and install it in your server's plugin directory like other plugins.
#
# Please note that '/skript reload' will not reload this section, i.e. you'll have to restart Skript for changes to take effect.

# Each database definition must be in a separate section. You can choose any name for the sections, as long as it's not already used.
ornek database:
# Buraya veritabanınızı tanımanız için herhangi bir isim girebilirsiniz. Ne olduğu önemli değildir.

type: MySQL
# Bu kısmı kullanacağınız SQL türüne göre SQLite veya MySQL olarak belirleyebilirsiniz.

pattern: .*
# Burayı olduğu gibi bırakmanız halinde bütün variablelarınız otomatik olarak veritabanına yazılacaktır.
# Eğer sadece belirli variableların veritabanına yazılmasını istiyorsanız bu kısmı örneğin db_.* yaparak önüne db_ kodunu eklediğiniz variableların
# veritabanına yazılmasını sağlayabilirsiniz.
# Örnek variable: {db_altin.%player%} Bu örnekte her oyuncunun altınını veritabanına kaydedecektir.

monitor changes: true
monitor interval: 20 seconds

# Eğer özellikle birden fazla sunucu arasında veritabanı bağlantısı yapacaksanız bu özelliği aktif etmeniz önerilir. Burada belirlediğiniz saniye
# döngüsünde veritabanından variablelar kontrol edilecektir ve sunuculara aktarılmasını sağlayacaktır.

# == MySQL configuration ==
host: localhost # Bu kısma veritabanı sunucunuzun barındığı adresi girmelisiniz. Genellikle 'localhost' dur.
port: 3306 # Bu kısım veritabanı portunuzdur. Genellikle 3306 dır ve değiştirmeniz önerilmez.
user: root # Bu kısma veritabanı kullanıcı adınızı girmeniz gerekmektedir.
password: 12345
# Bu kısma veritabanı şifrenizi girmeniz gerekmektedir.
database: skript
# Bu kısma veritabanı adını girmelisiniz. Skript burada "variables21" adında bir tablo oluşturacaktır.


# == SQLite/CSV configuration ==
file: ./plugins/Skript/variables.db
# Where to save the variables to. For a CSV file, the file extension '.csv' is recommended, but not required, but SQLite database files must end in '.db' (SQLibrary forces this).
# The file path can either be absolute (e.g. 'C:\whatever\...' [Windows] or '/usr/whatever/...' [Unix]), or relative to the server directory (e.g. './plugins/Skript/...').

backup interval: 2 hours
# Creates a backup of the file every so often. This can be useful if you ever want to revert variables to an older state.
# Variables are saved constantly no matter what is set here, thus a server crash will never make you loose any variables.
# Set this to 0 to disable this feature.
Yaklaşık yarım saat önce kendi çabalarımla hallettim. Şuanda PHP üzerinden değişkenleri göstermeye çalışıyorum. Yine de ilginiz için teşekkürler.[DOUBLEPOST=1420386797,1420314366][/DOUBLEPOST]Yeni sorum var arkadaşlar,
PHP:
<!DOCTYPE html>
<html>
  <head>
    <title>Skript Test</title>
  </head>
  <body>



<?php
$con=mysqli_connect("db4free.net","sansür,"sansür","sansür");
// Check connection
mysqli_set_charset($con, "utf8");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT  `variables21`.`name` ,  `variables21`.`value`
FROM variables21
WHERE (
`variables21`.`name` LIKE  'db_%'
)
OR (
`variables21`.`name` LIKE  'db_%'
)
ORDER BY  `variables21`.`name` ASC
");

echo "<table border=1><tr><td>Değişken Adı</td><td>Değer</td></tr>";
while($row = mysqli_fetch_array($result))
{
    echo "<tr><td>";
    echo $row["name"];
    echo "</td><td>";
    $hold = bin2hex($row["value"]);
     $hold = base_convert($hold, 16, 10);
    echo $hold;
    echo "</td></tr>";
}
echo "</table>";
mysqli_close($con);
?>
</p>
</body>
</html>
Bu şekilde değişken adı ve değişkenin içeriği listeleniyor ancak stringler birçok rakam ile çıkıyor. Bunu nasıl düzeltebilirim?
Mesela db_test değişkenine "aheylo" yazdım, bu şekli aldım.


@root , @Republican Sensei , yine de teşekkür ederim, bakalım başka arkadaşlar çözebilecek mi..[DOUBLEPOST=1420387345][/DOUBLEPOST]Kendim yapmayı başardım, ancak doğru şekilde değeri gösteriyor, ama başında bir soru işareti çıkıyor.

@Polkakorowakurwa nüynüyüme bir şey beceremediği halde yinede destek olduğu için teşekkürler :p
@KadirBerk @Iskefiyeli18
 
S

Sergunkorowakurwa

Ziyaretçi
En son yorumunda başardım dedin. Bunu duyduğuma sevindim, fakat başında soru işareti çıkıyor demişsin. Bu charset ile kaynaklanır, Sana yardımcı olabilirim. Sayfayı not defteri ile mi kodladın ?
Türkçe karakter sorunu yok, @Alps ile düzeltmeye çalıştık. Kesinlikle Türkçe karakter sorunu yok. Sadece ne yazsan başına o baklava dilimli soru işareti geliyor. Tablolar utf8_general_ci, index.php UTF-8 BOM OLMADAN KODLA yaptım.
 

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Eğer bu tür ufak tefek eklentilere ihtiyacınız varsa, cidden söyleyin ben hazırlarım sizin için. Hatta, isteyen olursa plugini TS3'te birlikte anlatarak yazarız, siz de öğrenmiş olursunuz.
 
S

Sergunkorowakurwa

Ziyaretçi
Eğer bu tür ufak tefek eklentilere ihtiyacınız varsa, cidden söyleyin ben hazırlarım sizin için. Hatta, isteyen olursa plugini TS3'te birlikte anlatarak yazarız, siz de öğrenmiş olursunuz.
Merhaba,
Önceki mesajlarımda da belirttiğim gibi, yapmayı başardım. Ancak başına nedense hep baklava dilimli soru işareti getiriyor. Türkçe karakter sorunu da yok.
Türkçe karakter sorunu yok, @Alps ile düzeltmeye çalıştık. Kesinlikle Türkçe karakter sorunu yok. Sadece ne yazsan başına o baklava dilimli soru işareti geliyor. Tablolar utf8_general_ci, index.php UTF-8 BOM OLMADAN KODLA yaptım.
Yaklaşık yarım saat önce kendi çabalarımla hallettim. Şuanda PHP üzerinden değişkenleri göstermeye çalışıyorum. Yine de ilginiz için teşekkürler.[DOUBLEPOST=1420386797,1420314366][/DOUBLEPOST]Yeni sorum var arkadaşlar,
PHP:
<!DOCTYPE html>
<html>
  <head>
    <title>Skript Test</title>
  </head>
  <body>



<?php
$con=mysqli_connect("db4free.net","sansür,"sansür","sansür");
// Check connection
mysqli_set_charset($con, "utf8");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT  `variables21`.`name` ,  `variables21`.`value`
FROM variables21
WHERE (
`variables21`.`name` LIKE  'db_%'
)
OR (
`variables21`.`name` LIKE  'db_%'
)
ORDER BY  `variables21`.`name` ASC
");

echo "<table border=1><tr><td>Değişken Adı</td><td>Değer</td></tr>";
while($row = mysqli_fetch_array($result))
{
    echo "<tr><td>";
    echo $row["name"];
    echo "</td><td>";
    $hold = bin2hex($row["value"]);
     $hold = base_convert($hold, 16, 10);
    echo $hold;
    echo "</td></tr>";
}
echo "</table>";
mysqli_close($con);
?>
</p>
</body>
</html>
Bu şekilde değişken adı ve değişkenin içeriği listeleniyor ancak stringler birçok rakam ile çıkıyor. Bunu nasıl düzeltebilirim?
Mesela db_test değişkenine "aheylo" yazdım, bu şekli aldım.


@root , @Republican Sensei , yine de teşekkür ederim, bakalım başka arkadaşlar çözebilecek mi..[DOUBLEPOST=1420387345][/DOUBLEPOST]Kendim yapmayı başardım, ancak doğru şekilde değeri gösteriyor, ama başında bir soru işareti çıkıyor.

@Polkakorowakurwa nüynüyüme bir şey beceremediği halde yinede destek olduğu için teşekkürler :p
@KadirBerk @Iskefiyeli18
 

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Merhaba,
Önceki mesajlarımda da belirttiğim gibi, yapmayı başardım. Ancak başına nedense hep baklava dilimli soru işareti getiriyor. Türkçe karakter sorunu da yok.
Şu an iş yerinde olduğumdan resmi göremiyorum, ancak konuşmalar bölümünde resmi görmüştüm, meselenin Skript forumlarındaki yorumlarını da okudum, görünüşe göre baya önemli bir işi başarmışsın, öncelikle tebrik ederim. Baklava dilimli soru işareti karakterine gelecek olursak da, string manipülasyonu ile kolayca çözebilirsin.
Öncelikle her row için bu işaret çıkıyor mu?
Her row'da farklı işaret mi çıkıyor, aynı işaret mi?
Bu gibi sorulara çözüm bulduktan sonra string'de düzenleme yaparak sorununu çözebilirsin.
En basit yöntem olarak, kodları göremediğimden value bölümündeki sorunlu string değişkenine value dersek,
substr($value, 1); ile ilk harfi atlatabilirsin.
Ayrıntılı bilgi: http://php.net/manual/tr/function.substr.php

Diğer bir yöntem ise, Regex ile hatalı kısmı silebilirsin.
Başka bir yöntem ise, sorunlu karakteri split edebilirsin.

Daha yapabileceğin birçok şey var bu konuda, oturup üzerine konuşmak gerek daha ayrıntılı çözümler için.
 
S

Sergunkorowakurwa

Ziyaretçi
Şu an iş yerinde olduğumdan resmi göremiyorum, ancak konuşmalar bölümünde resmi görmüştüm, meselenin Skript forumlarındaki yorumlarını da okudum, görünüşe göre baya önemli bir işi başarmışsın, öncelikle tebrik ederim. Baklava dilimli soru işareti karakterine gelecek olursak da, string manipülasyonu ile kolayca çözebilirsin.
Öncelikle her row için bu işaret çıkıyor mu?
Her row'da farklı işaret mi çıkıyor, aynı işaret mi?
Bu gibi sorulara çözüm bulduktan sonra string'de düzenleme yaparak sorununu çözebilirsin.
En basit yöntem olarak, kodları göremediğimden value bölümündeki sorunlu string değişkenine value dersek,
substr($value, 1); ile ilk harfi atlatabilirsin.
Ayrıntılı bilgi: http://php.net/manual/tr/function.substr.php

Diğer bir yöntem ise, Regex ile hatalı kısmı silebilirsin.
Başka bir yöntem ise, sorunlu karakteri split edebilirsin.

Daha yapabileceğin birçok şey var bu konuda, oturup üzerine konuşmak gerek daha ayrıntılı çözümler için.
Teşekkürler, hemen deneyeyim substr'yi. Ben de trim ile atmaya çalıştım, ancak başaramadım.
Sadece value değerinde çıkıyor.
 
S

Sergunkorowakurwa

Ziyaretçi
Teşekkürler, hemen deneyeyim substr'yi. Ben de trim ile atmaya çalıştım, ancak başaramadım.
Sadece value değerinde çıkıyor.
Denedim, sorun devam etmekte.[/PHP][DOUBLEPOST=1420446961,1420446918][/DOUBLEPOST]
Eğer her zaman sadece ilk karakterde sorun çıkıyorsa subString en iyi çözümdür.
Peki, kullanımını gösterebilir misiniz?
Ancak ilk karakterde de sorun çıkmıyor. A yazsam A çıkıyor ancak başında bir soru işareti ile.
 
Moderatör tarafından düzenlendi:

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Denedim, sorun devam etmekte.
Kodum:
PHP:
<!DOCTYPE html>
<html>
  <head>
    <title>Skript Test</title>
  </head>
  <body>
  


<?php
$con=mysqli_connect("db4free.net","sansür","sansür","sansür");
// Check connection
mysqli_set_charset($con, "utf8");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT  `variables21`.`name` ,  `variables21`.`value`
FROM variables21
WHERE (
`variables21`.`name` LIKE  'db_%'
)
OR (
`variables21`.`name` LIKE  'db_%'
)
ORDER BY  `variables21`.`name` ASC
");

echo "<table border=1><tr><td>Değişken Adı</td><td>Değer</td></tr>";
while($row = mysqli_fetch_array($result))
{
    echo "<tr><td>";
    echo $row["name"];
    echo "</td><td>";
    $gecicidegisken = $row["value"];
    substr($gecicidegisken, 1);
    echo $gecicidegisken;
    echo "</td></tr>";
}
echo "</table>";
mysqli_close($con);
?>
</p>
</body>
</html>
[DOUBLEPOST=1420446961,1420446918][/DOUBLEPOST]
Peki, kullanımını gösterebilir misiniz?
Ancak ilk karakterde de sorun çıkmıyor. A yazsam A çıkıyor ancak başında bir soru işareti ile.
PHP'den pek anlamam, subString olayı her programlama dilinde vardır, ben Java'dan biliyorum bunu. Ancak şu şekilde yapman gerektiğine eminim;

$gecicidegisken =;
echo $gecicidegisken;

veya direkt;
echo substr($row["value"], 1);
 

Üst