Jump to content

SQLite شرح


Recommended Posts

تتحقق من الكولمن المحفوظ ,

بمعنى لو سويت كذا

executeSQLQuery ( "CREATE TABLE IF NOT EXISTS test ( c1, c2 )" ) 

* test : اسم الجدول داخل القاعده

* c1 : الكولمن او العمود الاول , او القيمه الاولى

* c2 : الكولمن او العمود الثاني , او القيمه الثانيه

بعدين تضيف قيمه للأعمده ..

executeSQLQuery("INSERT INTO `test`(`c1`, `c2`) VALUES(?,?)", getPlayerName ( defiend ), getPlayerPing ( defiend ) ) 

الحين ابي اتحقق من العمود الاول ,

function select_ ( name ) 
    local data = executeSQLQuery ( "SELECT * FROM test WHERE c1 = ?",  name  ) 
        if ( type ( data ) == "table" and #data == 0 or not data ) then 
            return {} 
    else 
            return true 
   end 
end 
  
addCommandHandler ( 'checks', function ( plr ) 
    if select_ ( getPlayerName ( plr ) ) then 
        return outputChatBox ( ' انت بالفعل موجود في القاعدة ' , plr ) 
    end 
end ) 

يعني تجي بَ ذي الطريقه ولآ ؟

addEventHandler('onResourceStart', resourceRoot, function(   ) 
        newSQL = executeSQLQuery ( "CREATE TABLE IF NOT EXISTS playersname ( column ) "  ) 
          for _, name in ipairs ( getElementsByType('  player  ') ) do 
            insertToColumn =  
            executeSQLQuery 
            ( 
               "INSERT INTO `test`(`column`) VALUES( ? )",  
                getPlayerName ( name ) 
            ) 
          local data = executeSQLQuery ( "SELECT * FROM playername WHERE column = ?",  name  ) 
         setTimer(  
               function(   ) 
                 outputChatBox(tostring(data)) end , 1000, 1, true ) 
   end 
end  ) 
  

Link to comment

ياخي هذي السكل من اهم قواعد البيانات ~_~"

لازم اضبط وضعي معها لو اجلس بالويكي 24 ساعه :lol::lol:

لا تحسب انها صعبه , انا كنت احسبها صعبه لكن طلعت سهله ,

شوف هذا شرح للأخ برستيج ,

مثال تسوي نظام حفظ الاحداثيات بـ SQL ( Serial ) ..

اول شيء نسوية نظيفة للقاعدة نسوي جدول بالقاعدة registry.db

لانه الفنكشن حق SQL

يستخدم قاعدهـ ( registry ) ..

اول شيء نسوي جدول داخل قاعدة :

addEventHandler('onResourceStart',resourceRoot, 
    function (      ) 
        local CreateNewTable = executeSQLQuery ('CREATE TABLE IF NOT EXISTS  `Save Position System` ( PlayerSerial,PlayerX,PlayerY,PlayerZ ) ') 
            if ( CreateNewTable ) then 
                outputDebugString('Create [ Save Position System ] Table done .') 
        end 
    end 
) 

اللي سويتة انا :

executeSQLQuery ('CREATE TABLE IF NOT EXISTS  `Save Position System` ( PlayerSerial,PlayerX,PlayerY,PlayerZ ) ') 

بس سويت متغير او مسمى للتيبل اللي بيتخزن بقاعدتنا الاولى و سويت الكولومن اللي احتاجهم على حسب اللي تسوية انا سويت هذولا :

PlayerSerial = بخزنة عالسريال

PlayerX = احداثي X

PlayerY = احداثي Y

PlayerZ = احداثي Z

وسميت الجدول حق القاعدة :

Save Position System = نظام حفظ الاحداثيات

الحين سوينا القاعدة عشان بـ استخدم :

executeSQLQuery ( 'CREATE TABLE IF NOT EXISTS MyTable or `MY TABLE` or 'My Table' ( column,... )' ) 

الحين ودكـ تخزن الاشياء صح ؟ انا بخزنها يوم يطلع الاعب من الروم . . :

addEventHandler('onPlayerQuit',root, 
    function (  ) 
    local x,y,z = getElementPosition ( source ) 
    local Results = executeSQLQuery("SELECT * FROM `Save Position System` WHERE PlayerSerial=?",getPlayerSerial ( source ) ) 
     if ( type ( Results ) == "table" and #Results == 0 or not Results ) then 
        executeSQLQuery ( "INSERT INTO `Save Position System` ( PlayerSerial,PlayerX,PlayerY,PlayerZ ) VALUES(?,?,?,?)",getPlayerSerial ( source ),x,y,z ) 
    else 
        executeSQLQuery('UPDATE `Save Position System` SET PlayerX =?, PlayerY =?, PlayerZ =? WHERE PlayerSerial =?',x,y,z,getPlayerSerial ( source ) ) 
    end 
end 
) 

الاشياء و الوظائف الثانية معروفة .. بس بوضح لك الـ ( SQL ) :

اول شيء نجيب النتائج عشان قبل لانخزن نتحقق اذا فية شيء مخزن نسوي لة تحديث مانخزن من جديد ~ :

local Results = executeSQLQuery("SELECT * FROM `Save Position System` WHERE PlayerSerial=?",getPlayerSerial ( source ) ) 

و الـ

Results يعتبر جدول لانة جدول اصلا .. الحين جبنا نتائج نتحقق :

if ( type ( Results ) == "table" and #Results == 0 or not Results ) then 
  

اذا ماكان فية شيء مخزن او او او التيبل = 0 نسوي ادخال للبيانات على سريال الاعب بالترتيب من الـ

Column اللي مسوية !

executeSQLQuery ( "INSERT INTO `Save Position System` ( PlayerSerial,PlayerX,PlayerY,PlayerZ ) VALUES(?,?,?,?)",getPlayerSerial ( source ),x,y,z ) 

اذا اول مرة تسوية ولا اذا كان مخزن تسوي تحديث بس ~ طبعا واضحة الاشياء من قبل

PlayerSerial = بخزنة عالسريال

PlayerX = احداثي X

PlayerY = احداثي Y

PlayerZ = احداثي Z

و اسم التيبل حق القاعدة واضح ~

و الـ

VALUES ( ?,?,? )

تكون على حسب اللي انت تحتاجها اصلا .. امم الحين نفرض انة مخزن من قبل ! ومسوي ادخال للبيانات وحصلها بالقاعدة وش المفترض تخزن ثانية ؟ لآ ~ : نسوي تحديث للبيانات :

executeSQLQuery('UPDATE `Save Position System` SET PlayerX =?, PlayerY =?, PlayerZ =? WHERE PlayerSerial =?',x,y,z,getPlayerSerial ( source ) ) 

SET = ? Wiki

WHERE = ? Wiki

UPDATE = ? Wiki

انت تحدث على مين ؟ على سريال الاعب

WHERE PlayerSerial =? -- التحديث بيكون عالسريال الخاص بالاعب #

الحين حفظنآ يوم خرج الاعب بنحمل البيانات يوم يسجل دخولة الاعب :

addEventHandler('onPlayerLogin',root, 
    function (  ) 
        local Results = executeSQLQuery("SELECT * FROM `Save Position System` WHERE PlayerSerial=?",getPlayerSerial ( source ) ) 
        if ( type ( Results ) == "table" and #Results == 0 or not Results ) then return end 
            setTimer( setElementPosition,2000,1,source,Results[1]['PlayerX'],Results[1]['PlayerY'],Results[1]['PlayerZ'] ) 
    end 
) 

انت اللي عليك بس تبي تجيب بيانات من اللي مخزنة ؟ بيانات السريال ! صح ؟ زين سويناها :

local Results = executeSQLQuery("SELECT * FROM `Save Position System` WHERE PlayerSerial=?",getPlayerSerial ( source ) ) 

مع اسم التيبل حق القاعدة بـ التأكيد .. الحين نتحقق فية بيانات عندي ولالا ؟ :

if ( type ( Results ) == "table" and #Results == 0 or not Results ) then return end 

اذا مافية خلاص مايسوي شيء ويكنسل ..

اذا فية بيكمل وبيسوي لك setElementPosition :

setTimer( setElementPosition,2000,1,source,Results[1]['PlayerX'],Results[1]['PlayerY'],Results[1]['PlayerZ'] ) 

Results[1]['PlayerX'],Results[1]['PlayerY'],Results[1]['PlayerZ'] = ?

هذي من وين جبتها ؟ هذي الاشياء اللي انت سويتها

Column

فية طريقة ثانية استخرج فيها اطول شوي شوف :

for _,v in ipairs ( Results ) do 
       setElementPosition ( source,v.PlayerX,v.PlayerY,v.PlayerZ ) 
end 

و بكذآ سوينا نظام حفظ للاحداثيات عن طريق : SQL

أتمنى وصلتكـ المعلومة بكل وضوح وهذا السكربت بشكل كامل يطلع :

addEventHandler('onResourceStart',resourceRoot, 
    function (      ) 
        local CreateNewTable = executeSQLQuery ('CREATE TABLE IF NOT EXISTS  `Save Position System` ( PlayerSerial,PlayerX,PlayerY,PlayerZ ) ') 
            if ( CreateNewTable ) then 
                outputDebugString('Create [ Save Position System ] Table done .') 
        end 
    end 
) 
  
addEventHandler('onPlayerQuit',root, 
    function (  ) 
    local x,y,z = getElementPosition ( source ) 
    local Results = executeSQLQuery("SELECT * FROM `Save Position System` WHERE PlayerSerial=?",getPlayerSerial ( source ) ) 
     if ( type ( Results ) == "table" and #Results == 0 or not Results ) then 
        executeSQLQuery ( "INSERT INTO `Save Position System` ( PlayerSerial,PlayerX,PlayerY,PlayerZ ) VALUES(?,?,?,?)",getPlayerSerial ( source ),x,y,z ) 
    else 
        executeSQLQuery('UPDATE `Save Position System` SET PlayerX =?, PlayerY =?, PlayerZ =? WHERE PlayerSerial =?',x,y,z,getPlayerSerial ( source ) ) 
    end 
end 
) 
  
addEventHandler('onPlayerLogin',root, 
    function (  ) 
        local Results = executeSQLQuery("SELECT * FROM `Save Position System` WHERE PlayerSerial=?",getPlayerSerial ( source ) ) 
        if ( type ( Results ) == "table" and #Results == 0 or not Results ) then return end 
            setTimer( setElementPosition,2000,1,source,Results[1]['PlayerX'],Results[1]['PlayerY'],Results[1]['PlayerZ'] ) 
    end 
) 

بـ التوفيق .. اي شيء تفضل أسأل عنة .. :)

الي ما فهمته قولي ,.

Link to comment
الله يعطيك العافيه ذا بست <3

صراحه اشكرك على تعبك معي

واشكر زاحف الي علمني نص الي اعرفه <3

والحمدلله على السلامه :$

الله يعافيك ,

واحنا بالخدمه سيدي :lol:

يسلمك ربي , امهرج في البيبي سيدي :D

Link to comment
الله يعطيك العافيه ذا بست <3

صراحه اشكرك على تعبك معي

واشكر زاحف الي علمني نص الي اعرفه <3

والحمدلله على السلامه :$

الله يعافيك ,

واحنا بالخدمه سيدي :lol:

يسلمك ربي , امهرج في البيبي سيدي :D

ههههههههههه

اكلمك من امس ماترد علي ذذ

بعدها شفت الحاله حصلتك كاتب الى الطائف :mrgreen:

بس اليوم كامل ماخشيت البيبي صار طفش

ماهو زي اول ضحك ووناسه صار كله نفسيات xD

Link to comment
  • 6 months later...

شرح رائع يعطيك العافية بس عندي سؤال الكلام الي داخل الوظيفة هل انت تختاره ولا في كلمات خاصة واذا نعم وين الاقيها واذا لا كيف استعملها وشو فائدتها وشكرا

executeSQLQuery ( "INSERT INTO `Save Position System` ( PlayerSerial,PlayerX,PlayerY,PlayerZ ) VALUES(?,?,?,?)",getPlayerSerial ( source ),x,y,z ) 

Link to comment
شرح رائع يعطيك العافية بس عندي سؤال الكلام الي داخل الوظيفة هل انت تختاره ولا في كلمات خاصة واذا نعم وين الاقيها واذا لا كيف استعملها وشو فائدتها وشكرا
executeSQLQuery ( "INSERT INTO `Save Position System` ( PlayerSerial,PlayerX,PlayerY,PlayerZ ) VALUES(?,?,?,?)",getPlayerSerial ( source ),x,y,z ) 

نعم فيه واذ تبي شرحها بالصفحة الاولى تلقا كل كلمة ومعناها

Link to comment
  • 3 weeks later...

يا تيتي بسألك سؤال هالحين لنفرض سويت مود واستعملت فيه السكل وكل شي

لازم اسوي ملف صيغته .db

مدري كذا سمعت يقولون تسوي مفكرة وتكتب فيها كم كود مدري عنهم وتحول صيغتها لداتا بيس ؟ في منه الحكي ؟

Link to comment
يا تيتي بسألك سؤال هالحين لنفرض سويت مود واستعملت فيه السكل وكل شي

لازم اسوي ملف صيغته .db

مدري كذا سمعت يقولون تسوي مفكرة وتكتب فيها كم كود مدري عنهم وتحول صيغتها لداتا بيس ؟ في منه الحكي ؟

لا حسب رغبتك ان كنت تبي على ملف او mysql

تستخدم

dbConnect

واذ كنت تبيها على قاعدة البيانات العامة

executeSQLQuery

وعذرا على التطفل :mrgreen:

edit :

NOTE: This function only acts upon registry.db. Use dbQuery to query a custom SQL databse.
Link to comment
  • 3 weeks later...
فهمت انا نصه

لكن لو بحفظ اسم الحساب

بلوقن يعني يجيه بالاديت

وكيفية ربطة check box

ابي شرح واضح ومفهوم

أول الاعب مايضغط login

راح ترسل أمر للسيرفر عشان يسجل دخوله

انت ارسل معاه هو محدد ولالا باستخدام الفنكشن ذا

guiCheckBoxGetSelected

وبعدين تحقق بالسيرفر هو صحيح ولالا

اذ صحيح احفظ اذ لا لاتحفظ

Link to comment

م احسها معقده مثل اول م شفت الشرح

الحين فهمت الاس كيو لايت بس يبغى لها فضاوه واحفظ الامثله واستوعبها زين ,واللي عنده رابط موضوع شرح للقريد لست يجيبه لاهنتم:)

Link to comment
م احسها معقده مثل اول م شفت الشرح

الحين فهمت الاس كيو لايت بس يبغى لها فضاوه واحفظ الامثله واستوعبها زين ,واللي عنده رابط موضوع شرح للقريد لست يجيبه لاهنتم:)

هآلموآضيع ممكن تفيدك :

https://forum.multitheftauto.com/viewtopic.php?p=562926

https://forum.multitheftauto.com/viewtopic.php?p=604679

Link to comment
م احسها معقده مثل اول م شفت الشرح

الحين فهمت الاس كيو لايت بس يبغى لها فضاوه واحفظ الامثله واستوعبها زين ,واللي عنده رابط موضوع شرح للقريد لست يجيبه لاهنتم:)

هآلموآضيع ممكن تفيدك :

https://forum.multitheftauto.com/viewtopic.php?p=562926

https://forum.multitheftauto.com/viewtopic.php?p=604679

تقريباً اللي ابغاه اللي هو الكولمن والرو يعني لو فيه موضوع مركز عليها جيبه

ولو مافيه الله يعين نروح نجرب الفنكشنات ونحوس بالموضوع شوي :lol:

Link to comment
م احسها معقده مثل اول م شفت الشرح

الحين فهمت الاس كيو لايت بس يبغى لها فضاوه واحفظ الامثله واستوعبها زين ,واللي عنده رابط موضوع شرح للقريد لست يجيبه لاهنتم:)

هآلموآضيع ممكن تفيدك :

https://forum.multitheftauto.com/viewtopic.php?p=562926

https://forum.multitheftauto.com/viewtopic.php?p=604679

تقريباً اللي ابغاه اللي هو الكولمن والرو يعني لو فيه موضوع مركز عليها جيبه

ولو مافيه الله يعين نروح نجرب الفنكشنات ونحوس بالموضوع شوي :lol:

للأسف مآفيه موضوع يركز على محتويآت آلقريد ليست

تقريبًا آلموآضيع اللي عطيتك آيآهآ تشتمل على آمثلة بهآ آلكولمن وآلرو +

رآجع آلويكي آفضل , وتمعن آلسآينتكس جيدًا وهكذآ , وعع قولتك حوس بآلموضوع شوي ذذ

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...