【データベース】(実質)新着順表示

新着順表示のやり方を一応メモしておく

 

今回使用したのはPostgres

同じようなことをすればどのDBでもできる

 

CREATE TABLE table_a (id serial, name varchar(5));

とかで作成

serialはインサートしたレコードに1から順に自動でidを振っていってくれる

(MySQLだとauto incrementとかだったと思う)

 

小さい数字が古いデータ

大きい数字が新しいデータ

になります

 

なのでこれを降順(大きい順)で表示すればいい

 

SELECT * FROM table_a ORDER BY id DESC;

 

ORDER BY ほにゃほにゃ

は、ほにゃほにゃを昇順で並べる

後ろにDESCを付けると降順にできる

たぶんここはどのDBでも同じ

 

昇順の場合、ほんとはORDER BY id ASC

だけどASCは省略可能

 

おしまい。

【Heroku】Potgresを操作 + PHPから接続

「何が書いてあるの?」

・Herokuにデータベースを作る

コマンドプロンプトからHerokuのデータベースを操作

PHPで作成したデータベースに接続、レコードを取得

 

「どんな人向け?」

・Herokuでデータベース使ってPHPで値を取得したい人向け

 

・HerokuでWebページ公開できるようにしておく必要があります

まだの人はこちらへ

kikiworld.hatenablog.com

 

*コマンドは

> コマンド

で記載

 

Heroku CLIPostgreSQL をインストールする

(もしかしたらPostgreSQLは必要じゃないかも)

 

〇データベース作成方法と接続方法(SQLを打てるようにする) 

HerokuのPersonal > アプリ名

のResources > Add-ons からHeroku Postgresを追加する

 

コマンドプロンプトを起動

Herokuのgitをremoteで登録してないなら

> git remote add 『名前』 『URL』

でHerokuのgitを登録しておく

 

わからないなら

> git remote -v

で一覧表示して確認

 

> heroku pg:psql

でデータベースに接続

この時、git remoteが複数登録してあるとエラーになるかも

エラーになった場合

> git remote -vで一覧を表示し、

いらないremoteを

> git remote remove 『名前』

で削除する

 

正常に接続できるとコマンドプロンプトの表示が変わって

アプリ名::DATABASE=>

という感じになる

 

ここにSQL文を打てばOK

まずはCREATE TABLEとかでテーブル作る

セミコロン(;)でSQLを送信する

これをしないとHeroku側で実行されない

 

とりあえずテスト用に

SQL> create table test(id serial, name varchar(10));

と打ってテーブル作成

 

SQL> insert into 『テーブル名(今回はtest』 (『列名(今回はname』)values(『値』);

(コピペ用> insert into test (name) values ('ほげ');  )

で何個かレコードを追加していく

『ほげ』の部分はテキトーに変えてください

 

SQL> select * from test;

でテーブルを表示して確認

 

f:id:xukiki:20180804033138p:plain

こんな感じになります

 データベースの操作は以上なので

> \q

で終了

 

PHPからPostgreSQLに接続

さっきのHerokuの画面のResourceのAdd-onsにあるHeroku Postgresをクリック

Overview | Durability | Setting

のSettingをクリック

 

View Credentials...をクリック

f:id:xukiki:20180804030537p:plain

赤丸のとこ

 

そしたらなんかいろいろ表示される

 

f:id:xukiki:20180804031645p:plain

 

テキトーなエディタでPHPファイルを作成

 

さっきのHerokuの画面の情報を以下のコードに入れてく

赤色の部分以外はコピペでOK。下の方で説明します

<?php

  /* Herokuの画面を参考に情報を入力 */

  $host = 'Hostのとこ';

  $database = 'Databaseのとこ';

  $user = 'Userのとこ';

  $password = 'Passwordのとこ';

 

  /* Postgresに接続。できなかったらエラー */

  $link = pg_connect('host='.$host.' dbname='.$database.' user='.$user.' password='.$password);

  if(!$link){
    die(pg_last_error());
  }

 

  $sql = 'select * from test;';
  $result = pg_query($link, $sql);
  $num = pg_numrows($result);
 

  for($cnt = 0; $cnt < $num; $cnt++){
    $rec = pg_fetch_row($result, $cnt);
    echo'<p>id: '.$rec[0].' name: '. $rec[1].'</p>';
  }

 

  /* 接続を閉じる */
  pg_close($link);
?>

とりあえず

> git push 『名前』 master

ソースコードをHerokuにプッシュ

アプリを確認してみるとデータベースに入れたデータが表示されるはず

 

**コードの説明**

$sqlに送信したいSQL文を入れておく

 

・pg_query($link, $sql);

$sqlのクエリを実行する

このコードでは$resultに実行した結果が入ってる

 

・pg_nomrows($result);

クエリを実行して返ってきた行の数

このコードではfor文を回すのに使ってる

 

・pg_fetch_row($result, $row);

$resultに入ってる結果の$rowで指定した行のレコードを配列で取り出す

このコードでは行数文ループして$recにレコードを代入してる

 

今回はテーブル作成の時にidとnameの2行で作ったので

$rec[0]にidの値が、$rec[1]にnameの値が入ってる

 

pg_fetch_assocでも取り出せることができ、

その場合、列名をキーとした連想配列として取り出すことができる

例)

$rec = pg_fetch_assoc($result, $row);

echo $rec["id"];  // id列の値を表示

echo $rec["name"];  // name列の値を表示

 

 

【Heroku】初めてのWebページ公開

HerokuでWebページの公開をしてみたので備忘録書きます

 

「何が書いてあるの?」

HerokuでWebページ公開するやり方

 

「どんな人向け?」

公開したい人

 

Heroku、gitは登録済みってこと前提で書いていきます

Herokuでアプリを公開するにはgitを使うことが必須だそうです

 

 

gitの使い方がさっぱりな人はこちら

 【備忘録】ガバガバGitコマンドの使い方 - xukikiの日記 


・Herokuのコマンドを使えるようにする

The Heroku CLI | Heroku Dev Center

ここからダウンロードできるインストーラでHerokuのコマンドを使えるようにする

 

コマンドプロンプトで公開するフォルダに移動

ここからコマンドプロンプトを開く

コマンドプロンプトの開き方は、

Windowsボタン(田のマーク)を押して「cmd」って打つと出てくる

 

エクスプローラでもmkdirコマンドでもいいので好きな場所に公開したいフォルダを作成

cd 『フォルダ名』を使って公開したいフォルダに移動

 

・公開したいソースコードを作成

なんでもいいのでとりあえず公開できるものを作ってみる

最初はファイル名を『index.php』にするのがおすすめ

 

・git init

git使います宣言

 

・heroku create 『アプリ名』

 アプリを新規作成、アプリ名は自分で決める

実行したらアプリのURLとgitのURLが出てくる

f:id:xukiki:20180730162613p:plain

写真はXAMPPフォルダ内で作ってるけどどこでも大丈夫なはずです

 

・git remote add 『名前』 『URL』

『名前』は好きな名前、これからアップデートするときはこの名前を使います

『URL』にはheroku createを実行して下の方に出てきたgitのURLを入れる

 

 

・git add .

・git commit -m "コメント"

・git push 『名前』 master

上の3つのコマンドを順に実行

コメントは更新内容とか好きなように書く、ただしなんかしら書かないとエラーになる

『名前』は上のgit remoteで決めた名前を入力

 

〇終わり

これで公開ができるはずです

公開したアプリはheroku createを実行したときに出てきたURLで確認できます

(https://アプリ名.herokuapp.com/ の形式)

 

【git】ガバガバgitコマンドの使い方

gitの勉強を少ししたのでコマンドの備忘録がてら

概念やコマンドの詳しい意味などは置いといて「打てば使える」程度のことしか書いてません

 

「何が書いてあるの?」

 gitのとりあえずの使い方

 

「どんな人向け?」

gitの使い方が全く分からない人

 

※オプション部分は[オプション] 

-> gitで決められたオプションの中から選ぶ場合、-a(All)、-m(message)など

 

※名前部分は『名前』

-> 自分で決めたユーザー名やサーバー名を指定する場合 

 

〇最初にすること

・git init

「そのフォルダでgitを使うよ」という宣言

cdでgitを使うフォルダに移動した後、一番最初にgit initをする

 

・git config [--global] user.name 『ユーザー名』

・git config [--global] user.email 『メールアドレス』

githubに登録してあるユーザー名とアドレスを設定する

[--global]をつけるとそのフォルダだけじゃなくて全体でその設定(ユーザー名やアドレス)を共有するようになる

 

・git remote add 『共有先の名前』 『URL』

後述のgit pushコマンドで変更したソースコードなどを送信する 送信先を指定する

『共有先の名前』は自分の好きな名前、『work』『homeserver』など

URLはそのまま送信先のURL

 

〇更新があったとき

・git add [.]

・git commit -m "コメント"

変更があったらadd -> commitの順で実行

変更が記録される

変更がないのに実行しようとするとエラーになる

 

addのオプションはいろいろあるみたいだけど自分は[.]しか使ってない

[-A] ->新規作成、変更、削除されたすべてのファイルを更新

[.] -> 新規作成、変更されたファイルを追加。削除は更新しない

 

commitのコメントは何をしたかをダブルクォーテーションで挟んで書く

日本語入力できるのかは不明

自分はアルファベットのみで書いてる。不安ならアルファベットのみで

 

・git push 『送信先』 [master]

git remoteで指定した共有先に変更を送信する

共有しないならこのコマンドは使わないでいいっぽい

 

[master]の部分はよくわかってないけどとりあえず[master]で問題なく動いてる

 

〇どっかからフォルダをコピーするとき

・git clone 『URL』

指定したURLからファイルをコピーする

使ったことない(使う機会がない)のでよくわかってない