굳헬로의 스팀 프로그램 일기!! 열다섯번째 #15 웹 프로그래밍을 이용하여 스팀코인판 3대조합의 임대 내역을 웹으로 확인해보자 !!

in sct •  last year 

steem.jpg

무더운 날씨이지만 시원하게 잘 보내고 계신가요??

어제 늦게까지 신나게 놀아서 인지 오늘은 하루를 늦게 시작하였네요.

그래도 짬을 내서 오늘의 프로그램 일기 남겨보겠습니다.


오늘은 어제 만들었던 스팀코인판 3대풀 @team1p, @union.sct, @naha.sct의 계정별 임대현황을 웹으로 확인하는 코드를 짜보도록 하겠습니다.

이틀전 웹 프로그래밍을 위해 오토셋을 설치했었죠.

오토셋은 아파치 웹서버와 MySQL 데이터베이스, 그리고 PHP 웹 프로그래밍을 지원하는데요.

저는 이 PHP 웹 프로그래밍으로 코드를 짜보도록 하겠습니다.

PHP(Hypertext Preprocessor)는 아주 오래전부터 웹서버에서 동적인 웹 페이지를 제공하기 위해 사용되고 있는 웹 프로그래밍 언어입니다.

코드가 사용하기 쉽고 HTML 처리도 간편하기 때문에 많은곳에서 널리 사용되어 왔습니다.

요즘 뛰어난 새로운 프로그래밍 언어들이 많던데.. 전 오래전에 공부를 했던터라 PHP에 익숙하기 때문에 앞으로 웹 프로그램은 PHP로 계속 짜게 될 것 같습니다.

어제는 파이썬으로 데이터를 데이터베이스에 저장하고 그 값을 불러와서 출력을 해봤는데요.

같은 방식으로 데이터베이스에 있는 데이터를 PHP로 불러와서 웹 페이지에 출력을 해보겠습니다.

 <?
$host = "localhost";
$user = "user ";
$passwd = "passwd";
$db_name = "db_name ";

$username = "team1p";

$conn = mysqli_connect( $host,  $user, $passwd, $db_name);
$query = "SELECT * FROM delegate WHERE to_='$username' order by block_num desc";
$result = mysqli_query($conn, $query);

while($row = mysqli_fetch_array($result)) {
    echo "block_num : $row[block_num] ";
    echo "sender : $row[sender] ";
    echo "to : $row[to_] ";
    echo "delegate : $row[quantity] ";
    echo "$row[symbol] ";
    echo "time :  $row[timestamp]";
    echo "<br>";
}
?>

PHP에서는 mysqli_connect()를 이용해서 MySQL 데이터베이스와 쉽게 연결할 수 있답니다.

그리고 데이터베이스에 질의 query를 mysqli_query()에던져서 그 결과를 mysqli_fetch_array() 배열 방식으로 가지고 와서 while 반복문을 통해서 출력하였습니다.

$query = "SELECT * FROM delegate WHERE to_='team1p' order by block_num desc";는 delegate 데이터베이스에서 team1p에 임대를 보낸 정보를 block_num 내림차순으로 출력하도록 하였습니다.

그 결과는

http://heinz.wo.tc/steemengine/get_delegate_test1.php

에서 확인하실 수 있습니다.

...

이제 각 계정별로 임대 총합을 계산해 보겠습니다.

$delegate = array();
$sum = 0;

while($row = mysqli_fetch_array($result)) {
    $key = $row['sender']; 
    $delegate[$key] = $delegate[$key] + $row['quantity'];
    $sum = $sum + $row['quantity'];
}

foreach($delegate as $key=>$value){
    echo $key . " : " . $value; 
    echo " 지분율 : ".round(($value / $sum * 100), 2);
    echo "<br>";
}
echo "<br>임대 총합 : ".$sum;

계정별로 임대 합을 저장하는 $delegate 배열을 선언하고 이곳에 계정별로 임대 누적량을 계산하였습니다.

그리고 지분율을 소수점이하 2자리 까지 계산하였네요.

웹 사이트를 통해 확인해 보니

http://heinz.wo.tc/steemengine/get_delegate_test2.php

결과가 잘 출력되었습니다.

이제 위의 코드에서 이제 데이터베이스 질의 $query에 들어가는 $username만 수정하면 union.sct, naha.sct의 임대 내역을 바로 가지고 올 수 있게 되었네요.

마지막으로 각 조합별 임대 내역 출력하는 코드를 함수로 만들어 보았습니다.

function delegate($username) {

    $conn = mysqli_connect( $host,  $user, $passwd, $db_name);
    $query = "SELECT * FROM delegate WHERE to_='$username' order by block_num desc";
    $result = mysqli_query($conn, $query);

    $delegate = array();
    $sum = 0;

    while($row = mysqli_fetch_array($result)) {
        $key = $row['sender']; 
        $delegate[$key] = $delegate[$key] + $row['quantity'];
        $sum = $sum + $row['quantity'];
    }
    echo "$username 의 임대내역";
    echo "<br>";

    foreach($delegate as $key=>$value){
        echo $key . " : " . $value; 
        echo " 지분율 : ".round(($value / $sum * 100), 2);
        echo "<br>";
    }
    echo "<br>임대 총합 : ".$sum;
    echo "<br><br><br>";    
}

이제

delegate("team1p");
delegate("union.sct");
delegate("naha.sct");

함수에 조합의 이름을 넣어 호출하면

http://heinz.wo.tc/steemengine/get_delegate_test3.php

접속해 보면 각 조합별로 임대 내역과 지분율을 모두 잘 출력해주고 있네요.


오늘은 데이터베이스에 저장한 데이터를 불러와서 웹으로 출력해 주는 코드를 만들어 보았습니다.

아직 미흡한 점이 많지만, 앞으로 계속 살을 더 붙여 나갈 예정입니다.

그리고 현재는 그냥 텍스트로만 출력하고 있는데, 디자인을 넣어 보기 좋게 출력하는게 좋을것 같네요.

그리고 각 조합별로 필요한 기능을 요청받아 만들어 보려고 합니다.

일단은 조합에서 편리하게 분배할수 있도록 하는 기능을 오늘 만들려고 했는데, 시간이 부족해서 아직 마무리를 못 하였네요.

빨리 끝내려고 했는데, 자꾸만 딜레이가 되고 있어 아쉽네요. 내일은 꼭 분배 기능을 완료 해보겠습니다.

그리고 조합이 아니더라도, 개인적으로 필요한 기능이 있으면 요청해 주시기 바랍니다.

아직 많이 부족한 실력이지만, 뭔가 목표가 있으면 아무래도 공부도 더하게 되고 실력 향상에 도움이 될 것 같네요.

그럼 오늘 하루도 행복하시고, 앞으로 더 나은 일기로 찾아뵙겠습니다.


굳헬로의 스팀 프로그램 일기!! 시리즈

#1 굳헬로의 스팀 프로그램 일기!! 대망의 시작 #1 Python 프로그램 설치 && steemengine 파이썬 api 설치 && 간단한 steemengine 예제

#2 굳헬로의 스팀 프로그램 일기!! 그 두번째 #2 비주얼 스튜디오 코드 프로그램 설치 && 비주얼 스튜디오 코드를 사용하여 파이썬 다루기 && 간단한 steemengine 예제

#3 굳헬로의 스팀 프로그램 일기!! 세번째 #3 스팀엔진 토큰의 정보를 가져오는 findOne() && 누군가의 토큰 사용 내역을 가져오는 get_history() && JSON 데이터 출력

#4 굳헬로의 스팀 프로그램 일기!! 네번째 #4 steemengine Token 클래스 && Token.get_holder() && Token.get_market_info() && Token.get_buy_book() && Token.get_sell_book()

#5 굳헬로의 스팀 프로그램 일기!! 다섯번째 #5 스팀엔진 블록을 뒤져서 원하는 정보를 찾아보자!! 스팀엔진 마켓 거래 내역을 뽑아내는 예제

#6 굳헬로의 스팀 프로그램 일기!! 여섯번째 #6 파이썬으로 스팀엔진 토큰들을 클레임 해보자.

#7 굳헬로의 스팀 프로그램 일기!! 일곱번째 #7 프로그램 일기도 어느덧 1주일!! 드디어 첫 실전!! 무한 반복 작업 수행하기!! 이제 직접 클레임 하는 손맛은 잊자. 무한 반복 자동 클레임!!

#8 굳헬로의 스팀 프로그램 일기!! 여덟번째 #8 텔레그램 봇을 이용해 알림을 받아보자!! && 무한 반복 자동 클레임의 정보를 텔레그램으로 받아보기!!

#9 굳헬로의 스팀 프로그램 일기!! 아홉번째 #9 무한 반복 자동 클레임 업그레이드!! && 토큰 잔고 확인 && 토큰 전송과 토큰 전송 내역을 텔레그램으로 받아보기!!

#10 굳헬로의 스팀 프로그램 일기!! 열번째 #10 토큰 전송내역을 검사하고, 토큰을 전송 받으면 텔레그램으로 알림을 받아보기!!

#11 굳헬로의 스팀 프로그램 일기!! 열한번째 #11 스팀엔진 토큰 임대내역 추적. 쉽지 않았던 머나먼 여정 (1/2)

#12 굳헬로의 스팀 프로그램 일기!! 열두번째 #12 스팀엔진 토큰 임대내역 추적. 쉽지 않았던 머나먼 여정 (2/2) 스팀엔진 토큰 임대내역 추적 완료!!

#13 굳헬로의 스팀 프로그램 일기!! 열세번째 #13 웹 프로그래밍의 시작!! 파이썬을 이용하여 정보를 MySQL 데이터 베이스에 저장해보기!!

#14 굳헬로의 스팀 프로그램 일기!! 열네번째 #14 파이썬을 이용하여 데이터베이스로부터 정보를 가져오기 && 스팀코인판 3대풀 임대내역 데이터베이스 작업 완료!!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

donekim님이 goodhello님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
donekim님의 [SCT UNION] 보팅자동화 설정(테스트 버전) 안내 및 홍보소각글 태그사용 요청 등

..., pediatrics, buchheim, matildah, happyberrysboy, chocolate1st, goodhello leeyh2, fenrir78, ukk, innovit, annvely, fur2002ks

이제 술 먹방은 안 보여 주시는거에요? ^^

ㅎㅎㅎ 매일 알코올 흡수중이긴 한데... 일기 2개 쓰는게 쉽지 않네요...

쉴땐 늦게 시작하기도 하고, 뭐 그렇게 사는거죠! ㅎㅎ 즐거운 저녁 보내세요~

광란의 저녁 아니 밤을 보내고 있네요~~ ㅎㅎㅎㅎㅎ

스몬 자동 프로그램 만들면 꼭 공유해 주세요.ㅎㅎ

Thank you for your continued support towards JJM. For each 1000 JJM you are holding, you can get an additional 1% of upvote. 10,000JJM would give you a 11% daily voting from the 700K SP virus707 account.

와~ 진짜 굳헬로님 전부문 자동화 되는 날이 오실것 같아요! 나중에는 포스팅까지?! ㅋㅋ 화이팅입니다~^^

굿헬로님만 믿고 있겠습니다 ㅎㅎㅎ :)

Hi @goodhello!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.000 which ranks you at #3975 across all Steem accounts.
Your rank has improved 253 places in the last three days (old rank 4228).

In our last Algorithmic Curation Round, consisting of 366 contributions, your post is ranked at #245.

Evaluation of your UA score:
  • You're on the right track, try to gather more followers.
  • The readers like your work!
  • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

Feel free to join our @steem-ua Discord server