[Ajuda] Ler valor numa coluna MySQL
#1

Boas. Como й que se faz isto? Jб ando а procura а dias, e nгo encontro!!!!!

Estou a usar o plugin MySQL R5 que tem a funзгo mysql_store_result(); que pensava que me ia ajudar, mas enganei-me...

Neste momento tenho esta parte do cуdigo:

PHP код:
    mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_DBMYSQL_PASSWORD);
    new 
query[128];
    
format(querysizeof(query), "SELECT 'Anticheat' FROM `users` WHERE `Username` = 'Diogo_Rodgers'");
    
    
mysql_query(query);
    
mysql_store_result(); 
A tabela й esta:



Como й que se faz isto? ...
Reply
#2

Adciona ao seu cуdigo:
Код:
new anticheat = mysql_fetch_int();
mysql_free_result();
Dai vc usa a variбvel pra fazer oq vc quer (exemplo feito com base na R6)...
Reply
#3

Use mysql_fetch_field_row + mysql_free_result.
Reply
#4

Quote:
Originally Posted by n0minal
Посмотреть сообщение
Adciona ao seu cуdigo:
Код:
new anticheat = mysql_fetch_int();
mysql_free_result();
Dai vc usa a variбvel pra fazer oq vc quer (exemplo feito com base na R6)...
Assim o valor retorna -1 sempre...
Reply
#5

Meta ao contrбrio:

PHP код:
mysql_store_result();
new 
anticheat mysql_fetch_int();
mysql_free_result(); 
Reply
#6

Olha vou te mandar minha callback onde carrega os dados do jogador e vocк tira uma base.

pawn Код:
CarregarPlayer(playerid)
{
    new arquivo[256],savingstring[256];

    format(arquivo,sizeof(arquivo),"SELECT * FROM `contas` WHERE `Username` = '%s'",nome(playerid));

    mysql_query(mysql, arquivo);
    mysql_store_result();
   
    while(mysql_fetch_row_format(arquivo,"|"))
    {
        mysql_fetch_field_row(savingstring, "Username"); nome(playerid);
        mysql_fetch_field_row(savingstring, "Password"); PlayerInfo[playerid][Password] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "Ip"); PlayerInfo[playerid][PIP] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "Admin"); PlayerInfo[playerid][Admin] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "Level"); PlayerInfo[playerid][Level] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "Kills"); PlayerInfo[playerid][Kills] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "Deaths"); PlayerInfo[playerid][Deaths] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "MutedTime"); PlayerInfo[playerid][MutedTime] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "WeaponSet"); PlayerInfo[playerid][WeaponSet] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "Banned"); PlayerInfo[playerid][Banned] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "Gangue_Id"); PlayerInfo[playerid][idgang] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "Lider"); PlayerInfo[playerid][IsLider] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "RacePoints"); PlayerInfo[playerid][RacePoints] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "DuelsWon"); PlayerInfo[playerid][DuelsWon] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "DuelsLost"); PlayerInfo[playerid][DuelsLost] = strval(savingstring);
       
        SetPlayerScore(playerid,PlayerInfo[playerid][Level]);
    }
    mysql_free_result();
    return 1;
}
Reply
#7

Verifica se a consulta estб correta, testa ela no phpmyadmin ou outro aplicativo.
Reply
#8

O ъnica problema dele й que nгo estava a fazer o store result... Use a minha resposta que darб certo..

PHP код:
mysql_store_result(); 
new 
anticheat mysql_fetch_int(); 
mysql_free_result(); 
Reply
#9

@ VeNuZ_
Ele assim nгo vai apagar o resultado antes de o usar?

@s4kuL
Obrigado pela ajuda, mas esse cуdigo estб a usar strings, eu queria mesmo a usar uma int.

@Bruno_Cyra
Nгo hб problemas com o phpMyAdmin porque as funзхes de actualizar dados funcionam bem.
Reply
#10

Quote:
Originally Posted by VeNuZ_
Посмотреть сообщение
O ъnica problema dele й que nгo estava a fazer o store result... Use a minha resposta que darб certo..

PHP код:
mysql_store_result(); 
new 
anticheat mysql_fetch_int(); 
mysql_free_result(); 
Estou a fazer isso sim.

PHP код:
stock CheckAntiCheat()
{
    
mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_DBMYSQL_PASSWORD);
    new 
query[128];
    
format(querysizeof(query), "SELECT 'Anticheat' FROM `users` WHERE `Username` = 'Diogo_Rodgers'");
    
    
mysql_query(query);
    
mysql_store_result();
    new 
anticheat mysql_fetch_int();
    
mysql_free_result();
    
    
printf("Anticheat: %d"anticheat);
    
    if(
anticheat == 1) return 1;
    if(
anticheat == 0) return 0;
    
    return 
2;

PHP код:
[15:19:08Anticheat: -
Reply
#11

Cara esse cуdigo nгo й sу para strings, server tambйm para inteiros.

Por exemplo:

Ip й uma string e Admin й um inteiro e funciona perfeitamente comigo.
Reply
#12

mysql_fetch_field_row foi criado para usar em strings...


@Bruxo: tenta colocar:

mysql_retrieve_row();
new anticheat = mysql_fetch_int();

E ve se funciona, caso n funcione use:

new result[32];
mysql_fetch_field_row(result, "Anticheat");
new anticheat = strval(result);
Reply
#13

Nгo sei o que se passa, isto nгo quer dar...

PHP код:
mysql_retrieve_row();
new 
anticheat mysql_fetch_int(); 
Retornou -1.

PHP код:
new result[32];
mysql_fetch_field_row(result"Anticheat");
new 
anticheat strval(result); 
Retornou 0.
Reply
#14

Nгo consigo pфr isto a funcionar, que raiva!!!

Do primeiro jeito retorna igual (-1).
Do segundo jeito retorna 0.
Reply
#15

Conseguiste?
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)