Bug while.
#1

Hello!

Here I have a problem with my loop.

I had to worry about, so I do log (printf) and it tells me PosX value 0.00000 in printf while in my MySQL database value is not 0.

I also consulted my debug.txt values ​​were good but there was this:

CMySQLHandler::FetchRow() - You cannot call this function now. (Reason: Empty Result)



pawn Code:
public LoadSQLObjets()
{
    new i;
   
    new requete[1024],
        Charger[35];
   
    while(i <= MAX_OBJETS)
    {
        format(requete, sizeof(requete), "SELECT * FROM srp_players_objets WHERE LOWER(ID) = LOWER('%d') LIMIT 1", i);
        mysql_query(requete);
        mysql_store_result();
        if(mysql_num_rows() != 0)
        {
            while(mysql_fetch_row_format(requete, "|"))
            {
               
                mysql_fetch_field_row(Charger, "ID"); ObjetsInfo[i][ID] = strval(Charger);
                mysql_fetch_field_row(Charger, "IDOBJET"); ObjetsInfo[i][IDOBJET] = strval(Charger);
               
                mysql_fetch_field_row(Charger, "VW"); ObjetsInfo[i][VW] = strval(Charger);
                mysql_fetch_field_row(Charger, "Inte"); ObjetsInfo[i][Inte] = strval(Charger);
               
                mysql_fetch_field_row(Charger, "PosX"); ObjetsInfo[i][PosX] = floatstr(Charger);
                mysql_fetch_field_row(Charger, "PosY"); ObjetsInfo[i][PosY] = floatstr(Charger);
                mysql_fetch_field_row(Charger, "PosZ"); ObjetsInfo[i][PosZ] = floatstr(Charger);
               
                mysql_fetch_field_row(Charger, "poseur"); strmid(ObjetsInfo[i][Poseur], Charger, 0, strlen(Charger), 255);
               

                mysql_fetch_field_row(Charger, "Gilet"); ObjetsInfo[i][Gilet] = floatstr(Charger);
       
                mysql_fetch_field_row(Charger, "Sommes"); ObjetsInfo[i][Sommes] = strval(Charger);
                mysql_fetch_field_row(Charger, "VarieteArme"); ObjetsInfo[i][VarieteArme] = strval(Charger);
               
                printf("While: %f", ObjetsInfo[i][PosX]);
       
                if(ObjetsInfo[i][IDOBJET] == 1242) // Gilet, on le mets а Z - 0.85
                {
                    ObjetsAuSol[i] = CreateDynamicObject(ObjetsInfo[i][IDOBJET], ObjetsInfo[i][PosX], ObjetsInfo[i][PosY], ObjetsInfo[i][PosZ]-0.85, 0.0, 0.0, 0.0, ObjetsInfo[i][VW], ObjetsInfo[i][Inte], -1, 100.0);
                }
                else
                {
                    ObjetsAuSol[i] = CreateDynamicObject(ObjetsInfo[i][IDOBJET], ObjetsInfo[i][PosX], ObjetsInfo[i][PosY], ObjetsInfo[i][PosZ]-1, 0.0, 0.0, 0.0, ObjetsInfo[i][VW], ObjetsInfo[i][Inte], -1, 100.0);
                    printf("Objet: %f", ObjetsInfo[i][PosX]);
                }

                mysql_free_result();
            }
            i++;
        }
        else
        {
            i++;
            continue;
        }
        if(i >= MAX_OBJETS)
        {
            break;
        }
    }
    return 1;
}
Reply
#2

up please.
Reply
#3

UP please.

(+reps for help)
Reply
#4

Indeed, there is no need to do that.

SELECT * FROM srp_players_objets WHERE LOWER(ID) = LOWER('%d') LIMIT 1

to:

SELECT * FROM srp_players_objets WHERE ID = '%d' LIMIT 1

it will be correct for the query?
Reply
#5

I think so.
Try and tell us.
Reply
#6

I made the change, it does not change in any case the initial worries.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)