Harvard Extension School
CSCI E-12 Fundamentals of Web Site Development | Fall 2019

## Mustache Departments

### Mustache Template

mustache-dept.php

### PHP

    <?php
    // Connecting, selecting database
    $link = mysql_connect('localhost', 'class', 'dbpasswd')
         or die('Could not connect: ' . mysql_error());
         mysql_select_db('coursecatalog') or die('Could not select database');
         // Performing SQL query
         $query = 'SELECT distinct department_short, department_code FROM courses order by department_short';
         $res = mysql_query($query) or die('Query failed: ' . mysql_error());
    $i=0;
    while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
      $results[$i++] = $row;
    }

    $template_data['departments'] = $results;

    // Process with Mustache Template
    include('lib/Mustache.php');

    $m = new Mustache;
    $template_file = 'mustache_templates/departments.html';
    $template_contents = file_get_contents($template_file);
    echo $m->render($template_contents, $template_data);

    // Free resultset
    mysql_free_result($res);
    // Closing connection
    mysql_close($link);
    ?>

### Mustache Template

mustache_templates/departments.html

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8" />
        <title>Departments</title>
        <link rel="stylesheet" href="site.css" type="text/css"/>
      </head>
      <body>
       <h1>Faculty of Arts &amp; Sciences</h1>
       <h2>Departments</h2>
    <ul>
    {{#departments}}
         <li>
           <a href="mustache-courses.php?department_code={{department_code}}">{{department_short}}</a>
         </li>
    {{/departments}}
    </ul>
      </body>
    </html>

Copyright © David Heitmeyer