*/ /* * ##### 使用前に読んでね ##### * * 「vars.php.example」を「vars.php」にコピーして、「<……>」を取り替えます。 * 次に、vars.phpに指定データベースを作成して、以下のテーブルを作成します。 * * CREATE TABLE items ( * item_id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, * priority INT DEFAULT 0, * done BOOL DEFAULT FALSE, * description VARCHAR(2048), * key VARCHAR(64) * ); */ require_once('vars.php'); // ソースコードを送信 if(isset($_GET['source'])) { header("Content-Type: text/plain"); die(file_get_contents(basename($_SERVER['PHP_SELF']))); } ?> To-Doリスト

To-Doリスト

[home] [key] [source] [back]
アイテムの編集/edit item'; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo ''; echo ''; echo ''; echo '
'; } else if($keyMenu) { //キーを設定 echo '

キーの設定/set key

'; echo '
'; echo ''; echo ''; echo ''; echo '
'; echo '

アプリを使用するには、キーを設定する必要がありま一覧を見ることができますので、秘密にしておきましょう。

'; } else { // HPを表示 if(!empty($key)) { if(isset($itemRemove)) { // アイテムを削除 $query = 'SELECT description FROM items WHERE items.key=$1 AND item_id=$2'; $res = pg_query_params($query, [$key, $itemRemove]) or die('Query failed: ' . pg_last_error()); $row = pg_fetch_array($res); if($row) { $desc = $row['description']; $query = 'DELETE FROM items WHERE item_id=$1'; pg_query_params($query, [$itemRemove]); echo "
{$desc}は削除しました。
"; } else { echo "
アイテムはありません。
"; } } else if(isset($itemDone)) { // アイテム完了 $query = 'SELECT description, done FROM items WHERE items.key=$1 AND item_id=$2'; $res = pg_query_params($query, [$key, $itemDone]) or die('Query failed: ' . pg_last_error()); $row = pg_fetch_array($res); if($row) { $desc = $row['description']; $query = 'UPDATE items SET done = NOT done WHERE item_id=$1'; pg_query_params($query, [$itemDone]) or die('Query failed: ' . pg_last_error()); $doneText = $row['done'] == 'f' ? '完了しました' : '完了にしませんでした'; echo "
{$desc}が{$doneText}。
"; } else { echo "
アイテムはありません。
"; } } else if(isset($keySet)) { if(!empty($keySet)) { echo "
リスト{$shortKey}に変更しました。
"; } } else if(isset($setDescription)) { // アイテムを編集・追加する $itemId = $_POST['item-id']; $setPriority = $_POST['set-priority']; if($itemId) { $query = 'SELECT FROM items WHERE items.key=$1 AND item_id=$2 LIMIT 1'; $res = pg_query_params($query, [$key, $itemId]) or die('Query failed: ' . pg_last_error()); } if(!$res || pg_num_rows($res) == 0) { $query = 'INSERT INTO items (description, key) VALUES ($1, $2)'; pg_query_params($query, [$setDescription, $key]); echo "
{$setDescription}は追加しました。
"; } else { $query = 'UPDATE items SET priority=$1, description=$2 WHERE items.key=$3 AND item_id=$4'; pg_query_params($query, [$setPriority, $setDescription, $key, $itemId]); echo "
{$setDescription}は更新しました。
"; } } // アイテム一覧 $query = 'SELECT item_id, description, priority FROM items WHERE items.key=$1 AND done=FALSE ORDER BY items.priority DESC, items.description ASC'; $res = pg_query_params($query, [$key]) or die('Query failed: ' . pg_last_error()); echo '

アイテム一覧/item list

'; if(pg_num_rows($res) > 0) { echo '
'; echo ''; echo '
'; } // 追加ボタン echo '
'; echo ''; echo ''; echo ''; echo '
'; // 完了一覧 $query = 'SELECT item_id, description FROM items WHERE items.key=$1 AND done=TRUE ORDER BY items.description ASC'; $res = pg_query_params($query, [$key]) or die('Query failed: ' . pg_last_error()); echo '

完了されたアイテム/completed items

'; if(pg_num_rows($res) > 0) { echo '
'; echo ''; echo '
'; } } else { echo '
キーを設定してください。
'; } } pg_close($dbc); ?>