tengo un problema con sql
#1
buenas foro, recientemente he aprendido a usar sql, he probado el plugin y todo bien pero tengo un pequeño problema

estoy usando el stock de destro para convertir un array tipo new player[33][64], al momento de guardarla me la guarda bien, como string y en la base aparece como 0 0 0 1 1 0 0 0 0.....

el problema es al cargar los datos, no me convierte el string a numero ni me lo almacena en mi array

suponiendo que mi variable es new player[33][64], mi funcion de cargado es

Código PHP:
public Cargar(id)
{
    new 
string[99]
    
    
g_Tuple SQL_PrepareQuery(g_Connection"SELECT db_player FROM ^"%s^" WHERE Nombre = ^"%s^""g_dbtablepname[id])

    if(
SQL_Execute(g_Tuple))
    {
        
string[id] = SQL_ReadResult(g_Tuple0)

        
string_to_arraynum(string[id], player[id], charsmax(string))
    }


y el stock que uso es

Código PHP:
stock string_to_arraynum(const in[], output[], size)
{
    new 
lenjkctemp[13// "-2147483648 "
 
    
while(in[len])
    {
        if(
in[len] == ' ')
        {
            
output[j++] = str_to_num(temp)

            for(
0kc++) temp[c] = 0
            k 
0
        
}
        
        if(
== size) return len

        temp
[k++] = in[len++]
    }

    
output[j++] = str_to_num(temp)
    while(
sizeoutput[j++] = 0
 
    
return len


entonces que estoy haciendo mal ? no entiendo bien como funciona ese stock por lo que vi en los post de donde lo saque, pero la cosa es que me carga todos los datos bien menos los strings que deberian ser convertidos a array
Responder
#2
No entiendo bien que quieres hacer, pero si quieres recuperar un string es así
Código PHP:
new player[33][64]
SQL_ReadResult(g_Tuple0player[id], charsmax(player[])) 
Responder
#3
gracias ndrs, ya lo solucione jajjaa, me fije en otro plugin disculpen las molestias

la solucion fue:

Código PHP:
public Cargar(id)
{
    new string[99]
    
    g_Tuple 
SQL_PrepareQuery(g_Connection"SELECT db_player FROM ^"%s^" WHERE Nombre = ^"%s^""g_dbtablepname[id])

    if(SQL_Execute(g_Tuple))
    {
        string[id] = SQL_ReadResult(g_Tuple0stringcharsmax(string))
    }

    string_to_arraynum(string[id], player[id], charsmax(string))


bueno ahora tengo otro problema xd, la cosa es que no me guarda la primera string, dentro del servidor si mando un print sale 0 1 0 0 0 0 0, pero me la guarda como 1 0 0 0 0 0 (ignorando el primer 0), investigando un poco con prints, parece ser que solo pasa cuando me desconecto (al desconectarme me quita la primera cifra) cosa que no pasa dentro del servidor
Responder
#4
Deberías usar mysqlt v: se me hizo más fácil
Responder
#5
de momento lo pude solucionar con un stock de metalicros que convierte arrays a string, pero voy a probar eso, gracias
Responder
#6
(14/01/2022, 12:53 PM)Nelo escribió: gracias ndrs, ya lo solucione jajjaa, me fije en otro plugin disculpen las molestias

la solucion fue:

Código PHP:
public Cargar(id)
{
    new string[99]
    
    g_Tuple 
SQL_PrepareQuery(g_Connection"SELECT db_player FROM ^"%s^" WHERE Nombre = ^"%s^""g_dbtablepname[id])

    if(SQL_Execute(g_Tuple))
    {
        string[id] = SQL_ReadResult(g_Tuple0stringcharsmax(string))
    }

    string_to_arraynum(string[id], player[id], charsmax(string))


bueno ahora tengo otro problema xd, la cosa es que no me guarda la primera string, dentro del servidor si mando un print sale 0 1 0 0 0 0 0, pero me la guarda como 1 0 0 0 0 0 (ignorando el primer 0), investigando un poco con prints, parece ser que solo pasa cuando me desconecto (al desconectarme me quita la primera cifra) cosa que no pasa dentro del servidor

No se si cuando lo solucionaste cambiaste algo de esto, pero..
Código PHP:
string[id] = SQL_ReadResult(g_Tuple0stringcharsmax(string)) 
se lo cambiaria a
Código PHP:
SQL_ReadResult(g_Tuple0stringcharsmax(string)) 

La única duda es por que tienes new string[99] y usas a ID que llegaría 32
Responder
#7
originalmente no era id, era una string que se almacenaba en una variable del servidor y le puse 99 porque al convertir array a string tambien se almacenan las comas (cuando estaba probando), despues lo cambie y me olvide de cambiar esa parte
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)