GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: tudvari - 2014. Március 13. - 23:53:28

Cím: MySQL kiolvasás
Írta: tudvari - 2014. Március 13. - 23:53:28
Sziasztok!
Kitöröltem a meglévõ sorokat a táblából,és mégis amikor egy újat szúrok be,akkor úgy érzékeli,hogy ott vannak a sorok,és a számlálást tovább folytatni.Mi lehet a probléma.
Másik:
 
new row2[256];
               new field2[17][24];
               format(file, sizeof(file), \"SELECT * FROM Hazak WHERE X=\'%f\' AND Y=\'%f\' AND Z=\'%f\'\",x,y,z);
               mysql_query(file);
               mysql_store_result();
               mysql_fetch_row_format(row2, \"|\");
               explode(row2, field2, \"|\");
               mysql_free_result();
               new id = strval(field2[0]);
               HazInfo[id][ujHaz] = 1;
 
               GetPlayerName(playerid,nev,sizeof(nev));
               format(file,sizeof(file),\"%s létrehozott egy házat! ID: %d | Belsõ ID: %d | Eladási Ár: %d Ft\",nev,id,belso,ar);

 
Az id változó mindig 0.Miért?
[gmod]Javítottam helyetted a

taget

tagre![/gmod]
Cím: MySQL kiolvasás
Írta: Dfoglalo - 2014. Március 14. - 00:47:05
Most megyek aludni, szóval mára csak egy kis észrevételt tennék: ne a koordináták legyenek a feltételek, ugyanis azok lehetnek máshol is ugyanazok, valamint probléma lehet, ha különbözõ számú számjegyek vannak a nem egész részen a lekérdezéskor, mint az adatbázisban - s*@r megfogalmazás, szóval itt egy példa: 1,827 a lekérdezés, de a db-ben már 1,8 van. Így - ha jól tudom - nem fog teljesülni a felvétel. De ez nem biztos, mert ez float, nem sima szám, vagy bármi más... Na mindegy. Holnap kicsit megnézem a kódot a konkrét problémáddal kapcsolatban is, ha csak addig le nem elõznek engem.
Cím: MySQL kiolvasás
Írta: Kovacs_Richard - 2014. Március 14. - 02:53:17
az auto_incrementre gondolsz?
ezzel tudod állítani:
 
ALTER TABLE tábla_név AUTO_INCREMENT = 1;[/quote]
Cím: MySQL kiolvasás
Írta: Pedró - 2014. Március 14. - 06:47:20
Mutasd a tablat.
Cím: MySQL kiolvasás
Írta: tudvari - 2014. Március 14. - 08:14:26
Az auto-increment be van állítva és az mûködik is.
Példa: 1,2,3,4-es ID jû sorok vannak a táblában.Törlöm õket.
Ezután ha beakarok szúrni egyet,akkor 5-ös ID-t rakni neki.
\"8420f90ebd4dcd0585eb8b5180719169.png\"
Cím: MySQL kiolvasás
Írta: Dfoglalo - 2014. Március 14. - 08:27:27
A táblát megnyitva phpMyAdminnal jobb felül az Operations/Mûveletek fülön át tudod állítani az auto_incrementet a következõre.
Cím: MySQL kiolvasás
Írta: tudvari - 2014. Március 14. - 08:38:36
Na ez megoldva,köszi.Csak így ha törlök valamit,akor mindig mindent törölnöm kell.Mert csak akkor engedi átírni,ha nincs sor a táblában.
Másikra van valami megoldásotok pls?
A koordináta egyedi,mert ezek házbejáratok.
 
CMD:ujhaz(playerid,params[])
{
if(Belepve[playerid] != 0)
{
          if(JatekosInfo[playerid][Admin] == 4)
          {
              new belso,ar;
          if(sscanf(params,\"dd\",belso,ar))return SendClientMessage(playerid,SZURKE,\"Használat: /ujhaz [belsõ ID] [Eladási ár]\");
          {
              if(belso > 0 && belso < 9)
              {
               new Float:x,Float:y,Float:z;
               GetPlayerPos(playerid,x,y,z);
               new file[512];
               AddStaticPickup(1239, 23, x,y,z, 0);
               if(belso == 1)
               {
                        format(file, sizeof(file), \"INSERT INTO Hazak (X,Y,Z,Interior,Belso,Zarva,Ar) VALUES (\'%f\',\'%f\',\'%f\',\'1\',\'1\',\'1\',\'%d\')\", x,y,z,ar);
                  mysql_query(file);
               }
               if(belso == 2)
               {
                  format(file, sizeof(file), \"INSERT INTO Hazak (X,Y,Z,Interior,Belso,Zarva,Ar) VALUES (\'%f\',\'%f\',\'%f\',\'4\',\'2\',\'1\',\'%d\')\", x,y,z,ar);
                  mysql_query(file);
               }
               if(belso == 3)
               {
                  format(file, sizeof(file), \"INSERT INTO Hazak (X,Y,Z,Interior,Belso,Zarva,Ar) VALUES (\'%f\',\'%f\',\'%f\',\'5\',\'3\',\'1\',\'%d\')\", x,y,z,ar);
                  mysql_query(file);
               }
               if(belso == 4)
               {
                  format(file, sizeof(file), \"INSERT INTO Hazak (X,Y,Z,Interior,Belso,Zarva,Ar) VALUES (\'%f\',\'%f\',\'%f\',\'9\',\'4\',\'1\',\'%d\')\", x,y,z,ar);
                  mysql_query(file);
               }
               if(belso == 5)
               {
                  format(file, sizeof(file), \"INSERT INTO Hazak (X,Y,Z,Interior,Belso,Zarva,Ar) VALUES (\'%f\',\'%f\',\'%f\',\'15\',\'5\',\'1\',\'%d\')\", x,y,z,ar);
                  mysql_query(file);
               }
               if(belso == 6)
               {
                  format(file, sizeof(file), \"INSERT INTO Hazak (X,Y,Z,Interior,Belso,Zarva,Ar) VALUES (\'%f\',\'%f\',\'%f\',\'8\',\'6\',\'1\',\'%d\')\", x,y,z,ar);
                  mysql_query(file);
               }
               if(belso == 7)
               {
                  format(file, sizeof(file), \"INSERT INTO Hazak (X,Y,Z,Interior,Belso,Zarva,Ar) VALUES (\'%f\',\'%f\',\'%f\',\'6\',\'7\',\'1\',\'%d\')\", x,y,z,ar);
                  mysql_query(file);
               }
               if(belso == 8)
               {
                  format(file, sizeof(file), \"INSERT INTO Hazak (X,Y,Z,Interior,Belso,Zarva,Ar) VALUES (\'%f\',\'%f\',\'%f\',\'6\',\'8\',\'1\',\'%d\')\", x,y,z,ar);
                  mysql_query(file);
               }
               new row2[256];
               new field2[17][24];
               format(file, sizeof(file), \"SELECT * FROM Hazak WHERE X=\'%f\' AND Y=\'%f\' AND Z=\'%f\'\",x,y,z);
               mysql_query(file);
               mysql_store_result();
               mysql_fetch_row_format(row2, \"|\");
               explode(row2, field2, \"|\");
               mysql_free_result();
               new id = strval(field2[0]);
               HazInfo[id][ujHaz] = 1;
 
               GetPlayerName(playerid,nev,sizeof(nev));
               format(file,sizeof(file),\"%s létrehozott egy házat! ID: %d | Belsõ ID: %d | Eladási Ár: %d Ft\",nev,id,belso,ar);
               AdminnakUzenet(VNARANCS,file,1);
            }
            else SendClientMessage(playerid, HIBA, \"A belsõnek 1-8-ig kell lennie!\");
         }
      }
      else SendClientMessage(playerid, HIBA, \"Minimum 4-as adminnak kell lenned!\");
 
}
else SendClientMessage(playerid, HIBA, \"Nem vagy bejelentkezve!\");
return 1;
}

 
Onnan tudom,hogy nem jó,hogy az olyan házakat nem kéne mentenie automatikus mentésnél,aminek az UjHaz == 1.
Meg onnan,hogy az újház létrehozásnál az ID mindig 0.
És csak a 0-ás ház UjHaz változóját írja át.
[gmod]Javítottam helyetted a

taget

tagre![/gmod]
Cím: MySQL kiolvasás
Írta: Dfoglalo - 2014. Március 14. - 13:31:26
Akkor is engedi, ha vannak sorok a táblában. Csupán azokra a számokra nem írhatod át, amelyek egyenlõek, vagy kisebbek, mint a legnagyobb auto incrementes érték a sorok egyikében.
Cím: MySQL kiolvasás
Írta: tudvari - 2014. Március 14. - 15:04:17
ok,köszi.
Az másikban valaki?
Cím: MySQL kiolvasás
Írta: Pedró - 2014. Március 14. - 18:48:07
Azt nem értem, hogy miért zavar téged, hogy mennyi az id-je a házaknak..
Maximum annyit tehetsz, hogy lefuttatsz egy for ciklust, és átállítod az összes sornak az értékét sorrendbe, majd beállítod az auto incrementet a sorok számával.
 
ALTER TABLE *TÁBLANÉV* AUTO_INCREMENT = *SOROKSZÁMA*;

 
[gmod]Kitettem helyetted a

taget![/gmod]
Cím: MySQL kiolvasás
Írta: tudvari - 2014. Március 14. - 19:18:06
Ez már még meg van oldva.És azért,hogy 1-tõl 500-ig legyenek házak,és ne legyenek hézagok stb.Szeretem a rendet.
De a másik hibára mindig nem kaptam választ.
 
new row2[256];
       new field2[17][24];
       format(file, sizeof(file), \"SELECT * FROM Hazak WHERE X=\'%f\' AND Y=\'%f\' AND Z=\'%f\'\",x,y,z);
       mysql_query(file);
       mysql_store_result();
       mysql_fetch_row_format(row2, \"|\");
       explode(row2, field2, \"|\");
       mysql_free_result();
       new id = strval(field2[0]);
       HazInfo[id][ujHaz] = 1;
 
       GetPlayerName(playerid,nev,sizeof(nev));
       format(file,sizeof(file),\"%s létrehozott egy házat! ID: %d | Belsõ ID: %d | Eladási Ár: %d Ft\",nev,id,belso,ar);

 
Az id változó mindig 0.Miért?
[gmod]Javítottam helyetted a

taget

tagre![/gmod]
Cím: MySQL kiolvasás
Írta: Pedró - 2014. Március 16. - 20:29:08
Használj SSCANF-t, sokkal átláthatóbb karakterlánc felbontásoknál..
Cím: MySQL kiolvasás
Írta: tudvari - 2014. Március 17. - 15:46:59
Már mindegy.Megoldottam.De köszi,megnézem,lehet áttérek.
Cím: MySQL kiolvasás
Írta: Dfoglalo - 2014. Március 17. - 19:16:30
[mod]Ha jól értem, megoldottad az összes itt felvetett problémádat. Ebben az esetben zárom a témát. Ha mégis lenne még itt teendõd, írj PÜ-t.[/mod]
Cím: MySQL kiolvasás
Írta: Pedró - 2014. Március 16. - 20:29:08
Használj SSCANF-t, sokkal átláthatóbb karakterlánc felbontásoknál..
Cím: MySQL kiolvasás
Írta: tudvari - 2014. Március 17. - 15:46:59
Már mindegy.Megoldottam.De köszi,megnézem,lehet áttérek.
Cím: MySQL kiolvasás
Írta: Dfoglalo - 2014. Március 17. - 19:16:30
[mod]Ha jól értem, megoldottad az összes itt felvetett problémádat. Ebben az esetben zárom a témát. Ha mégis lenne még itt teendõd, írj PÜ-t.[/mod]