Sziasztok!
Adott egy mysql szerver:
MySQL host: sql4.ultraweb.hu
Felhasználó név: hsystem
Jelszó: Majd én hozzáadom ;)
Errõl a mysql-rõl kellene lekérdezni PAWN-ban, hogy az adott játékos IP címe szerepel-e az adatbázisban és ha igen akkor elvégzi az utasítást(okat) ha nem akkor is elvégez X utasítást..
Egy TÉNYLEG KIS segítségnek itt az ip lekérõ, ami nem is biztos hogy jó ide :D ;):
new str [16 + 5];
new ip [16];
str = \"d=\";
GetPlayerIp( playerid , ip , 16 );
strcat(str, ip, 16+5);
Megadom a PHP lekérdezés forráskódját is, hogy láthassátok milyen formában is menti el...
Ja, amúgy csak h tudjátok hibát ír a 7.sorba .. épp azon vagyok h kijavítsam ;)
<?php
$conn = mysql_connect (\"sql4.ultraweb.hu\", \"*\", \"*\");
mysql_select_db(\'test\');
$sql = \"select ip from mk\";
$res = mysql_query($sql);
$out = array(); // tömb létrehozása
while ($a = mysql_fetch_assoc($res))
{
$out[] = $a[\"ip\"]; // tömb elemeiként továbbítja az IP címeket.
}?>
new ip [16], query[99];
GetPlayerIp( playerid , ip , 16 );
format(query, sizeof(query), \"SELECT ip from mk WHERE ip = \'%s\'\", ip); //megformázzuk a lekérést
mysql_query(query);// elküldjük a lekérést
mysql_store_result();// eltároljuk a lekért adatot
/*mysql_fetch_row_format(query,\"|\"); //beleírjuk egy változóba az adatot, jelen esetbe a query változóba. Ez nem hiszem,hogy most kellene neked,
//mivel csak annyit kértél, hogy ellenörizzük le, hogy létezik-e az ip az adatbázisban, vagy sem, de azért megmutattam*/
if(mysql_num_rows() != 0) // ha a sorok száma nem 0, tehát létezik az adat..
{
SendClientMessage(playerid, -1, \"A te IP címed már megtalálható az adatbázisban\");
}
else
{
SendClientMessage(playerid, -1, \"A te IP címed még nem található meg az adatbázisban\");
}
mysql_free_result();
new ip [16], query[99];
GetPlayerIp( playerid , ip , 16 );
format(query, sizeof(query), \"SELECT ip from mk WHERE ip = \'%s\'\", ip); //megformázzuk a lekérést
mysql_query(query);// elküldjük a lekérést
mysql_store_result();// eltároljuk a lekért adatot
/*mysql_fetch_row_format(query,\"|\"); //beleírjuk egy változóba az adatot, jelen esetbe a query változóba. Ez nem hiszem,hogy most kellene neked,
//mivel csak annyit kértél, hogy ellenörizzük le, hogy létezik-e az ip az adatbázisban, vagy sem, de azért megmutattam*/
if(mysql_num_rows() != 0) // ha a sorok száma nem 0, tehát létezik az adat..
{
SendClientMessage(playerid, -1, \"A te IP címed már megtalálható az adatbázisban\");
}
else
{
SendClientMessage(playerid, -1, \"A te IP címed még nem található meg az adatbázisban\");
}
mysql_free_result();
Igen .. de ez azt ellenõrzi le, hogy az adott esetünkben a táblában több mint 0 sor van-e .. de ez nem jó,mert akkor minden tárolt ip-hez más-más tábla kellene és az lehetetlen, mert tömegesen szeretném felhasználni!
Azt kellene megoldani,hogy a táblában keresse meg a pawnban lekért ip-t .. vagy tévedek,és ez így jó ahogy van?:D
Szerk: és ez melyik kiszolgálóhoz csatlakozik .. vagy hova kell a jelszó meg a hostname??:DDD
Nem tiszta ez nekem .. hova küldi a lekérést?
http://sampforum.hu/index.php?topic=9285.0
Ez egy jó tut az R6-hoz.
SELECT * FROM tabla WHERE ip = IP
Ezzel az összes oszlopot kiválasztottunk a táblából, ahol az ip egyenlõ IP-vel.
Tehát a kiválasztott adatokból lekérhetünk Pawnban bármit.
Azt kellene megoldani,hogy a táblában keresse meg a pawnban lekért ip-t .. vagy tévedek,és ez így jó ahogy van?:D
Szerk: és ez melyik kiszolgálóhoz csatlakozik .. vagy hova kell a jelszó meg a hostname??:DDD
Nem tiszta ez nekem .. hova küldi a lekérést?
Pawno-ban lekért IP-t keresi meg, és ha talál legalább egyet, akkor kiírja, hogy \"A te IP címed már megtalálható az adatbázisban\", ellenkezõ esetben pedig \"A te IP címed még nem található meg az adatbázisban\"
Itt a csatlakozás, csak azt hittem, hogy az menni fog:
#define SQL_HOST \"\"
#define SQL_USER \"\"
#define SQL_PASS \"\"
#define SQL_DB \"\"
public OnFilterScriptInit()
{
mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
if( mysql_ping() == 1 ) print(\"|_MySQL:_Csatlakoztatva!______ __|\");
else
{
print(\"|_MySQL:_Nem_sikerült_csatlakozni__|\");
}
return 1;
}
Azt kellene megoldani,hogy a táblában keresse meg a pawnban lekért ip-t .. vagy tévedek,és ez így jó ahogy van?:D
Szerk: és ez melyik kiszolgálóhoz csatlakozik .. vagy hova kell a jelszó meg a hostname??:DDD
Nem tiszta ez nekem .. hova küldi a lekérést?
Pawno-ban lekért IP-t keresi meg, és ha talál legalább egyet, akkor kiírja, hogy \"A te IP címed már megtalálható az adatbázisban\", ellenkezõ esetben pedig \"A te IP címed még nem található meg az adatbázisban\"
Itt a csatlakozás, csak azt hittem, hogy az menni fog:
#define SQL_HOST \"\"
#define SQL_USER \"\"
#define SQL_PASS \"\"
#define SQL_DB \"\"
public OnFilterScriptInit()
{
mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
if( mysql_ping() == 1 ) print(\"|_MySQL:_Csatlakoztatva!______ __|\");
else
{
print(\"|_MySQL:_Nem_sikerült_csatlakozni__|\");
}
return 1;
}
[/quote]
Már sikerült .. megoldottam . .a probléma csak az hogy UW-nál vagyok .. és a mysql-t meg is oldottam,plugin bentvan fut a szerveren .. a probléma az hogy, ha bennevan az ip a táblába .. ha nincs .. akkor is azzal tér vissza hogy \"Benne van\" .. de mindjárt megpróbálom egy másik módszerrel!