Torihaji's Growth Diary

Little by little, no hurry.

学習日記 20230910

6:55 2023/09/10  
おはようございます。  
さあ今日です。  

画像投稿に使用するテーブルのカラムを書き換えた。  
テーブルには必ず、主キーが存在しないといけないのか。  
存在していないと怒られた。  

とりあえず、OK  

書き換えた状態で、新しくテスト投稿した結果、  
うまくいくことを確認  
よかった。まずは一安心。  
7:37 2023/09/10

11:30 2023/09/10
そのユーザが持っている投稿と、各投稿に紐づいている画像を取得する。  
やっぱりユーザidあった方がいいんじゃないの。

12:25 2023/09/10

16:50 2023/09/10
まずは、DBのカラムをいろいろいじったので、記事投稿機能から完成させよう  

投稿機能はおそらくOK  
次は、そのユーザの各投稿が所有している画像を持ってくる必要がある。  
どういう処理がいいのだろうか。  

まずプロフィールに行くと、  
ユーザidで投稿テーブルをひっかけるから、  
それに紐づく、記事idも持ってこれる。  


んーー。なかなかまとまらんな。  
今困っているのは、プロフィール画面に表示する画像をどうやって持ってくるか問題。  
プロフィールに遷移する。  
->ユーザの情報をもらってくる。  
->その情報を元に2つの配列をDBから取得してきたものを元に作成する。  
->1つは記事とユーザをjoinしたもの->こっちはできてる。  
->1つは記事と画像をjoinしたもの。->こっちができてない。  
なぜ。  
ああ、記事と画像をくっつけたものをさらにその表示されてる、ユーザのidでwhereかければいいのか。  
やってみるか。  

ビンゴ。  
できた。  
これなら確かに、いたるところにユーザのidをテーブルに仕込まなくてもいいね。  
今知ったけど、SQLのSELECTで持ってくるカラム名の中に  
入ってないカラム名でwhereかけても引っかかるんだね。  

べんきょうになりました。  

祝。  
念願のプロフィール画面、表示成功。  
だーーー。  
疲れた。  


自作のdebug関数を適当に作った。  
static手なんだっけ。  
クラスをインスタンス化しなくても、それが使える。  

public staticとなれば、
どこかでそのもとクラス.phpをincludeしとけば、
そのicludeしたファイル内で、  
classname::hogehogeができる。  

19:20 2023/09/10


20:12 2023/09/10
さっきのデバッグ関数をやろう。  
とその前に、タイピング練習でもしようか。  

これは一大事。  
タイピングもやらないと。  

さておき、本題。  
何をすればいいかわからない。  
投稿編集の機能をいじる。  
何も画像をアップロードしていない場合、どのように処理するか。  

画像を複数枚アップロードできるフォームを作成すると、  
php側($_FILES)にも、当然複数届く。  

どういうことかというと、 

array(1) {  
  ["up_image"]=>  
  array(6) {  
    ["name"]=>  
    array(3) {  
      [0]=>  
      string(0) ""  
      [1]=>  
      string(0) ""  
      [2]=>  
      string(0) ""  
・・・  

とくる。  

ファイルがアップロードされたフォームにのみ取り出して、  
$_FILESを新しい配列に作り直さないとダメそう。  

なんか、このフォームからアップロードされていたら、みたいな  
if文とかphpの関数はないのかね。  

ひとまず、投稿編集機能以外はいったんできたのかな。  

自分は何がしたい。  
その言語化をまずしよう。  

というかやりたい処理を他で書いていた。  
これをそのまま流用できるのでは。  
やってみるか。  

たぶん行ける。これで。  
明日は、画像を入れるところからか。  
差し替えをやろう。    
今日はこれで終了。  
23:01 2023/09/10