fork download
  1. <?php
  2.  
  3. try {
  4.  
  5. switch (true) {
  6. case !isset($_REQUEST['date']):
  7. case !is_string($date = $_REQUEST['date']):
  8. throw new Exception('日付を指定してください');
  9. }
  10.  
  11. $dbname = '';
  12. $dbuser = '';
  13. $dbpass = '';
  14.  
  15. $pdo = new PDO("mysql:dbname={$dbname};host=localhost;charset=utf8", $dbuser, $dbpass);
  16. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  17.  
  18. $sql = 'SELECT * FROM tableA JOIN tableB ON tableA.staff_id = tableB.staff_num WHERE s_date = ?';
  19. $stmt = $pdo->prepare($sql);
  20. $stmt->execute(array($date));
  21. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  22.  
  23. array_walk_recursive($rows, function (&$v, $k) {
  24. if (strpos($k, 'cell') !== 0) {
  25. return;
  26. }
  27. $values = explode(',', $v, 3);
  28. $keys = array('time', 'place', 'flag');
  29. $v = array_combine($keys, $values);
  30. });
  31.  
  32. } catch (Exception $e) {
  33.  
  34. $error = htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8');
  35.  
  36. }
  37.  
  38. ?>
  39. <!DOCTYPE html>
  40. <html>
  41. <head>
  42. <meta charset="UTF-8">
  43. <title>Test</title>
  44. </head>
  45. <body>
  46. <?php if (isset($error)): ?>
  47. <p><?=$error?></p>
  48. <?php elseif (!$rows): ?>
  49. <p>データが見つかりませんでした</p>
  50. <?php else: ?>
  51. <table>
  52. <?php foreach ($rows as $r): ?>
  53. <tr class="style<?=$r['flag']?>">場所:<?=$r['place']?> 開始時間<?=$r['time']?></tr>
  54. <?php endforeach; ?>
  55. </table>
  56. <?php endif; ?>
  57. </body>
  58. </html>
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<p>日付を指定してください</p>
</body>
</html>