연구_고민2007.10.18 00:52
실력은 되지도 않으면서 괜히 고스톱을 만들려고 하는중...

사용자 삽입 이미지


개발환경
PHP,Mysql,Ajax
미리네 호스팅(샹..왜 에러메세지가 안뜨냐고!!!);

준비사항..

고스톱패 이미지(보너스,뒷면,폭탄패포함) -- OK

상황에 따른 이미지 및 소리 -- 천천히 수집예정

고스톱 룰 숙지 -- 수집중

DB구조 설계 -- 룰 숙지후 예정.

파일구조 설계 -- 위 두가지 사항 종료후 예정

사용자 인터페이스 설계 -- 역시 위 세가지 종료후 예정.




예상기간..2008년 1월 이전까지..!!!
일정은 고스톱룰 정리 되면 잡아봐야겟심.. 민화투를 만들어?ㅋㅋ;


현재 진행상황

이미지 잘라서 배열처리하고.. 렌덤으로 뽑기놀이...(진행된거냐??ㄱ-)
http://hellom.net/gostop/include/p_info.php(렌덤뽑기 테스팅)

rand() 생각보다 많이 후리더만;;
mt_rand()로 바꾸긴 했지만..그냥rand썻더니 뭐 한사람한테만 보너스가 가는 해괴한일이;;쿨럭;;

여튼 앞으로도 이딴일 많을듯;;ㅋㅋ

하이팅!
신고
Posted by naearu
유져 생성 CREATE USER 'Username'@'localhost' IDENTIFIED BY '********';

유져 DB권한 설정. GRANT ON `channel` . * TO 'Username'@'localhost' WITH GRANT OPTION ;
 
ALL PRIVILEGES 데이터/구조에 관한 모든 권한
 
USAGE // 데이터/구조에 관한 권한 없음.

DB 데이터에 관한 구조
SELECT ,
 INSERT ,
UPDATE ,
DELETE ,

DB 구조에 관한 구조. CREATE , DROP , REFERENCES , INDEX , ALTER , CREATE TEMPORARY TABLES , LOCK TABLES , CREATE VIEW , SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE , EXECUTE DB 관리 권한 LOCK TABLES REFERENCES 계정생성권한 WITH GRANT OPTION ; 계정생성권한을 제외하고 나머지는 DB권한 부분에 들어감. `channel` . * `channel` 이라는 데이터베이스의 모든 테이블에관한 권한. 'Username'@'localhost' 'Username'이라는 유져의 'localhost'의 권한.
신고
Posted by naearu
연구_고민2007.08.16 15:16

1. DBMS(데이터베이스관리시스템)란?

      다수의 컴퓨터 사용자들이 컴퓨터에 수록한 수많은 자료들을
      쉽고 빠르게 추가 · 수정 · 삭제할 수 있도록 해주는 소프트웨어를 말한다.
      DBMS(Database Management System)라는 용어를 더 많이 사용한다.
      축적된 자료구조의 정의, 자료구조에 따른 자료의 축적, 데이터베이스 언어에 의한
      자료 검색 및 갱신, 정보의 기밀보호(security) 등의 기능이 있다.


2. DBMS 관련 용어

      ● 데이터 (Data)
          자료, 체계적으로 정리되지 않은 단편적인 정보.

      ● 테이블 (Table)
          단편적인 정보(데이터)를 표 형태로 체계화해서 구성한 것.

      ● DB (DataBase)
          테이블이 들어 있는 커다란 저장 장소.

      ● 레코드 (Record)
          테이블의 행(가로줄).

      ● 필드 (Field)
          테이블의 열(세로줄).
          각각의 필드는 반드시 이름이 있다.

      ● 데이터 타입 (Data Type)
          각 필드에 입력할 값의 형식 (정수, 문자 등).
          예를 들어 이름 필드는 문자로 지정해야 하고, 나이 필드는 숫자로 지정해야 한다.   

      ● 필드명 (Field Name)
          각 필드의 이름.

      ● 주키(Primary Key) 필드
          레코드를 식별하기 위하여 필드 중에서 중복되지 않고,
          비어있는 값(NULL값)을 허용하지 않는 필드.
          인터넷 회원 가입에서는 주로 ID를, 학생과 관련된 정보시스템에서는 주로 학번을,
          나머지 기타 정보 시스템에서는 주로 주민등록번호를,
          쇼핑몰의 구매정보 테이블에서는 일련번호(NO)라는 필드를 생성해서 주키로 사용한다.

      ● 외래키(Foreign Key) 필드
          다른 테이블의 주키와 대응하는 필드.

      ● RDBMS(Relational Database Management System)
          관계형 데이터베이스 관리 시스템.
          대규모 컴퓨터 시스템을 대상으로 많은 이용자가 대량의 데이터를 다룰 때
          데이터베이스를 관리하는 시스템으로서, PC용 데이터베이스보다 대량의 데이터를
          취급할 수 있고 신뢰성 측면에서도 뛰어난 업무 시스템을 구축할 수 있다.
          SQL로 작성된 데이터 조작용 명령에 따라 서버상의 데이터를 조작하며,
          수정 등의 명령을 서버로 보낼 수 있는 것이면
          어떤 클라이언트에서도 서버의 데이터를 조작할 수 있다.
          Oracle, MS-SQL, MySQL 등 대부분의 DBMS는 관계형 DBMS이거나,
          관계형 DBMS를 지원한다.

      ● SQL(Structured Query Language : 구조화된 질의 언어)
          DB에서 정보를 얻거나, 생성 및 갱신하기 위해 정의된 표준 언어(규약).

신고
Posted by naearu

http://blog.naver.com/tomatogun/100040675312

MySQL:
SELECT column FROM table ORDER BY RAND() LIMIT 1


PostgreSQL:
SELECT column FROM table ORDER BY RANDOM() LIMIT 1


Microsoft SQL Server:
SELECT TOP 1 column FROM table ORDER BY NEWID()


IBM DB2:
SELECT column FROM table ORDER BY RAND() FETCH FIRST 1 ROWS ONLY


Oracle:
SELECT column FROM ( SELECT column FROM table ORDER BY dbms_random.value ) WHERE rownum = 1


DBMS마다 다 다르니 ;;

알아두자

신고
Posted by naearu

<?

if(!$pidx) $pidx=0;
$i=0;
if($pidx!=0){
 while(1){
 
 $query="select * from radar.PROJECT where P_IDX=".$pidx."";
 
 $res  = mysql_query($query, $Conn) or
            die('SQL:-1 ' . $query . '<br> ㅁㄴㅇ<br>' . mysql_errno() . ': ' . mysql_error());
 
 $btData = mysql_fetch_array($res);
 $stack[$i]['P_PARENT']=$btData['P_PARENT'];
 $stack[$i]['P_NAME']=$btData['P_NAME'];
 $stack[$i]['P_IDX']=$btData['P_IDX'];
 $pidx=$btData['P_PARENT'];
 if(!$btData['P_PARENT']) break;
 $i++;
 }
 
 //print_r($stack);
 //echo $i;
 
}


?>

  <!-- 프로젝트 선택 시작 -->

<?
  echo "<a href=channel.php?pidx=0>ROOT</a>  >  ";
 for($i;$stack[$i];$i--){
 
  echo "<a href='channel.php?pidx=".$stack[$i]['P_IDX']."'>[".$stack[$i]['P_NAME']."]</a>  >  ";
 //echo $stack[$i]['P_IDX'].",";
 //echo $stack[$i]['P_PARENT'].",";
 //echo $stack[$i]['P_NAME'].",";
 $pidx=$stack[$i]['P_IDX'];
 
 $select_name=$stack[$i]['P_NAME'];
}

     
     
      $query="select count(*) from radar.PROJECT where P_PARENT=".$pidx;
       $res  = mysql_query($query, $Conn) or
           die('SQL:0: ' . $query . '<br> ㅁㄴㅇ<br>' . mysql_errno() . ': ' . mysql_error());
       $btData = mysql_fetch_array($res);
       
?>      

<? if($btData[0]>0){ ?>
       <select name="1" onchange="window.open(value,'_self');" size=1>
      <option >선택하세요.</option>
       <?
       $query="select * from radar.PROJECT where P_PARENT=".$pidx;
       $res  = mysql_query($query, $Conn) or
           die('SQL:0: ' . $query . '<br> ㅁㄴㅇ<br>' . mysql_errno() . ': ' . mysql_error());
       for($i=1;$btData = mysql_fetch_array($res);$i++)
       {
       ?>
        <option value="channel.php?pidx=<?=$btData[P_IDX]?>" <?=selected($btData[P_IDX],$pidx)?>>[<?=$btData[P_NAME]?>]</option>
       <?}?>
     </select>
<? } ?>


스텍같은 기능으로 마지막에 넣은게 첨나오게...


 중간부터 시작해서  4>3>2>1>0 이렇게 집어 넣고

0>1>2>3>4 이렇게 빼서...

4아래에 또 뭐 있나 검사하면 끝!

아..생각보다 간단한건데.. ㅠㅠ 켕..

신고
Posted by naearu
 

용문

ls_1의 값을 id 번호를 받아서 순위를 나타냄.


mysql> select (select count(*) from std_point where ls_1>=sp.ls_1) as rank,sp.ls_1,sp.id from std_point sp where id=3;

+------+------+----+
| rank | ls_1 | id |
+------+------+----+
|   3  |   54 |  3 |
+------+------+----+
1 row in set (0.00 sec)

대략 10만건정도 해서 돌려봣더니 하나뽑는데 0.08초 정도 걸리더라는 ㄱ-;;

신고
Posted by naearu


- ASCII(str) : 해당 인저의 아스키 값을 반환한다. 문자열이 한글자 이상일 경우는 첫번째 문자에 해당하는 아스키 값을 반환한다. 빈 문자열에 대해서는 0, NULL 에 대해서는 NULL 을 반환한다.
- 예 : select ASCII('2');

- CONCAT(X,Y,...) : 해당 인자들을 연결한 문자열을 반환한다. 인자중 하나가 NULL 일 경우는 NULL 을 반환한다.
- 예 : select CONCAT('My', 'S', 'QL');

- LENGTH(str) : 문자열의 길이를 반환한다.
- 예 : select LENGTH('text');

- OCTET_LENGTH(str) : LENGTH(str) 와 동일하다.

- CHARACTER_LENGTH(str) : LENGTH(str) 와 동일하다.

- LOCATE(substr,str) : 첫번째 인자에서 두번째 인자가 있는 위치를 반환한다. 없을경우 0 을 반환한다.
- 예 : select LOCATE('bar', 'foobarbar');

- POSITION(substr IN str) : LOCATE(substr,str) 와 동일하다.

- LOCATE(substr,str,pos) : 두번째 인자에서 세번째 인자의 자리수부터 검색을 하여 첫번째 인자가 발견되는 위치를 반환한다.
- 예 : select LOCATE('bar', 'foobarbar',5);

- INSTR(str,substr) : LOCATE(substr,str) 와 동일한 기능을 하며, 차이점은 첫번째 인자와 두번째 인자가 바뀐것 뿐이다.
- 예 : select INSTR('foobarbar', 'bar');

- LPAD(str,len,padstr) : 첫번째 인자를 두번째 인자만큼의 길이로 변환한 문자열을 반환한다. 모자란 공간은 왼쪽에 세번째 인자로 채운다.
- 예 : select LPAD('hi',4,' ');

- RPAD(str,len,padstr) : LPAD 와 반대로 오른쪽에 빈공간을 채운다.
- 예 : select RPAD('hi',5,'?');

- LEFT(str,len) : 첫번째 문자열에서 두번째 길이만큼만을 반환한다.
- 예 : select LEFT('foobarbar', 5);

- RIGHT(str,len) : LEFT(str,len) 와 동일하다. 차이점은 해당 길이만큼 오른쪽에서부터 반환한다.
- 예 : select RIGHT('foobarbar', 4);
select SUBSTRING('foobarbar' FROM 4);

- SUBSTRING(str,pos,len) : 첫번째 인자의 문자열에서 두번째 인자의 위치부터 세번째 인자의 길이만큼 반환한다.
- 예 : select SUBSTRING('Quadratically',5,6);

- SUBSTRING(str FROM pos FOR len) : SUBSTRING(str,pos,len) 과 동일하다.

- MID(str,pos,len) : SUBSTRING(str,pos,len) 과 동일하다.

- SUBSTRING(str,pos) : 첫번째 인자의 문자열에서 두번째 인자로부터의 모든 문자열을 반환한다.
- 예 : select SUBSTRING('Quadratically',5);

- SUBSTRING(str FROM pos) : SUBSTRING(str,pos) 와 동일하다.

- SUBSTRING_INDEX(str,delim,count) : 첫번째 인자인 문자열을 두번째 문자로 구분하여 세번째 인자 수의 위치만큼 반환한다. 예를들어 select SUBSTRING_INDEX('www.mysql.com', '.', 2) 은 'www.mysql' 을 반환한다. 세번째 인자가 음수일경우는 반대로 오른쪽에서부터 검색하여 결과를 반환한다.
- 예 : select SUBSTRING_INDEX('www.mysql.com', '.', -2);

- LTRIM(str) : 왼쪽에 있는 공백문자를 제거한 문자열을 반환한다.
- 예 : select LTRIM(' barbar');

- RTRIM(str) : 오른쪽에 있는 공백문자를 제거한 문자열을 반환한다.
- 예 : select RTRIM('barbar ');

- TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
- 예 : select TRIM(' bar ');
select TRIM(LEADING 'x' FROM 'xxxbarxxx');
select TRIM(BOTH 'x' FROM 'xxxbarxxx');
select TRIM(TRAILING 'xyz' FROM 'barxxyz');

- REPLACE(str,from_str,to_str) : 문자열은 치환한다.
- 예 : select REPLACE('www.mysql.com', 'www', 'ftp');

- REVERSE(str) : 문자열을 뒤집는다. 예를들어, select REVERSE('abc') 은 'cba' 를 반환한다.

- LCASE(str) : 문자열을 소문자로 변환한다.
- 예 : select LCASE('QUADRATICALLY');

- LOWER(str) : LCASE(str) 와 동일하다.

- UCASE(str) : 문자열을 대문자로 변환한다.
- 예 : select UCASE('Hej');

- UPPER(str) : UCASE(str) 와 동일하다.
신고
Posted by naearu
TAG MySQL, 함수
연구_고민2007.08.06 09:19