質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

637閲覧

IDを指定して削除ボタンを押したときにデータベースの値を削除したい

boron

総合スコア11

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/12/10 18:42

編集2020/12/13 03:56

ID指定の場合
イメージ説明
この画面で削除したい項目を選択した際にURLパラメータとしてID(reservation_id)を渡すことができればいいのではと考えました

こちらのコードの

php

1if(!empty($y3)){ 2 echo '<td colspan="'. $colspan . '"><a href="schedule_add_delete.php?id='.$reservation['id_reservation'].'y='.$year.'&m='.$month.'&d='.$d.'&w='.$wdays[$w].'&t1='.$y1.'&t2='.$y2.'&facility='.$f.'&gm='.$y3.'">'.$y3.'</a></td>'; 3 }

id='.$reservation['id_reservation'].'で値を渡したいと考えているのですが上手くいかないです。
$reservationのvar_dumpの結果は次のようになっています
イメージ説明
出力されたPHPのソース

php

1<!DOCTYPE html> 2<html><head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>スケジュール編集</title> 5<style> 6 .sun{color: red;} 7 .sat{color: blue;} 8 #content{ 9 padding: 20px; 10 width: 720px; 11 min-height: 490px; 12 margin: 0 auto; 13 margin-bottom: 10px; 14 font-size: 153.9%; 15} 16 17 18</style> 19</head> 20<body> 21 22<?php 23session_start(); 24require("nav_user.php"); 25require('dbconnect.php'); 26 27$year = date('Y'); 28$month = date('m'); 29if(isset($_GET["month"])){ 30 $month = $_GET["month"]; 31 if(isset($_GET["year"])){ 32 $year = $_GET["year"]; 33 if(isset($_GET["btn"])){ 34 if($_GET["btn"] == 'next'){ 35 $month = $month+1; 36 if($month == 13){ 37 $month = 1; 38 $year = $year+1; 39 } 40 }elseif($_GET["btn"] == 'prev'){ 41 $month = $month-1; 42 if($month == 0){ 43 $month = 12; 44 $year = $year-1; 45 } 46 } 47 } 48 } 49 50} 51 52//linkでやる12月の次の処理、linkにyearを追加 53// else{ 54// $month = date('m'); 55// } 56// echo $month+1; 57// exit; 58 59 60$reservations = $db->prepare('select * from reservation where year=? and month=?'); 61 62$reservations->execute(array( 63 $year,$month 64)); 65$monthly=[];//予定が空のときに処理 66while($reservation = $reservations->fetch()){ 67 $monthly[$reservation['day']][] = array($reservation['time1'],$reservation['time2'],$reservation['g_name']); 68} 69// var_dump($reservation); 70 71// ksort($monthly); 72// print_r($monthly); 73// print $reservation['time2']; 74// exit; 75 76// 一か月分の日付を曜日付きで出力する 77$lastd = 31;//$yearと$monthから計算して求める 78$time = mktime(0, 0, 0, $month + 1, 0, $year); 79$lastd = date('d',$time); 80//時区間分割を実現する 81$divided=[]; 82for ($d=1; $d<= $lastd; $d++){ 83 if (array_key_exists($d, $monthly)){ 84 //配列のキーが存在するか調べる(キー、対象の配列) 85 //この日に予定があれば、分割していく 86 $intv = [[9,21,'']]; 87 foreach ($monthly[$d] as $yotei){//(対象配列 as その中身)、$yoteiは[x,y,z] 88 $intv= div($intv, $yotei); 89 } 90 $divided[$d] = $intv;//=[x,y,z] 91 }else{ 92 $divided[$d] = [[9,21,'']]; 93 } 94} 95 96//print_r($divided); 97//exit; 98echo '<div id="content">'; 99echo '<table border=1>'; 100echo '<h2>スケジュール編集</h2> '; 101// echo '<ul class="nav nav-tabs" role="tablist"> 102// <li class="nav-item"> 103// <a class="nav-link active" id="item1-tab" data-toggle="tab" href="#item1" role="tab" aria-controls="item1" aria-selected="true">野球場</a> 104// </li> 105// <li class="nav-item"> 106// <a class="nav-link" id="item2-tab" data-toggle="tab" href="#item2" role="tab" aria-controls="item2" aria-selected="false">テニスコート</a> 107// </li> 108// </ul>'; 109echo "<h3>{$year}{$month}月</h3>"; 110echo "<a class='btn btn-info' href='?year=$year&month=$month&btn=prev'>前月</a>"; 111echo "<a class='btn btn-info' href='#'>引き継ぐ</a>"; 112echo "<a class='btn btn-info' href='?year=$year&month=$month&btn=next'>次月</a>"; 113echo '<tr><td></td>'; 114for ($h=9; $h<22; $h++){ 115 echo '<td >', $h, '</td>'; 116} 117echo '</tr>'; 118for ($d=1; $d<=$lastd; $d++){ 119 $time = mktime(0, 0, 0, $month, $d, $year); 120 $w = date('w',$time); 121 $wdays = array('日','月','火','水','木','金','土',); 122 $class = ''; 123 if ($w==0) $class='sun'; 124 if ($w==6) $class='sat'; 125 echo '<tr>'; 126 echo '<td><span class="'.$class.'">', $d,'('. $wdays[$w].')</span>'. '</td>'; 127 $yotei = $divided[$d]; 128 foreach ($yotei as $y){//$yotei=$divided[$d]=[x,y,z] 129 $y1 = $y[0];//[x,y,z]のx 130 $y2 = $y[1];//[x,y,z]のy 131 $y3 = $y[2];//[x,y,z]のz 132 $colspan=$y2-$y1+1; 133 if(!empty($y3)){ 134 echo '<td colspan="'. $colspan . '"><a href="schedule_add_delete.php?y='.$year.'&m='.$month.'&d='.$d.'&w='.$wdays[$w].'&t1='.$y1.'&t2='.$y2.'&facility='.$f.'&gm='.$y3.'">'.$y3.'</a></td>'; 135 }else{ 136 echo '<td colspan="'. $colspan . '"><a href="schedule_add_delete.php?y='.$year.'&m='.$month.'&d='.$d.'&w='.$wdays[$w].'&t1='.$y1.'&t2='.$y2.'">○</a></td>'; 137 } 138 139 } 140 echo '</tr>'; 141} 142echo '</table>'; 143echo '</div>'; 144?> 145</body> 146</html> 147<?php 148//div.phpからコピーしたもの 149 function div($intv, $a){ 150 // $a=[11,12,''] =(div)=> $intv=[[9,10,''],[11,12,'試合'],[13,21,'']] 151 $a1 = $a[0]; 152 $a2 = $a[1]; 153 $a3 = $a[2];//追加 154 $out = []; 155 for ($i=0; $i<count($intv); $i++){ 156 $b1 = $intv[$i][0]; 157 $b2 = $intv[$i][1]; 158 $b3 = $intv[$i][2];//追加 159 160 if ($a1 >= $b1 and $a2 <= $b2){ 161 if ($b1<=$a1-1) 162 $out[]=[$b1, $a1-1, $b3]; //$b3を追加 163 $out[]=[$a1, $a2, $a3]; //$a3を追加 164 if ($a2+1<=$b2) 165 $out[]=[$a2+1,$b2, $b3]; //$b3を追加 166 }else{ 167 $out[] = $intv[$i]; 168 } 169 } 170 return $out; 171 } 172?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/12/10 22:30

htmlだけ提示されてもできるアドバイスは少ないので、PHPのコードなるべく全体提示してください。 $reservation取れてないなら取るところからとしか(GETパラメータの繋ぎに&がない等、次の不具合も含まれてるように見えるがそれ以前の問題ぽいし)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問