Ich stehe hier gerade vor einem kleinen Problem. Ich hab das damals schon versucht zusammen mit ReWrite zu lösen. Jedoch ohne Erfolg. Nun hab ich gestern nochmal alles neu geschrieben, und stehe wieder vor dem gleichen Problem.
Es soll ein WBB4 connector werden, den ich in kürze auch releasen möchte (ggf. heute Abend). Dies ist eigentlich keine große Sache und es ist auch schon so gut wie alles fertig. Jedoch gibt es kleinere Probleme beim hinzufügen von Threads in die Datenbank.
Ich habe zwar eine Lösung gefunden, sodass es funktioniert, aber die gefällt mir ganz und gar nicht. Sie schaut wie folgt aus:
function wcf.addThread(userID, boardID, title, text)
sT = getTickCount() --DEV
if not wcf.handler then wcf.message("Not connected to mysql server") return false end
assert((type(userID) == "number" or type(userID) == "string"), "Invalid number/string @ argument 1")
assert((type(boardID) == "number" or type(boardID) == "string"), "Invalid number/string @ argument 2")
assert(type(title) == "string", "Invalid string @ argument 3")
assert(type(text) == "string", "Invalid string @ argument 4")
local username = wcf.getUsername(userID)
local timestamp = getRealTime().timestamp
if mysql.insert("wbb1_thread", "boardID, topic, userID, username, time", "?,?,?,?,?", boardID, title, userID, username, timestamp) then
for _ = 1, 1000000 do end
local threadID = mysql.get("wbb1_thread", "threadID", "boardID", boardID, "topic", title)
wcf.message("ThreadID: " .. tostring(threadID)) --DEV
mysql.insert("wbb1_post", "threadID, userID, username, subject, message, time", "?,?,?,?,?,?", threadID, userID, username, title, text, timestamp)
for _ = 1, 1000000 do end
local postID = mysql.get("wbb1_post", "postID", "userID", userID, "time", timestamp)
wcf.message("ThreadID: " .. tostring(threadID)) --DEV
mysql.set("wbb1_thread", "lastPostID", postID, "threadID", threadID)
mysql.set("wbb1_thread", "lastPostTime", timestamp, "threadID", threadID)
end
end
Alles anzeigen
Ich denke euch sind sicherlich die zwei Schleifen aufgefallen. Tzja, die sind i.wie nötig, weil ansonsten ich keine threadID zurück bekomme (nil). Für die PostID ist das der gleiche Fall. Mach ich keine Schleife, die ein paar Ticks in Anspruch nimmt, bekomm ich nur nil zurück.
Bei den schleifen hab ich einfach 1 Million Durchläufe gemacht. Eventuell reichen auch 100.000 oder 10.000. Das hab ich jetzt nicht ausprobiert.
Ansonsten funktioniert es, und die Themen werden in jedem Fall erstellt. Um jedoch ein Post hinzuzufügen brauch ich die ThreadID, die dann dem Post zugewiesen wird.
Ich hoffe das irgend jemand, der in diesem Thema mehr Erfahrung hat, mir hier helfen kann O:
gruß
@Jusonex: sbx320: ? *whistling*
Nebenbei, für den kompletten Durchlauf dieser Funktion braucht das Script etwa 61 Ticks. Falls das i.wie helfen sollte.