ドットインストール - 3分動画でマスターできるプログラミング学習サービス
レッスン一覧
料金プラン
レッスン一覧
料金プラン
ログイン
運営からのお知らせ
2024/09/12
NEW
【週刊ドットインストール】 CSSバージョンのお話、レッスン制作の進捗、代表のひとりごと
PREMIUM
【旧版】 PHPでTodo管理アプリを作ろう 関数編
PHPとMySQLでTodo管理アプリを作りながら、ウェブサービス開発の基本を学んでいきます。
0%
このレッスンはアーカイブされました
このレッスンは視聴可能ですが、質問の受付や内容の更新は終了しております。
このレッスンをはじめる前に
このレッスンを進めるには前提知識が必要です。先に以下のレッスンを完了しておきましょう。
【旧版】 PHP入門 基礎文法編
(全34回)
PREMIUM
PREMIUM
0%
【旧版】 PHP入門 ビルトイン関数編
(全32回)
PREMIUM
PREMIUM
0%
【旧版】 PHP入門 オブジェクト編
(全26回)
PREMIUM
PREMIUM
0%
【旧版】 PHP入門 ウェブ開発編
(全34回)
PREMIUM
PREMIUM
0%
【旧版】 PHP入門 データベース編
(全19回)
PREMIUM
PREMIUM
0%
動画レッスン一覧
(25)
質問と回答
(101)
#01 Todo管理アプリを作ってみよう
(01:16)
無料公開中
レッスンの進め方
CRUD
未完了
#02 開発環境について理解しよう
(01:53)
無料公開中
開発環境の確認
phpコンテナの設定
dbコンテナの設定
未完了
#03 設定ファイルを確認しよう
(02:15)
無料公開中
Dockerの起動
ファイル構成の確認
未完了
#04 コンテナを起動していこう
(01:49)
無料公開中
Dockerコンテナの起動
ブラウザでの確認
未完了
#05 MySQLにログインしよう
(01:27)
無料公開中
dbコンテナへのログイン
MySQLへのログイン
未完了
#06 テーブルを作成しよう
(02:48)
main.sqlの作成
SQLの実行
未完了
#07 PDOの設定をしてみよう
(02:25)
PDOの設定
PDOの例外処理
未完了
#08 Todoのリストを作ってみよう
(02:47)
Read機能
HTMLマークアップ
styles.cssの作成
未完了
#09 データを取得していこう
(02:29)
getTodos()
データ取得のSQL作成
未完了
#10 データをHTMLに埋め込もう
(02:48)
foreach()
htmlspecialchars()
未完了
#11 Todoを追加してみよう
(02:09)
Create機能
フォーム作成
未完了
#12 レコードを挿入してみよう
(02:09)
addTodo()の実装
データの挿入
未完了
#13 重複して投稿されないようにしよう
(02:42)
header()
SITE_URL
未完了
#14 CSRF対策を施そう
(02:24)
createToken()
validateToken()
未完了
#15 トークンの挙動を確認しよう
(02:07)
CSRF対策の実装
動作確認
未完了
#16 設定ファイルを切り出そう
(02:01)
config.php
require_once()
__DIR__
未完了
#17 関数を別ファイルにまとめよう
(02:30)
functions.php
getPdoInstance()
未完了
#18 Todoの状態を更新してみよう
(02:38)
Update機能
フォーム作成
未完了
#19 クエリ文字列で処理を分岐させよう
(01:59)
クエリ文字列
switch
未完了
#20 レコードを更新してみよう
(02:09)
toggleTodo()の実装
データの更新
未完了
#21 JavaScriptでイベントを設定しよう
(02:53)
main.jsの作成
submit()
未完了
#22 Todoを削除できるようにしよう
(02:14)
Delete機能
フォームの作成
JavaScriptの制御を追加
未完了
#23 レコードを削除してみよう
(02:24)
deleteTodo()
confirm()
未完了
#24 全体のスタイルを整えよう
(02:41)
見出しのスタイリング
入力フォームのスタイリング
未完了
#25 リストのスタイルを整えよう
(02:21)
リストのスタイリング
削除フォームのスタイリング
未完了
#01 Todo管理アプリを作ってみよう
ターミナル上でPHPのコードを試す方法を教えてください
2023年4月30日
#02 開発環境について理解しよう
アドレスが分かれば app フォルダにアクセス出来るのでは...?
2022年1月27日
#03 設定ファイルを確認しよう
Web サーバー(Apache など)は不要なのですか?
2022年12月26日
このレッスンの zip ファイルを再利用する際の注意点はありますか?
2022年5月24日
PHP の環境構築を一人でするにはどのような勉強をしたらいいですか?
2022年3月24日
docker-compose.yml の volumes の箇所で src が ./work で dst も ./work と同じなのはなぜですか?
2022年1月27日
#04 コンテナを起動していこう
PHP の方のコンテナを見ることはできますか?
2022年9月29日
docker-compose up -d でエラーが起こります
2022年7月9日
ERROR: Service 'php' failed to build : Build failed というエラーが出ます
2022年2月28日
docker-compose up -d とするとエラーが表示されます
2022年1月27日
docker を起動すると Error response from daemon と出てしまいます
2022年1月27日
bash: docker-compose: command not found と表示されてしまいます
2022年1月27日
docker-compose up -d とするとエラーが表示されます
2022年1月27日
docker-compose up -dとするとエラーが表示されます
2022年1月27日
#05 MySQLにログインしよう
Gitを利用する際のパスワードの扱いについて教えてください
2024年2月9日
MySQL で日本語を入力するためにはどうしたらよいですか?
2023年10月26日
今回の内容は暗記したほうがよろしいのでしょうか?
2023年3月21日
フォルダを複製して実行したところエラーが出てしまいます
2022年5月24日
PC の電源を付け直す度に、MySQL にログインしなければいけませんか?
2022年1月27日
MySQL にログインできません
2022年1月27日
MySQL はどのような仕組みでインストールされていますか?
2022年1月27日
#06 テーブルを作成しよう
〜が存在しません、使用できませんと表示されてしまいます
2023年12月22日
誤って複数回コマンドを実行してしまいました
2022年1月27日
main.sql にテーブル作成のコマンドを下書きしただけで、その後は何も活用さないのでしょうか?
2022年1月27日
間違えて SQL に数回ログインしてしまい余計な行が表示されてしまったのですが、どうすれば直りますか?
2022年1月27日
MySql にコピーしたコマンドを張り付けても結果が反映されません
2022年1月27日
テーブルに余分な行が表示されてしまいます
2022年1月27日
#07 PDOの設定をしてみよう
catch (PDOException $e) と catch (Exception $e) の違いは何ですか?
2022年9月24日
PHP のインストールが見つからないため検証できません、と表示されます
2022年1月27日
Docker を使用しない場合、host=db はどのように書き換えるのですか?
2022年1月27日
例外処理ではthrowが必要なのでは?
2022年1月27日
#08 Todoのリストを作ってみよう
SQLのとこでエラーがでてビューが表示されないのはなぜでしょうか?
2023年12月22日
SQLSTATE[HY000] [1044] Access denied というエラーが表示されます
2023年12月21日
css/styles.css を public フォルダの中に作る理由を教えてください
2023年10月2日
The server requested authentication method unknown to the client というエラーが表示されます
2022年1月27日
styles.css を作成する際に Ctrl + クリックが効きません
2022年1月27日
#09 データを取得していこう
Base table or view not found というエラーの解決策を教えてください
2023年1月13日
$todos = getTodos($pdo); は try に入れなくて良いのですか?
2022年11月9日
$stmt->fetchAll() の結果を $todos に代入せずに、直接 return してもいいのですか?
2022年6月9日
getTodos() に $pdo を引数として渡すのはなぜですか?
2022年6月1日
index.php に SQL ファイルへのリンクを書かなくてもよいのですか?
2022年3月24日
なぜオブジェクトでデータを取得するのですか?
2022年3月24日
PDO::FETCH_OBJ ではなく PDO::FETCH_ASSOC を使ってはいけないのですか?
2022年3月24日
PDO::FETCH_ASSOC とすると該当するキーはプロパティではないため $todo->is_done などの使い方ができないのですか?
2022年1月27日
$todosについて
2022年1月27日
「 PDO::ATTR_EMULATE_PREPARES 」を false にすることで何が起きているのですか?
2022年1月27日
ブラウザに「http://localhost:8562」と打ち込んでもアクセスできません
2022年1月27日
$todos = getTodos($pdo); と書くと、関数の外と内で重複して $todos に値を代入しているのでは?
2022年1月27日
#10 データをHTMLに埋め込もう
データの形式はオブジェクトとして使用する方が多いでしょうか?
2024年2月9日
foreach について詳しく教えてください
2023年4月30日
h() 関数を使用しないことがあるのはなぜですか?
2022年5月18日
レッスンと全く同じコードにしているのに違う結果が表示されます
2022年1月27日
checked を ' ' で囲むのはなぜですか?
2022年1月27日
アロー演算子を使うとMySQLのテーブルにアクセスできるのでしょうか?
2022年1月27日
#11 Todoを追加してみよう
REQUEST_METHOD によって条件分岐するのはなぜですか?
2023年4月30日
addTodo($pdo) としないと、$pdo はこの関数内で使えないのでしょうか?
2022年7月9日
#12 レコードを挿入してみよう
プレースホルダをつけるとはどういう意味しょうか?
2024年8月20日
return と exit の違いと、それぞれの使用方法について教えてください
2023年3月2日
空文字かどうか判断するのに empty() を使っても良いでしょうか?
2022年6月3日
bind_param(. ' s' , $title ); にしたところうまく動作しないのは何故でしょうか?
2022年1月27日
#13 重複して投稿されないようにしよう
header('Location: http://localhost...) でエラーが出るのはなぜですか?
2023年10月2日
ブラウザの再読み込み時の処理を教えてください
2024年8月20日
header() がどういった処理をしているのかわかりません
2022年1月27日
なぜ header('Location: ' . SITE_URL); で文字連結できるのですか?
2022年1月27日
なぜ $_SERVER['HTTP_HOST'] と定義するとサイト URL http://localhost:8562 の取得更新が可能なのでしょうか?
2022年1月27日
header 関数を addTodo() の後に記述すると、再読み込み時に項目が追加されてしまいませんか?
2022年1月27日
なぜ再読み込みすると再度 post されてしまうのですか?
2022年1月27日
header()の役割について教えて下さい
2022年1月27日
URLはサーバー変数から取得したほうがいいですか?
2022年1月27日
#14 CSRF対策を施そう
同じページにデータを送信・受け取りをするページでも CSRF 対策は必要ですか?
2022年8月23日
「 !isset() 」と「 empty() 」を使い分けているのはなぜですか?
2022年1月27日
#15 トークンの挙動を確認しよう
token にも h 関数を実行しているのはなぜでしょうか?
2024年2月9日
トークンの仕組みを詳しく教えてください
2023年9月12日
createToken(); を実行した後にエラーが出ないのはなぜですか?
2022年1月27日
定期的にトークンを変更したほうが良いですか?
2022年1月27日
#16 設定ファイルを切り出そう
絶対パスで指定することはincludeも同じでしょうか?
2024年2月9日
__DIR__ を用いた絶対パスでの表現がよくわかりません
2022年7月9日
__DIR__ は何を表しているのですか?
2022年1月27日
#17 関数を別ファイルにまとめよう
PDO周りの処理を関数にまとめるのはなぜですか?
2024年8月20日
config.php に function.php のパスを埋め込んだ理由はなんでしょうか?
2023年12月22日
なぜ PDO のインスタンスを返すのですか?
2022年1月27日
return $pdo をするのはなぜですか?
2022年1月27日
#19 クエリ文字列で処理を分岐させよう
action="?action=id" を INPUT_GET で受け取っているという認識であっていますか?
2022年6月3日
form タグの method 属性がなぜ post になるのかわかりません
2022年5月24日
action も POST 形式で送信すればいいのではないでしょうか?
2022年1月27日
#20 レコードを更新してみよう
is_done が true のときに NOT is_done にするとなぜ false に切り替わるのですか?
2023年4月4日
empty($id) の $id に 0 が渡ってくる可能性はあるのでしょうか?
2023年2月22日
id にもプレースホルダを使う理由を教えてください
2022年9月29日
toggleTodo($pdo) では if (empty($id)) となるのはなぜですか?
2022年2月16日
UPDATE todos SET is_done ... の SET の意味は何ですか?
2022年1月27日
is_done の否定を代入すると true と false が切り替わるのはなぜですか?
2022年1月27日
toggle 関数内で id の有無をなぜ確認するのですか?
2022年1月27日
#21 JavaScriptでイベントを設定しよう
parentNode.submit() がどういう働きをしているのかわかりません
2022年6月1日
querySelectorAll('input[type="checkbox"]'); における [ ] の使い方がわかりません
2022年1月27日
is_done はどこのコードで真偽値を反転させているのですか?
2022年1月27日
JavaScript のファイルを作る場所について教えてください
2022年1月27日
'use strict' の波括弧は省略してもよいですか?
2022年1月27日
#22 Todoを削除できるようにしよう
JavaScriptでは delete が予約語とはどういうことですか?
2023年9月2日
なぜforEachを使う必要があるのですか?
2022年1月27日
#23 レコードを削除してみよう
PHP でのデバッグの方法を教えてください
2022年7月9日
#25 リストのスタイルを整えよう
実際にアプリを他者に使用してもらうとき、ドメインはどうするのでしょうか?
2023年6月22日
次におすすめのレッスン
【旧版】 PHPでTodo管理アプリを作ろう クラス編
(全14回)
PREMIUM
PREMIUM
0%
【旧版】 PHPでTodo管理アプリを作ろう 非同期通信編
(全30回)
PREMIUM
PREMIUM
0%
リリース情報(note)
今週は『PHPでTodo管理アプリを作ろう 関数編』をリリースしました。
詳細情報
最終更新日
2020年12月22日
バージョン情報
Chrome 87 / Visual Studio Code 1.52.0