Skocz do zawartości

Rekomendowane odpowiedzi

Witam

Kilka tygodni temu udało mi się skomunikować skript z www za pośrednictwem bazy mysql. Na forum nie znalazłem takiego poradnika jak krok po kroku to ogarnąć. Wiele osób zaczęło pisać tematu jak tego dokonać i pytać. Dlatego przygotowałem poradnik dla osób które już co nieco znają skript. Ja wiele dni próbowałem konfigurować połączenie skript ->mysql->www aby wszystko działało poprawnie. Mój sposób działa pewnie nie jest to jedyny sposób ale lepszy taki niż żaden. 

 

1.Konfiguracja skript:

Gdy mamy już zainstalowany plugin skript na naszym serwerze i działa on poprawnie. Przechodzimy do pliku config.sk dostępny w głównym folderze skript. Szukamy w nim takich lini.

  database 1:
    # an example database to describe all possible options.
	
    type: MySQL
    # The type of this database. Allowed values are 'CSV', 'SQLite', 'MySQL' and 'disabled'.
    # CSV uses a text file to store the variables, while SQLite and MySQL use databases, and 'disabled' makes Skript ignore the database as if it wasn't defined at all.
    
    pattern: mysql_.*    
    # Defines which variables to save in this database.
    # This pattern uses Regex syntax, e.g. use 'db_.*' (without the quotes) to store all variables prefixed with 'db_' in this database,
    # or use '.*' (the default value) to store all variables here (recommended for the last database in this list, as otherwise some variables might not be saved).
    # Please note that variables are only stored in one database, and databases are checked from top to bottom,
    # e.g. if a variable matches the topmost database's pattern it will be saved there and nowhere else.
    # BTW: Patterns are checked in a separate thread, i.e. your server likely won't run slower when using complicated patterns.
    
    monitor changes: true
    monitor interval: 15 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 values on all servers that access the same database!
    
    # == MySQL configuration ==
    host: HOST # Where the database server is located at, e.g. 'example.com', 'localhost', or '192.168.1.100'
    port: 3306 # 3306 is MySQL's default port, i.e. you likely won't need to change this value
    user: UZYTKOWNIK
    password: HASLO
    database: BAZA # The database to use. Skript will automatically create a table 'variables21' in this database if it doesn't exist
    # (If the table exists but is defined differently that how Skript expects it to be you'll get errors and no variables will be saved and/or loaded)

Następnie wypełniamy je tak jak tutaj. W miejsce HOST, UZYTKOWNIK, HASLO, BAZA dajemy oczywiście swoje dane do bazy. a w type: MySQL, W pattern: mysql_.* to jest początek nazwy zmiennej która będzie zapisywana do mysql.

 

Gdy już to wypełnimy to zapisujemy plik.

 

2.Napisanie skryptu:

Przechodzimy do napisania skryptu zapisującego do naszej bazy. Otwieramy notepad++ albo jakiś inny edytor tekstu byle nie windowsowy notatnik

I wklejamy taki skrypt:

on join:
	add 1 to {config::odwiedzin}
	set {mysql_baza::odwiedzin} to "%{config::odwiedzin}%" parsed as text
	stop 

Plik zapisujemy z końcówką .sk np. testbazy.sk i wrzucamy do do folderu skript w naszym pluginie skript.

Skript sam utworzy w bazie mysql tabele i zapisze odpowiednio do nich dane. Nie musimy nawet się logować do naszej bazy mysql

 

3.Komunikacja z www:

Czyli jak teraz wyświetlić tą zmienna na naszej stronie www.

Ja przedstawię sposób gdzie wiemy jak nazywa się zmienna. Potem wytłumaczę oco chodzi

Oto kod php. Zapisujemy go pod nazwą index.php

<html>
<body>
	<p>
	<?php
		mysql_connect ('HOST','UZYTKOWNIK','HASLO'); //łącze z bazą ("serwer bazy","użytkownik","hasło")
		mysql_select_db ('BAZA'); //nazwa bazy
		mysql_query ("SET CHARACTER SET UTF8"); //kodowanie znaków (przydatne przy pobieraniu treści)
		$baza = mysql_query('SELECT * FROM variables21 WHERE name = "mysql_baza::odwiedzin"');
		$wynik = mysql_fetch_array($baza);
		$rest = substr($wynik[value], 2, 250);
		echo ("<font color='black'><strong>$rest</strong></font>");
	?>
	</p>
</body></html>

Ja nie znam się dobrze na html i php dopiero zaczynam swoja naukę w tej dziedzinie. 

Oczywiście w tym kodzie ustawiamy HOST, UZYTKOWNIK, HASLO, BAZA.

Każda zmienna zapisana przez skrypt do bazy mysql na początku ma jakieś hieroglify jakieś tam znaki nie wiem jakie bo żaden notatnik nie może ich otworzyć. Dlatego trzeba się ich pozbyć do tego używam:

$rest = substr($wynik[value], 2, 250);

Gdyby u was pojawiały się one albo ucinało tekst to należy tam gdzie jest liczba "2" zmienić na więcej lub mniej ona określa od którego znaku ma być dopiero kopiowane do kolejnej zmiennej. czy jakoś tak.

UWAGA Ważne jest aby w skript zapisywać dane do bazy mysql jako TEXT a nie jako liczbę czy bool. przynajmniej ja nie wiem w jaki sposób to odczytać.

Gdy wszystko zrobiliśmy dobrze to na naszej stronie ukaże się wartość zmiennej. Jeśli nie to musimy trochę razy powchodzić na nasz serwer aby w ogóle coś zostało zapisane do niej.

To już koniec poradnika na koniec wspomnę ze ten przykład zadziała gdy dokładnie wiemy jaką nazwę nosi zmienna zapisana do mysql bowiem mi nie było potrzebne odczytywanie zmiennej która w skript zapisywana była by np. tak:

on join:

set {mysql_baza::niki::%player%} to "true" parsed as text

Bo w takim wypadku trzeba by nie po nazwie zmiennej odczytywać z bazy mysql na www tylko po wierszach czy wartościach. Sam nie wiem.

To jest zajawka korzystania z bazy mysql. W drugą stronę też da się zrobić ale tak jak mówię nie było mi potrzebne.

 

Na sam koniec pokaże przykład wykorzystania tego sposobu. Wszystkie dane na tej stronie są przesyłane w ten sposób. Nie powiem tutaj jak przesyłam kolory rang ponieważ to jest połączone z budową mojego skryptu dla rang. Nie zebym reklamował po prostu chche pokazac zastosowanie.

http://minecraftaterium.gameclan.pl/statystyki.php

 

Pozdrawiam wszystkich :) Mam nadzieję ze poradnik się przyda :)

Odnośnik do komentarza
https://skript.pl/temat/8678-skript-mysql-www/
Udostępnij na innych stronach

O człowieku. Jak będzie mi to działało to będziesz miał u mnie bardzo dużego plusa. Mega poradnik.

// edit

Idź z tym poradnikiem na konkurs na najlepszy poradnik. Masz szansę wygrać np. Serwer 4-8 gb i dużo więcej. :)

Odnośnik do komentarza
https://skript.pl/temat/8678-skript-mysql-www/#findComment-67537
Udostępnij na innych stronach

@boleknowak Tak tylko dopiero teraz się nim zainteresowałem i no nie mam jak zmienić tematu aby dodać to NP. Musiał by jakiś moderator dodać jeśli można. Po za tym nagroda w postaci serwera mnie nie interesuje. Musiał bym oddać komuś.

Odnośnik do komentarza
https://skript.pl/temat/8678-skript-mysql-www/#findComment-67561
Udostępnij na innych stronach

Jeżelie napisałeś ten poradnik sam i nie kopiowałeś ze żadnej stronki czy chociaż forum, to jesteś wielki bo mam zamiaru dodać do swojego skrypty "MySql" i ty mi przychodzisz z pomocą.
Like dla ciebie i tyle XD. 

Odnośnik do komentarza
https://skript.pl/temat/8678-skript-mysql-www/#findComment-67967
Udostępnij na innych stronach

Ten poradnik sam stworzyłem gdyż nigdzie nie mogłem takiego znaleźć. Chyba nikt jeszcze mysql w skript i www nie ogarnął bo nigdzie o tym nie piszą.


Dzięki :D


Edytowane przez Zasepamen
Odnośnik do komentarza
https://skript.pl/temat/8678-skript-mysql-www/#findComment-67980
Udostępnij na innych stronach

  • Norbi zmienił(a) tytuł na SKRIPT->MYSQL->WWW
  • 2 lata później...
  • Szifter zablokował(a) ten temat
Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...