OK論壇

 找回密碼
 註冊
查看: 1175|回復: 3

SQL查詢紀錄的方法

 關閉 [複製鏈接]
  • TA的每日心情
    開心
    2014-11-3 05:47 AM
  • 簽到天數: 38 天

    連續簽到: 1 天

    [LV.5]常住居民I

    發表於 2014-7-18 11:18:51 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: Rathena
    問題內容: SQL問題
    本帖最後由 Animation_Cramp 於 2014-7-20 10:01 PM 編輯

    想請問

    如何做出mail資料庫的查詢

    礙於玩家只要收取信件刪除後,mail資料庫就會自動刪除

    所以我創建了一個資料表

    1. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

    2. CREATE TABLE `online_mail` (
    3.   `id` int(11) NOT NULL auto_increment,
    4.   `cid` int(11) NOT NULL,
    5.   `dest_name` int(11) NOT NULL,
    6.   `dest_title` int(11) NOT NULL,
    7.   `dest_time` int(11) UNSIGNED NOT NULL DEFAULT '0',
    8.   PRIMARY KEY  (`id`)
    9. ) ENGINE=MyISAM AUTO_INCREMENT=1 ;
    複製代碼
    我設定了一個輸入.@name$即會自己找尋cid並且寄信的npc
    寄信cid對應:query_sql("SELECT char_id FROM `char` WHERE '"+.@dest_name$+"' = name",.@CID);

    接下來應該怎麼做讓上面的資料表加入mail的信息
    id < 排序
    cid < 收信者cid
    dest_name < 收信者id
    dest_title < 信件標題
    dest_time < 寄信時間

    請問資料表這樣創建有錯誤嗎
    另外我要以mes顯示online_mail資料表內的紀錄資料應該如何使用
    for
    然後搭配while做換頁的動作

    目前我只有在紀錄查詢的npc輸入
    1. query_sql("select id,cid,dest_name,dest_title,dest_time FROM mail ORDER BY id ASC LIMIT "+@i+" , 10",.@id,.@cid,.@dest_name,.@dest_title,.@dest_time);
    複製代碼
    ==============================================

    1.
    dest_title資料格式應該是字串
    dest_time應該是time/date之類的格式

    2.
    增加信件方式請研究SQL INSERT指令

    3.
    online_mail不確定是什麼意思
    如果是指對方在線上
    那你就要配合char資料的的online欄位
    這方面需要懂SQL JOIN指令
    回復

    使用道具 舉報

  • TA的每日心情
    開心
    2015-11-23 11:25 PM
  • 簽到天數: 176 天

    連續簽到: 1 天

    [LV.7]常住居民III

    發表於 2014-7-19 01:39:51 | 顯示全部樓層
    本帖最後由 cwgxcqwr 於 2014-7-19 01:41 AM 編輯

    1.
    dest_title資料格式應該是字串
    dest_time應該是time/date之類的格式

    2.
    增加信件方式請研究SQL INSERT指令

    3.
    online_mail不確定是什麼意思
    如果是指對方在線上
    那你就要配合char資料的的online欄位
    這方面需要懂SQL JOIN指令

    結論:先學好資料庫~
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2018-8-18 01:15 PM
  • 簽到天數: 1517 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2014-7-20 16:30:42 | 顯示全部樓層
    本帖最後由 game1993 於 2014-7-20 04:33 PM 編輯

    參照
    1.                         for(set .@g,0;.@g<getarraysize($@Morewindows$); set .@g,.@g+1){
    2.                         mes "^7B68EE["+.@g+"] ^000000IP:^0000FF"+$@Morewindows$[.@g]+" ^000000可以開^FF0000"+$@Windiwsnum[.@g]+"^000000個視窗";
    3.                         }
    複製代碼
    依樣畫葫蘆
    使用ID列陣或其他列陣

    由果有mail的on可以更簡單複製一個mail的資料庫
    但沒有on不太清楚怎麼用
    不然妳可以使用
    類似
    1. query_sql("SELECT id FROM `online_mail` ", @id);
    2. set @X, @ID;
    3. if(@X>@?){...;set @?,@?+1;}
    複製代碼
    不知道一直使用for會不會造成伺服器負擔...
    如有有on那該有多好?

    話說複製mail要做什麼?

    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2014-11-3 05:47 AM
  • 簽到天數: 38 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-7-20 22:00:42 | 顯示全部樓層
    cwgxcqwr 發表於 2014-7-19 01:39 AM
    1.
    dest_title資料格式應該是字串
    dest_time應該是time/date之類的格式

    好喔,謝謝你 ^^

    已經測試出來了,剩下for迴圈在自己測試了


    回復 支持 反對

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 註冊

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2024-4-26 05:29 PM , Processed in 0.047308 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表