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?>
あなたの回答
tips
プレビュー