Mantener una consulta mientras el jugador elige.
#1

Buenas amig@s de forum samp, otra vez vengo en busca de ayude con ustedes ( de antemano les digo gracias ).

El problema es que estoy haciendo o bueno termine un sistema de musica MySQL, el sistema funciona bien en si, reproduce la cancion correcta, pero ocurre el fallo cuando mas de un jugador esta utilizando el menu de las canciones ya que cuando un jugador genera una consulta puede venir otro y se la 'arruina' por asi decir.

La idea es ї Como hago para mantener una consulta (tabla) mientras el jugador elige ?

Aca les dejo el codigo en los dialogos que es donde estan las consultas:
PHP код:
case DIALOGO_MUSICA_PRINCIPAL:
        {
            if(
response)
            {
                
mysql_format(h_MySQLg_Consulta[playerid], GLOBAL_QUERY_SIZE"SELECT "TABLA_CARPETA".carp_id As 'GeneroID', "TABLA_CARPETA".carp_nombre As 'Genero', COUNT( "TABLA_CANCION".can_id ) As '#' FROM "TABLA_CARPETA" LEFT JOIN "TABLA_CANCION" ON "TABLA_CANCION".carp_id = "TABLA_CARPETA".carp_id GROUP BY "TABLA_CARPETA".carp_nombre");
                
mysql_query(h_MySQLg_Consulta[playerid]);
                new 
f_InfDialogo[230] = "Genero\tTotal",
                    
f_Genero[30],
                    
f_Canciones;
                for(new 
0cache_num_rows(); b++)
                {
                    
cache_save_string(b,"Genero",f_Genero);
                    
cache_save_int(b,"#",f_Canciones);
                    
strcat(f_InfDialogosprintf("\n%s\t%d",f_Generof_Canciones));
                }
                
ShowPlayerDialog(playeridDIALOGO_MUSICA_CARPETASDIALOG_STYLE_TABLIST_HEADERS"Reproductor de Mъsica"f_InfDialogo"Ver","Atrбs");
            }
        }
        case 
DIALOGO_MUSICA_CARPETAS:
        {
            if(!
response)
            {
                
mysql_format(h_MySQLg_Consulta[playerid], GLOBAL_QUERY_SIZE"SELECT COUNT("TABLA_CANCION".can_id) As 'tot_canciones'  FROM "TABLA_CANCION"");
                 
mysql_query(h_MySQLg_Consulta[playerid]);
                 new 
f_InfDialogo[100] = "Biblioteca\tDisponibles",
                     
f_TotalCanciones;
                
cache_save_int(0,"tot_canciones",f_TotalCanciones);
                 
strcat(f_InfDialogo,sprintf("\nServidor\t%d"f_TotalCanciones));
                 
strcat(f_InfDialogo,"\nPersonal\tPrуximamente");
                 
ShowPlayerDialog(playeridDIALOGO_MUSICA_PRINCIPALDIALOG_STYLE_TABLIST_HEADERS"Reproductor de Mъsica"f_InfDialogo"Ver""Salir");
            }
            if(
response)
            {
                
cache_save_int(listitem,"GeneroID",ItemSeleccionado[playerid]);
                
mysql_format(h_MySQLg_Consulta[playerid], GLOBAL_QUERY_SIZE"SELECT DISTINCT(servidor_Cancion.can_artista) As 'Artista', COUNT(DISTINCT servidor_Cancion.can_id) As 'tot_canciones' FROM servidor_Cancion,servidor_Carpeta WHERE servidor_Cancion.carp_id = %d GROUP BY servidor_Cancion.can_artista",ItemSeleccionado[playerid]);
                
mysql_query(h_MySQLg_Consulta[playerid]);
                new 
f_InfDialogo[500] = "Artista\tDisponible",
                    
f_Artista[30],
                    
f_Canciones;
                for(new 
0cache_num_rows(); b++)
                {
                    
cache_save_string(b,"Artista",f_Artista);
                    
cache_save_int(b,"tot_canciones",f_Canciones);
                    
strcat(f_InfDialogosprintf("\n%s\t%d",f_Artistaf_Canciones));
                }
                
ShowPlayerDialog(playeridDIALOGO_MUSICA_CANCIONESDIALOG_STYLE_TABLIST_HEADERS"Reproductor de Mъsica"f_InfDialogo"Ver","Atrбs");
            }
        }
        case 
DIALOGO_MUSICA_CANCIONES:
        {
            if(!
response) return 1;
            if(
response)
            {
                new 
f_Artista[50];
                
cache_save_string(listitem,"Artista",f_Artista);
                
mysql_format(h_MySQLg_Consulta[playerid], GLOBAL_QUERY_SIZE"SELECT can_id As 'CancionID', can_artista As 'Artista', can_nombre As 'Cancion', can_popularidad As 'Reprod', can_url As 'URL' FROM servidor_Cancion WHERE `can_artista` LIKE '%e'"f_Artista);
                
mysql_query(h_MySQLg_Consulta[playerid]);
                new 
f_InfDialogo[500] = "Artista\tCanciуn\tReproducciones",
                        
f_Artista2[30],
                        
f_Cancion[50],
                        
f_Reproducciones;
                for(new 
0cache_num_rows(); b++)
                {
                    
cache_save_string(b,"Artista",f_Artista2);
                    
cache_save_string(b,"Cancion",f_Cancion);
                    
cache_save_int(b,"Reprod",f_Reproducciones);
                    
strcat(f_InfDialogosprintf("\n%s\t%s\t%d",f_Artista2f_Cancionf_Reproducciones));
                }
                
ShowPlayerDialog(playeridDIALOGO_MUSICA_REPRODUCCIONDIALOG_STYLE_TABLIST_HEADERS""NOMBRE_SERVIDOR" - Reproductor de Mъsica"f_InfDialogo"Reproducir""Menъ");
            }
        }
        case 
DIALOGO_MUSICA_REPRODUCCION:
        {
            if(
response)
            {
                new 
f_Artista[30],
                    
f_Cancion[50],
                    
f_URL[50],
                    
f_CancionID;
                
cache_save_string(listitem,"Artista",f_Artista);
                
cache_save_string(listitem,"Cancion",f_Cancion);
                
cache_save_string(listitem,"URL",f_URL);
                
cache_save_int(listitem,"can_id",f_CancionID);
                
mysql_format(h_MySQLg_Consulta[playerid], GLOBAL_QUERY_SIZE"UPDATE servidor_Cancion SET `can_popularidad` = can_popularidad + 1 WHERE can_id = %d "f_CancionID);
                
mysql_query(h_MySQLg_Consulta[playerid]);
                
PlayAudioStreamForPlayer(playeridf_URL);
                
SendClientMsg(playerid, -1"Reproductor"sprintf("Estas reproduciendo {1abc9c}%s{FFFFFF} del artista {1abc9c}%s{FFFFFF}."f_Cancionf_Artista));
            }
        } 
Reply
#2

Solucionado era con cache, bueno por lo menos hasta el momento eso me a ayudado.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)