21/10/2024 06:27
(Esta mensagem foi modificada pela última vez a: 21/10/2024 06:32 por White_Blue.)
(19/10/2024 17:55)Enila182 Escreveu:(19/10/2024 04:40)White_Blue Escreveu:Código PHP:SELECT * FROM tabela WHERE org = 'nome';
A query acima deve retornar todos os dados da tabela. Daí basta você mostrar esses dados da forma que quiser para o jogador na callback da query.
Você tem um exemplo de comando? Tentei fazer um aqui. só que nao da certo.
Código:CMD:pccnew(playerid) {
BuscarMembrosPCC(playerid);
return 1;
}
forward BuscarMembrosPCC(playerid);
public BuscarMembrosPCC(playerid)
{
new query[256]; // Define o tamanho da query
format(query, sizeof(query), "SELECT Nome, Status FROM jogadores WHERE Org_PCC > 0");
// Execute a query no banco de dados
mysql_tquery(Conexao, query, "OnBuscarMembrosPCC", "i", playerid);
}
public OnBuscarMembrosPCC(playerid, cacheid) {
new total_rows = cache_get_row_count(); // Pega o total de resultados
if (total_rows == 0) {
SendClientMessage(playerid, -1, "Nenhum membro encontrado.");
return;
}
new listaMembros[1024]; // Buffer para armazenar os membros
for (new i = 0; i < total_rows; i++)
{
new nome[24], status[16], orgPCC[32];
new org_id;
cache_get_field_content(i, "Nome", nome); // Pega o nome
cache_get_field_content(i, "Status", status); // Pega o status (online/offline)
org_id = cache_get_field_content_int(i, "Org_PCC"); // Pega o ID da organização
// Verifica o cargo de acordo com o valor de Org_PCC
switch (org_id) {
case 1: format(orgPCC, sizeof(orgPCC), "Traficante 1");
case 2: format(orgPCC, sizeof(orgPCC), "Traficante 2");
case 3: format(orgPCC, sizeof(orgPCC), "Traficante 3");
case 4: format(orgPCC, sizeof(orgPCC), "Traficante 4");
case 5: format(orgPCC, sizeof(orgPCC), "Dono");
}
format(listaMembros, sizeof(listaMembros), "%s%s (%s) - %s\n", listaMembros, nome, orgPCC, (strcmp(status, "1") == 0) ? "Online" : "Offline");
}
// Mostra o dialog com a lista de membros
ShowPlayerDialog(playerid, D_COMANDOS_GERAL, DIALOG_STYLE_MSGBOX, "Lista de Membros PCC", listaMembros, "Fechar", "");
}
Verifique e anexe o log de erro do MySQL (/logs/plugins/mysql.log), muitas vezes, ele registra a exata causa pela qual a query falhou.
P.S.:
Notei que você está utilizando uma versão ultrapassada do MySQL. Eu recomendaria migrar para a versão mais recente.
Também notei alguns problemas no código:
1- Você está usando a função `format` padrão, para formatar queries, sempre utilize a função `mysql_format`para evitar criar vulnerabilidades de SQL injection.
2 - Não faz sentido encapsular o código do comando em uma função separada, já que não será reutilizado em outro ponto.
3 - A callback da query tem um parâmetro `cacheid`, mas em momento nenhum esse parâmetro é usado ou tem um valor atribuído.
4 - Não faz sentido a `status` ser tratada como uma string, uma vez que pode ser armazenada como um inteiro.
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.