• PHP Help
  • Parse error: syntax error, unexpected '<<' (T_SL)

As title says,

Parse error: syntax error, unexpected '<<' (T_SL) 
<?php 
require('classes/Database.php');
class Restaurants{
	function drawRestaurant(){
	

$db = new Database();
try{
	$id = $_GET['id'];
	$sql = 'SELECT r.name AS restaurant, r.description AS rdescription, a.postcode, a.phone, al.content, c.name, m.price, i.name AS iname, i.description, i.vegan, i.itemType, i.serviceTime
			FROM restaurant r 
			JOIN address a ON a.cityId=r.id
			JOIN addressLine al ON al.addressId=r.id
			JOIN city c ON c.id=a.cityId
			JOIN menu m ON m.restaurantId=r.id
            JOIN item i ON i.menuId=m.id
			WHERE r.id = :id;
	';
	$stmt = $db->prepare($sql);
	$stmt->bindValue(':id', $id);
	$stmt->execute();
foreach($stmt as $rows){
echo <<<EOF
<div class='flex-grid-menu'>
<div class='header-restaurant'>
<section>
<h2>{$rows['restaurant']}</h2>
<span class='para'>{$rows['content']}</span>
<span class='para'>{$rows['name']}</span>
<span class='para'>{$rows['postcode']}</span>
<span class='para'>{$rows['phone']}</span>				
			
</section>
</div>
			
<div class='rows'>
<div class='categories'>
<h2>Categories</h2>
<ul>
<li>Appetisers</li>
<li>Mains</li>
<li>Desserts</li>
<li>Drinks</li>
<li>Sides</li>
</ul>
</div>	
<div class="wrapper">
<div class="shop-description">
<p>{$rows['rdescription']}</p>
</div>
EOF;
		

foreach($stmt as $rows){
echo <<<EOC		
<div class='menu-listing'>
<h2>Menu</h2>

<div class="menu-display {$rows['itemType']}">
<section>
<h3>Starters</h3>
<p class="food-name {$rows['vegan']} {$rows['serviceTime']}">
{$rows['iname']} </p>
<p class="food-price"> £{$rows['price']}</p>

<p class="food-description">
{$rows['description']}
</p>


</section>
</div>

<div class="menu-display">
<h3>Mains</h3>

</div>

<div class="menu-display">
<h3>Desserts</h3>

</div>

<div class="menu-display">
<h3>Drinks</h3>

</div>

<div class="menu-display">
<h3>Sides</h3>

</div>
</div>
	
</div>
			
</div>
</div>
EOC;
		}
	}catch (PDOException $e) {
		echo 'Connection failed: ' . $e->getMessage();
	}
	
}

}

    Get rid of the two tab characters after <<<EOC.
    I think you'll then need to look at balancing your opening/closing braces for the foreach()'s.

    NogDog Ahh, yeah main problem I have is it repeats the page like this

    <?php 
    require('classes/Database.php');
    class Restaurants{
    	function drawRestaurant(){
    	
    
    $db = new Database();
    try{
    	$id = $_GET['id'];
    	$sql = 'SELECT r.name AS restaurant, r.description AS rdescription, a.postcode, a.phone, al.content, c.name, m.price, i.name AS iname, i.description, i.vegan, i.itemType, i.serviceTime
    			FROM restaurant r 
    			JOIN address a ON a.cityId=r.id
    			JOIN addressLine al ON al.addressId=r.id
    			JOIN city c ON c.id=a.cityId
    			JOIN menu m ON m.restaurantId=r.id
                JOIN item i ON i.menuId=m.id
    			WHERE r.id = :id;
    	';
    	$stmt = $db->prepare($sql);
    	$stmt->bindValue(':id', $id);
    	$stmt->execute();
    foreach($stmt as $rows){
    echo <<<EOF
    <div class='flex-grid-menu'>
    <div class='header-restaurant'>
    <section>
    <h2>{$rows['restaurant']}</h2>
    <span class='para'>{$rows['content']}</span>
    <span class='para'>{$rows['name']}</span>
    <span class='para'>{$rows['postcode']}</span>
    <span class='para'>{$rows['phone']}</span>				
    			
    </section>
    </div>
    			
    <div class='rows'>
    <div class='categories'>
    <h2>Categories</h2>
    <ul>
    <li>Appetisers</li>
    <li>Mains</li>
    <li>Desserts</li>
    <li>Drinks</li>
    <li>Sides</li>
    </ul>
    </div>	
    <div class="wrapper">
    <div class="shop-description">
    <p>{$rows['rdescription']}</p>
    </div>
    
    <div class='menu-listing'>
    <h2>Menu</h2>
    
    <div class="menu-display {$rows['itemType']}">
    <section>
    <h3>Starters</h3>
    <p class="food-name {$rows['vegan']} {$rows['serviceTime']}">
    {$rows['iname']} </p>
    <p class="food-price"> £{$rows['price']}</p>
    
    <p class="food-description">
    {$rows['description']}
    </p>
    
    
    </section>
    </div>
    
    <div class="menu-display">
    <h3>Mains</h3>
    
    </div>
    
    <div class="menu-display">
    <h3>Desserts</h3>
    
    </div>
    
    <div class="menu-display">
    <h3>Drinks</h3>
    
    </div>
    
    <div class="menu-display">
    <h3>Sides</h3>
    
    </div>
    </div>
    	
    </div>
    			
    </div>
    </div>
    EOF;
    		}
    	}catch (PDOException $e) {
    		echo 'Connection failed: ' . $e->getMessage();
    	}
    	
    }
    
    }
    

    Then puts each item in its own page so to speak

    I'm probably supposed to put the query in a different function too but when I tried it that didn't end well so I add it to learn later

      Write a Reply...