Forum » Programiranje » [C++/Mysql] problem z mysql_num_rows
[C++/Mysql] problem z mysql_num_rows
matijaz74 ::
Pozdravljeni!
Kot je v naslovu razvidno. Imam problem z to funkcijo. Kako naj izvem koliko vrstic je bilo izpisanih. Vem da vrne tip my_ulonglong. Poskusil sem tudi spremeniti v unsigned long vendar mi zmeraj pokaže 0.
Hvala vam za pomoč. Vse sem že pogledal preveril vendar nobena varjanta ni pravilna.
Kot je v naslovu razvidno. Imam problem z to funkcijo. Kako naj izvem koliko vrstic je bilo izpisanih. Vem da vrne tip my_ulonglong. Poskusil sem tudi spremeniti v unsigned long vendar mi zmeraj pokaže 0.
sql = "SELECT * FROM test"; if(mysql_query(conn,sql)){ // tu bi izpisal koliko je vrstic }
Hvala vam za pomoč. Vse sem že pogledal preveril vendar nobena varjanta ni pravilna.
lp
Matijaž
Matijaž
mallard ::
Kako in kje pa kličeš mysql_num_rows()?
Tako, kot maš ti nastavljeno:
Si morda mislil:
Tako, kot maš ti nastavljeno:
if(mysql_query(conn, sql)) { // do sem pridemo, če v mysql_query() pride do napake }
Si morda mislil:
if (!mysql_query(conn, sql)) { // uspeh }
matijaz74 ::
:)
Ja res je. Sem pozabil dodati klicaj.
V glavnem ...
Tako bo bolj razumljivo ... mislim. Hvala vam za odgovor.
Ja res je. Sem pozabil dodati klicaj.
V glavnem ...
sql = "SELECT * FROM test"; if(!mysql_query(conn,sql)){ result = mysql_use_result(conn); if(mysql_num_rows(result)!=0){ <= to mi ne dela // rešitev } }
Tako bo bolj razumljivo ... mislim. Hvala vam za odgovor.
lp
Matijaž
Matijaž
mallard ::
Tu med drugim piše:
If you use mysql_use_result(), mysql_num_rows() does not return the correct value until all the rows in the result set have been retrieved.
Torej, ali uporabi mysql_store_result() ali pa kliči mysql_fetch_row() dokler ti ne vrne NULL (šele potem boš dobil pravilno vrednost iz mysql_num_rows()).
If you use mysql_use_result(), mysql_num_rows() does not return the correct value until all the rows in the result set have been retrieved.
Torej, ali uporabi mysql_store_result() ali pa kliči mysql_fetch_row() dokler ti ne vrne NULL (šele potem boš dobil pravilno vrednost iz mysql_num_rows()).
Zgodovina sprememb…
- spremenilo: mallard ()
matijaz74 ::
Hvala, mallard. Sem opazil ta stavek. Pa nisem razumel, kaj so hoteli s tem reči. Hmmm ... po mojem malo čudno deluje to. V PHP funkcija čisto drugače deluje. Da bom vedel koliko je izpisanih vrstic bom naredil COUNT v SQL-u bo bolje tako. Bom vsaj vedel ali je podatek notri ali ne, da imam razlog z vnos. Še enkrat hvala.
lp
Matijaž
Matijaž
Veron ::
^^ raje z sql stavkom COUNT preštej število vrstic, razen če še kaj drugega nardiš iz tega...
Zgodovina sprememb…
- spremenil: Veron ()
matijaz74 ::
Ne count zaganjat na veliki bazi! Odvisno kaj potrebuješ... malo obširneje opiši problem
Kako pa bi ti preveril, ali je določeni podatek že v bazi ali ne? Jaz sem izvedel to tazadnjo varjanto in mi super deluje.
Problem je veliko večji. Namreč delam spletno aplikacijo. Želel sem samo prenesti podatke iz ogromne tekstovne datoteke (25MB) v bazo. Ker preko PHP in Mysql ni šlo. Zato sem se odločil, da naredil program v C++ z katerim bom razčlenil in prenesel podatke iz tekstovne datoteke v bazo. Če ima kdo boljšo rešitev mi prosim lahko napiše. Hvala, vam vseeno za pomoč in za dogovor.
lp
Matijaž
Matijaž
Spura ::
The fuck? Zakaj pa preko PHP ne gre?
A to kao da user submita tako datoteko, ali da to ti vsake toliko polnis bazo?
A to kao da user submita tako datoteko, ali da to ti vsake toliko polnis bazo?
matijaz74 ::
:) Browser zablokira. Pa preko interneta to ne gre. DA sem se odločil za C++ je bila pametna rešitev. Sedaj deluje, kot je treba. Hvala!
lp
Matijaž
Matijaž
matijaz74 ::
aha ... sem pozabil odgovoriti. Še na eno vprašanje. Kot administrator da vsake toliko časa polnim bazo. :)
lp
Matijaž
Matijaž
Spura ::
Loooooool zakaj si pa pol preko neta to pocel? Sej PHP najbrz tudi lokalno dela, tako kot tvoj C++ programcek. Za preko neta bi se pa moral tega drugace lotit.
technolog ::
Loooooool zakaj si pa pol preko neta to pocel? Sej PHP najbrz tudi lokalno dela, tako kot tvoj C++ programcek. Za preko neta bi se pa moral tega drugace lotit.
Ne?
25 mega datoteka ni bavbav za noben današnji browser. Seveda je treba v phpju nastavt tiste max_upload_size flage.
Tam pri datoteki 1GB+ bi se jaz šele ukvarjal s takimi stvarmi.
Spura ::
A sem rekel da je velikost datoteke problem? Problem je ce ima taka datoteka 10000 vrstic za insertirat v bazo in potem browser timeouta. Ali pa se vsaj uporabniku zdi da predolgo traja in zapre (kar sicer tehnicno ni problem, samo z uporabniskega stalisca pa je).
Zgodovina sprememb…
- spremenil: Spura ()
matijaz74 ::
Loooooool zakaj si pa pol preko neta to pocel? Sej PHP najbrz tudi lokalno dela, tako kot tvoj C++ programcek. Za preko neta bi se pa moral tega drugace lotit.
Mislil in nič vedel, da bo lahko to požrlo. Lokalno tudi ne gre. To je pa čisto odvisno od mašine. Mašina že prebere vrstico po vrstici datoteko. Če pa je baza zraven pa že ne zmore več. Seveda se lahko nastavi max_upload_size. Datoteka pa nima 10kvrstic amapak 200k vrstic. :) Potem mora še razrezati na posamezne podatke potem pa še v bazo insertat. Hmmm ... preveč. C++ program je lepo uredil in insertal v bazo. Tako bom sedaj preko neta poslal SQL skripto in insertal na strežnik (Ta ni lokalno).
Hvala, obema, problemček je rešen. :)
lp
Matijaž
Matijaž
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C - shranjevanje rezultatov iz baze v arrayOddelek: Programiranje | 1220 (919) | Randomness |
» | PHP - header : javi napakoOddelek: Izdelava spletišč | 1306 (1261) | Camel |
» | [PHP]Zajem podatkov iz bazeOddelek: Programiranje | 4038 (3675) | cobrica |
» | PHP in JS problem :(Oddelek: Programiranje | 1719 (1527) | l0g1t3ch |
» | [c++] osnovna težava z mysql apiOddelek: Programiranje | 2057 (1696) | SasoS |