-
Üdv!
dbPoll segítségével adatokat dolgozok fel adatbázisból, de nem adja vissza a teljes szöveget amit be kellene töltenie.
Az alábbi kódban a teleports[i ][key2] = value2 résznél a value2 értéke az oszlopban tárolt szövegből az első vagy 4. karakterig tölti be, pedig a mysql adatbázisban nem csak annyi van ott.
Valaki helyreigazítana? :D
--dbQuery(processTeleportComment,database, \"SELECT comment FROM teleports\")function processTeleportComment(qh)local result, num_affected_rows, last_insert_id = dbPoll ( qh, 0 )local i = 0if result then for key,value in pairs(result) do for key2,value2 in pairs(value) do teleports[key2] = value2 end i = i+1 endendend
-
Nem pontosan értem, hogy ez mire szolgálna de talán ez megfelel a célodra:
function processTeleportComment(qh)
local result, num_affected_rows, last_insert_id = dbPoll ( qh, 0 )
if result then
for key,value in pairs(result) do
teleports[key] = value[\"comment\"]
end
end
end
A dbPoll mindig egy 2 dimenziós táblát ad vissza aminek az első dimenziója a sorok a 2. dimenzióban vannak az oszlopaid
result = {
{comment = \"hello1\"},
{comment = \"hello2\"},
{comment = \"hello3\"}
}
Így néz ki. Ha több oszlopot is rekérsz akkor mennek be mellé pl.: {id=1, comment = \"hello1\"}
-
nem jó, mert a sima value változó is táblával tér vissza
result = {
{row 1 -> value={comment -> szöveg}},
{row 2 -> value={comment -> szöveg}},
{row 3 -> value={comment -> szöveg}}
}
for key,value in pairs(result) do -- ciklus a sorokon
for key2,value2 in pairs(value) do -- ciklus az adott sor oszlopain
Csak az a baj h a szöveget nem kapom vissza teljesen :(
-
Igen a value egy tábla ezért veszem ki a comment értékét, így value[\"comment\"]
-
Igen a value egy tábla ezért veszem ki a comment értékét, így value[\"comment\"]
Rendben, működik így is igazad volt. Viszont ugyan úgy csak 1 vagy 4 karakterig tölti be a szöveget :\'(
-
Furcsa. Milyen típusúra állítottad azt a comment mezőt a mysqlben?
-
Furcsa. Milyen típusúra állítottad azt a comment mezőt a mysqlben?
varchar(20)
-
SQL-ből küldtél bele adatot, vagy szerverről nyomtál be szöveget? Mert MTA-nál hajlamos (máshol is amúgy) beakadni és nem kiírni mindent, ha te phpmyadminban írsz bele szöveget és nem pedig szerverről küldi el az sql-be. :)
-
SQL-ből küldtél bele adatot, vagy szerverről nyomtál be szöveget? Mert MTA-nál hajlamos (máshol is amúgy) beakadni és nem kiírni mindent, ha te phpmyadminban írsz bele szöveget és nem pedig szerverről küldi el az sql-be. :)
Egy mentést töltöttem be egy régebbi tábláról, tehát kézzel vittem be phpmyadminba. SA:MP-nál sose volt ilyen problémám. :/
-
Véletlen nem mindig az ékezetes karakter elöttig van meg a string?
Próbáld meg a kapcsolat 2.argumentjébe beleírni, hogy charset=utf8
pl.: \"dbname=frank;host=1.2.3.4\";charset=utf8
Vagy kapcsolódás után adni egy ilyen parancsot az adatbázisnak:
dbExec( connection, \"SET NAMES utf8\")
-
Véletlen nem mindig az ékezetes karakter elöttig van meg a string?
Próbáld meg a kapcsolat 2.argumentjébe beleírni, hogy charset=utf8
pl.: \"dbname=frank;host=1.2.3.4\";charset=utf8
Vagy kapcsolódás után adni egy ilyen parancsot az adatbázisnak:
dbExec( connection, \"SET NAMES utf8\")
Köszönöm, megoldotta a problémám :) big up