<?php
 include('plc/includes/connection.php');
 if(!isset($_SESSION)) 
    { 
   session_start();
	}
   //include('wellcome.php');
	if(!empty($_SESSION['UserId'])){
?>
<!doctype html>
<html class="no-js" lang="en">

<head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title>HOME || MRITTIKA NOKHA</title>
	
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <!-- Place favicon.ico in the root directory -->
    <link rel="shortcut icon" type="image/x-icon" href="plc/images/icon.png">
    <link rel="apple-touch-icon" href="apple-touch-icon.png">
    

    <!-- All css files are included here. -->
    <!-- Bootstrap fremwork main css -->
    <link rel="stylesheet" href="plc/css/bootstrap.min.css">
    <!-- Owl Carousel  main css -->
    <link rel="stylesheet" href="plc/css/owl.carousel.min.css">
    <link rel="stylesheet" href="plc/css/owl.theme.default.min.css">
    <!-- This core.css file contents all plugings css file. -->
    <link rel="stylesheet" href="plc/css/core.css">
    <!-- Theme shortcodes/elements style -->
    <link rel="stylesheet" href="plc/css/shortcode/shortcodes.css">
    <!-- Theme main style -->
    <link rel="stylesheet" href="plc/style.css">
    <!-- Responsive css -->
    <link rel="stylesheet" href="plc/css/responsive.css">
    <!-- User style -->
    <link rel="stylesheet" href="plc/css/custom.css">
<link rel="stylesheet" type="text/css" href="plc/css/font-awesome.min.css">
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">
    <!-- Modernizr JS -->
    <script src="plc/js/vendor/modernizr-2.8.3.min.js"></script>
	

	
	
	
	
</head>

<body>





    <!--[if lt IE 8]>
        <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
    <![endif]-->  

    <!-- Body main wrapper start -->
    <div class="wrapper">
	
	
	
	<div id="header" class="htc-header">
            <!-- Start Header Top -->
            <div class="htc__header__top bg__cat--1">
                <div class="container">
                    <div class="row">
                        <div class="col-md-6 col-lg-6 col-sm-6 col-xs-12">
                            <ul class="heaher__top__left">
                                <li><i class="fa fa-clock-o"></i>8.30 AM  -  9.30 PM</li>
                                <li><a href="tel:01819727289"><i class="fa fa-phone"></i>01819 72 72 89</a></li>
                            </ul>
                        </div>
                        <div class="col-md-6 col-lg-6 col-sm-6 col-xs-12">
                            <div class="header__top__right">
                                <ul class="login-register">
                                    <li><a href="3">LOGIN</a></li>
                                    <li class="separator">/</li>
                                    <li><a href="3">REGISTER</a></li>
									<li class="separator">/</li>
									<li><a href="#">
										<?php $sqli=$conn->query("Select * from user WHERE UserId='" . $_SESSION['UserId'] . "'");
										foreach ($sqli as $key => $user) {
										?>
										Well Come To </br>
										<?php echo $user["FirstName"]; ?> 
										<?php echo $user["LastName"]; ?>
										<?php } ?></a>
									</li>
									
                                </ul>
								
                                <div class="heaher__top__btn">
                                    <a href="plc/register/logout.php">LOGOUT</a>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <!-- End Header Top -->
            <!-- Start Mainmenu Area 
            <div id="sticky-header-with-topbar" class="mainmenu__wrap sticky__header">
                <div class="container">
                    <div class="row">
                        <div class="col-md-2 col-sm-6 col-xs-7">
                            <div class="logo">
                                <a href="index.php">
                                    <img src="plc/images/sinply-construction.png" alt="logo image">
                                </a>
                            </div>
                        </div>
                        <div class="col-md-8 col-sm-6 col-xs-5">
                            <nav class="main__menu__nav  hidden-xs hidden-sm">
                                <ul class="main__menu">
                                    <li><a href="index.php">HOME</a></li>
                                    <li><a href="#">ABOUT</a></li>
                                    <li class="drop">
									<a href="plc/tutorials/tutorial.php">Tutorial</a>
										<ul class="dropdown">
                                            <li><a href="plc/tutorials/videos.php">Videos</a></li>
                                            <li><a href="plc/tutorials/tips.php">Tips</a></li>
                                            <li><a href="plc/tutorials/product.php">product</a></li>
                                            <li><a href="plc/tutorials/residential.php">Residential</a></li>
                                           
                                        </ul>
									</li>
                                    <li class="drop">
									<a href="plc/services/services.php">SERVICES</a>
                                        <ul class="dropdown">
                                            <li><a href="plc/services/industrial.php">Industrial</a></li>
                                            <li><a href="plc/services/commercial.php">Commercial</a></li>
                                            <li><a href="plc/services/emergency.php">Emergency</a></li>
                                            <li><a href="plc/services/residential.php">Residential</a></li>
                                           
                                        </ul>
                                    </li>
									<li class="drop">
									<a href="plc/project/projects.php">PROJECTS</a>
                                        
                                    </li>
                                    
                                    <li><a href="#">BLOG</a></li>
                                    <li><a href="plc/contact/contact.php">CONTACT</a></li>
                                </ul>
                            </nav>
                            <div class="mobile-menu clearfix visible-xs visible-sm">
                                <nav id="mobile_dropdown">
                                    <ul>
                                    <li><a href="index.php">HOME</a></li>
                                    <li><a href="#">ABOUT</a></li>
                                    <li class="drop">
									<a href="plc/tutorials/tutorial.php">Tutorial</a>
										<ul class="dropdown">
                                            <li><a href="plc/tutorials/videos.php">Videos</a></li>
                                            <li><a href="plc/tutorials/tips.php">Tips</a></li>
                                            <li><a href="plc/tutorials/product.php">Product</a></li>
                                            <li><a href="plc/tutorials/residential.php">Residential</a></li>
                                           
                                        </ul>
									</li>
                                    <li class="drop">
									<a href="plc/services/services.php">SERVICES</a>
                                        <ul class="dropdown">
                                            <li><a href="plc/services/industrial.php">Industrial</a></li>
                                            <li><a href="plc/services/commercial.php">Commercial</a></li>
                                            <li><a href="plc/services/emergency.php">Emergency</a></li>
                                            <li><a href="plc/services/residential.php">Residential</a></li>
                                           
                                        </ul>
                                    </li>
									<li class="drop">
									<a href="plc/project/projects.php">PROJECTS</a>
                                        
                                    </li>
                                    
                                    <li><a href="#">BLOG</a></li>
                                    <li><a href="#">CONTACT</a></li>
                                </ul>
                                </nav>
                            </div> 
                        </div>
                        <div class="col-md-2 col-sm-6 hidden-xs">
                            <div class="htc__header__search">
                                <input type="text" placeholder="SEARCH">
                                <a href="#"><i class="fa fa-search"></i></a>
                            </div>
                        </div>
                    </div>
                    <div class="mobile-menu-area"></div>
                </div>
            </div>
             End Mainmenu Area -->
        </div>
		
	
		<div style="font-weight:bold; text-align: center;"  class="alert-info">
				    <?php
				    if(isset($_GET['msg'])) echo $_GET['msg'];
				    ?>
				</div>
		
        
        <!-- Start Slider Area -->
        <div class="slider__container" >
            <div class="slider__activation__wrap owl-carousel owl-theme">
                <!-- Start Single Slide -->
				<?php $sqli=$conn->query("Select * from content where Id=12");
        foreach ($sqli as $key => $row) {
							?>
                <div class="slide slider__fixed--height slide__align--center" class="mySlides fade" style="background: rgba(0, 0, 0, 0) url(plc/content/upload/<?php echo $row ['FileName']; ?>) no-repeat scroll 0 0 / cover;" data--black__overlay="6">
                    <div class="container">
                        <div class="row">
						
                            <div class="col-md-12 col-lg-12">
                                <div class="slider__inner">
                                    <h4><?php echo $row ['Name']; ?></h4>
                                    <h1><?php echo $row ['Title']; ?></h1>
                                    <p><?php echo $row ['Description1']; ?></p>
                                    <div class="slider__btn">
									<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                        <a class="htc__btn" href="#">CONTACT US</a>
                                    </div>
                                </div>
                            </div>
							
                        </div>
                    </div>
                    <div class="htc__slider__fornt__img">
                        <img src="plc/images/slider/1.png" alt="slider images">
                    </div>
                </div>
				<?php } ?>
                <!-- End Single Slide -->
                <!-- Start Single Slide -->
				<?php $sqli=$conn->query("Select * from content where Id=13");
        foreach ($sqli as $key => $row) {
							?>
                <div class="slide slider__fixed--height slide__align--center" class="mySlides fade" style="background: rgba(0, 0, 0, 0) url(plc/content/upload/<?php echo $row ['FileName']; ?>) no-repeat scroll 0 0 / cover;" data--black__overlay="6">
                    <div class="container">
                        <div class="row">
						
                            <div class="col-md-12 col-lg-12">
                                <div class="slider__inner">
                                    <h4><?php echo $row ['Name']; ?></h4>
                                    <h1><?php echo $row ['Title']; ?></h1>
                                    <p><?php echo $row ['Description1']; ?></p>
                                    <div class="slider__btn">
									<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                        <a class="htc__btn" href="#">CONTACT US</a>
                                    </div>
                                </div>
                            </div>
							
                        </div>
                    </div>
                    <div class="htc__slider__fornt__img">
                        <img src="plc/images/slider/1.png" alt="slider images">
                    </div>
                </div>
				<?php } ?>
                <!-- End Single Slide -->
				<!-- Start Single Slide -->
				<?php $sqli=$conn->query("Select * from content where Id=14");
        foreach ($sqli as $key => $row) {
							?>
                <div class="slide slider__fixed--height slide__align--center" class="mySlides fade" style="background: rgba(0, 0, 0, 0) url(plc/content/upload/<?php echo $row ['FileName']; ?>) no-repeat scroll 0 0 / cover;" data--black__overlay="6">
                    <div class="container">
                        <div class="row">
						
                            <div class="col-md-12 col-lg-12">
                                <div class="slider__inner">
                                    <h4><?php echo $row ['Name']; ?></h4>
                                    <h1><?php echo $row ['Title']; ?></h1>
                                    <p><?php echo $row ['Description1']; ?></p>
                                    <div class="slider__btn">
									<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                        <a class="htc__btn" href="#">CONTACT US</a>
                                    </div>
                                </div>
                            </div>
							
                        </div>
                    </div>
                    <div class="htc__slider__fornt__img">
                        <img src="plc/images/slider/1.png" alt="slider images">
                    </div>
                </div>
				<?php } ?>
                <!-- End Single Slide -->
            </div>
        </div>
        <!-- Start Slider Area -->
		
        <!-- Start Offer Area -->
        <section class="htc__offer__area htc__offer--2 pb--120 bg__gray">
            <div class="container">
                <div class="row">
                    <div class="col-md-4 col-lg-4 col-sm-6 col-xs-12">
                        <div class="offer">
                            <div class="offer__icon">
                                <img src="plc/images/icons/1.png" alt="icon images">
                            </div>
							<?php $sqli=$conn->query("Select * from content where Id=1");
        foreach ($sqli as $key => $row) {
  ?>
                            <div class="offer__details">
                                <h2><a href="#"><?php echo $row ['Name']; ?></a></h2>
                                <p><?php echo $row ['Description1']; ?></p>
                            </div>
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
							<?php } ?>
                        </div>
                    </div>
                    <div class="col-md-4 col-lg-4 col-sm-6 col-xs-12 xmt-40">
                        <div class="offer separator">
                            <div class="offer__icon">
                                <img src="plc/images/icons/2.png" alt="icon images">
                            </div>
							<?php $sqli=$conn->query("Select * from content where Id=2");
        foreach ($sqli as $key => $row) {
  ?>
                            <div class="offer__details">
                                <h2><a href="#"><?php echo $row ['Name']; ?></a></h2>
                                <p><?php echo $row ['Description1']; ?></p>
                            </div>
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
							<?php } ?>
                        </div>
                    </div>
                    <div class="col-md-4 col-lg-4 hidden-sm col-xs-12 xmt-40">
                        <div class="offer separator">
                            <div class="offer__icon">
                                <img src="plc/images/icons/3.png" alt="icon images">
                            </div>
                            <?php $sqli=$conn->query("Select * from content where Id=3");
        foreach ($sqli as $key => $row) {
  ?>
                            <div class="offer__details">
                                <h2><a href="#"><?php echo $row ['Name']; ?></a></h2>
                                <p><?php echo $row ['Description1']; ?></p>
                            </div>
							
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
							
							<?php } ?>
                        </div>
                    </div>
                </div>
            </div>
            <div class="h1__offer__image">
                <img src="plc/images/icons/tols.png" alt="">
            </div>
        </section>
        <!-- End Offer Area -->
        <!-- Start About Area -->
        <section class="htc__about__area about--2 text__pos ptb--150 bg__white">
            <div class="container">
                <div class="row">
                    <div class="col-xs-12">
                        <?php $sqli=$conn->query("Select * from content where Id=4");
        foreach ($sqli as $key => $row) {
  ?>
                        <div class="section__title text-center">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
						
                            <h2 class="title__line"><?php echo $row ['Name']; ?> <span class="text--theme"><?php echo $row ['Title']; ?></span></h2>
                            <p><?php echo $row ['Description1']; ?></p>
							
							
							
                        </div>
                        <?php } ?>
                    </div>
                </div>
                <div class="row mt--70">
				<?php $sqli=$conn->query("Select * from content where Id=5");
        foreach ($sqli as $key => $row) {
							?>
                    <div class="col-md-4 col-lg-3 col-lg-offset-1 col-sm-6 col-xs-12">
				<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                        <div class="about foo">
						
                            <div class="about__inner">
                                <h2><a href="#"><?php echo $row ['Name']; ?></a></h2>
                                <p><?php echo $row ['Description1']; ?></br></br></br></br></br>.</p>
                                <div class="about__btn">
                                    <a href="#">READ MORE</a>
                                </div>
                                <div class="about__icon">
                                    <img src="plc/images/icons/4.png" alt="icon images">
                                </div>
                            </div>
                            <div class="about__inner about__hober__info">
                                <h2><a href="#"><?php echo $row ['Title']; ?></a></h2>
                                <p><?php echo $row ['Description2']; ?></br></br></br></br></br>.</p>
                                <div class="about__btn">
                                    <a href="#">আরও . . . . . </a>
                                </div>
                                <div class="about__icon">
                                    <img src="plc/images/icons/4.png" alt="icon images">
                                </div>
                            </div>
                        </div>
                    </div>
					
					<?php } ?>
					
					<?php $sqli=$conn->query("Select * from content where Id=6");
        foreach ($sqli as $key => $row) {
							?>
                    <div class="col-md-4 col-lg-3 col-lg-offset-1 col-sm-6 col-xs-12">
					<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                        <div class="about foo">
						
                            <div class="about__inner">
							
                                <h2><a href="#"><?php echo $row ['Name']; ?></a></h2>
                                <p><?php echo $row ['Description1']; ?></br></br></br></br></br>.</p>
                                <div class="about__btn">
                                    <a href="#">READ MORE</a>
                                </div>
                                <div class="about__icon">
                                    <img src="plc/images/icons/5.png" alt="icon images">
                                </div>
                            </div>
                            <div class="about__inner about__hober__info">
                                <h2><a href="#"><?php echo $row ['Title']; ?></a></h2>
                                <p><?php echo $row ['Description2']; ?></br></br></br></br></br>.</p>
                                <div class="about__btn">
                                    <a href="#">আরও . . . . . </a>
                                </div>
                                <div class="about__icon">
                                    <img src="plc/images/icons/5.png" alt="icon images">
                                </div>
                            </div>
                        </div>
                    </div>
					
					<?php } ?>
					

                    <?php $sqli=$conn->query("Select * from content where Id=7");
        foreach ($sqli as $key => $row) {
							?>
                    <div class="col-md-4 col-lg-3 col-lg-offset-1 col-sm-6 col-xs-12">
					<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                        <div class="about foo">
						
                            <div class="about__inner">
                                <h2><a href="#"><?php echo $row ['Name']; ?></a></h2>
                                <p><?php echo $row ['Description1']; ?></br></br></br></br></br>.</p>
                                <div class="about__btn">
                                    <a href="#">READ MORE</a>
                                </div>
                                <div class="about__icon">
                                    <img src="plc/images/icons/6.png" alt="icon images">
                                </div>
                            </div>
                            <div class="about__inner about__hober__info">
                                <h2><a href="#"><?php echo $row ['Title']; ?></a></h2>
                                <p><?php echo $row ['Description2']; ?></br></br></br></br></br>.</p>
                                <div class="about__btn">
                                    <a href="#">আরও . . . . . </a>
                                </div>
                                <div class="about__icon">
                                    <img src="plc/images/icons/6.png" alt="icon images">
                                </div>
                            </div>
                        </div>
                    </div>
					
					<?php } ?>
                </div>
            </div>
            <div class="text__shape">
                <h2>SIMPLY</h2>
            </div>
        </section>
        <!-- End About Area -->
        <!-- start About Area -->
        <section class="htc__service__area service--2 bg__gray">
            <div class="container-fluid">
                <div class="row">
                    <div class="service__section__wrap clearfix">
                        <!-- Start Single Service -->
                        <div class="col-md-5 col-lg-4 col-sm-12 col-xs-12">
						
                            <div class="service__thumb">
							<?php $sqli=$conn->query("Select * from content where Id=8");
        foreach ($sqli as $key => $row) {
							?>
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                <img src='plc/content/upload/<?php echo $row ['FileName']; ?>' alt="about image">
                            </div>
                        </div>
                        <!-- End Single Service -->
                        <div class="col-md-7 col-lg-8 col-sm-12 col-xs-12 h1__service pt--40 pb--30">
						
                            <div class="row">
                                <div class="col-xs-12">
                                    <div class="section__title text-left">
                                        <h2 class="title__line"><?php echo $row ['Name']; ?> <span class="text--theme"><?php echo $row ['Title']; ?></span></h2>
                                        <p><?php echo $row ['Description1']; ?></p>
                                    </div>
                                </div>
                            </div>
							<?php } ?>
                            <div class="row">
                                <!-- Start Single Service -->
                                <div class="col-md-4 col-lg-4 col-sm-4 col-xs-12">
                                    <div class="service">
									<?php $sqli=$conn->query("Select * from content where Id=9");
        foreach ($sqli as $key => $row) {
							?>
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                        <div class="service__thumb">
                                            <a href="#">
                                                <img src='plc/content/upload/<?php echo $row ['FileName']; ?>' alt="service images">
                                            </a>
                                            <div class="service__hover">
                                                <div class="service__action">
                                                    <a href="plc/services/residential.php"><?php echo $row ['Name']; ?></a>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="service__details">
                                            <h2><a href="plc/services/residential.php"><?php echo $row ['Title']; ?></a></h2>
                                        </div>
										<?php } ?>
                                    </div>
                                </div>
                                <!-- End Single Service -->
                                <!-- Start Single Service -->
                                <div class="col-md-4 col-lg-4 col-sm-4 col-xs-12">
                                    <div class="service">
									<?php $sqli=$conn->query("Select * from content where Id=10");
        foreach ($sqli as $key => $row) {
							?>
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                        <div class="service__thumb">
                                            <a href="#">
                                                <img src='plc/content/upload/<?php echo $row ['FileName']; ?>' alt="service images">
                                            </a>
                                            <div class="service__hover">
                                                <div class="service__action">
                                                    <a href="plc/services/residential.php"><?php echo $row ['Name']; ?></a>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="service__details">
                                            <h2><a href="plc/services/residential.php"><?php echo $row ['Title']; ?></a></h2>
                                        </div>
										<?php } ?>
                                    </div>
                                </div>
                                <!-- End Single Service -->
                                <!-- Start Single Service -->
                                <div class="col-md-4 col-lg-4 col-sm-4 col-xs-12">
                                    <div class="service">
									<?php $sqli=$conn->query("Select * from content where Id=11");
        foreach ($sqli as $key => $row) {
							?>
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                        <div class="service__thumb">
                                            <a href="#">
                                                <img src='plc/content/upload/<?php echo $row ['FileName']; ?>' alt="service images">
                                            </a>
                                            <div class="service__hover">
                                                <div class="service__action">
                                                    <a href="plc/services/residential.php"><?php echo $row ['Name']; ?></a>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="service__details">
                                            <h2><a href="plc/services/residential.php"><?php echo $row ['Title']; ?></a></h2>
                                        </div>
										<?php } ?>
                                    </div>
                                </div>
                                <!-- End Single Service -->
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>
		
        <!-- End About Area -->
        <!-- Start Latest Project Area -->
        <section class="htc__latest__project__area ptb--150 bg__white text__pos">
            <div class="container">
			<?php $sqli=$conn->query("Select * from content where Id=15");
        foreach ($sqli as $key => $row) {
							?>
                <div class="row">
                    <div class="col-xs-12">
                        <div class="section__title text-center">
                            <h2 class="title__line"><?php echo $row ['Name']; ?> <span class="text--theme"><?php echo $row ['Title']; ?></span></h2>
                            <a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="htc__latest__project__wrap h1__project clearfix mt--30">
                        <!-- Start Single Project -->
                        <div class="col-md-5 col-lg-5 hidden-sm col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="project__itm foo">
                                <div class="project__thumb">
                                    <a href="single-project.html">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="project images">
                                    </a>
                                    <div class="project__hover__info">
                                        <div class="project__action">
                                            <h2><a href="#"><?php echo $row ['Description1']; ?></a></h2>
                                            <h4><?php echo $row ['Description2']; ?></h4>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Project -->
                        <div class="col-md-7 col-lg-7 col-sm-12 col-xs-12">
                            <div class="row">
							<?php $sqli=$conn->query("Select * from content where Id=16");
        foreach ($sqli as $key => $row) {
							?>
                                <div class="col-md-6 col-sm-6 col-xs-12">
								<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                    <div class="project__itm foo">
                                        <div class="project__thumb">
                                            <a href="#">
                                                <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="project images">
                                            </a>
                                            <div class="project__hover__info">
                                                <div class="project__action">
                                                    <h2><a href="#"><?php echo $row ['Description1']; ?></a></h2>
                                                    <h4><?php echo $row ['Description2']; ?></h4>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
								<?php } ?>
                                <?php $sqli=$conn->query("Select * from content where Id=17");
        foreach ($sqli as $key => $row) {
							?>
                                <div class="col-md-6 col-sm-6 col-xs-12">
								<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                    <div class="project__itm foo">
                                        <div class="project__thumb">
                                            <a href="#">
                                                <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="project images">
                                            </a>
                                            <div class="project__hover__info">
                                                <div class="project__action">
                                                    <h2><a href="#"><?php echo $row ['Description1']; ?></a></h2>
                                                    <h4><?php echo $row ['Description2']; ?></h4>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
								<?php } ?>
                                <?php $sqli=$conn->query("Select * from content where Id=18");
        foreach ($sqli as $key => $row) {
							?>
                                <div class="col-md-6 col-sm-6 col-xs-12">
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                    <div class="project__itm foo">
                                        <div class="project__thumb">
                                            <a href="#">
                                                <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="project images">
                                            </a>
                                            <div class="project__hover__info">
                                                <div class="project__action">
                                                    <h2><a href="#"><?php echo $row ['Description1']; ?></a></h2>
                                                    <h4><?php echo $row ['Description2']; ?></h4>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
								<?php } ?>
                                <?php $sqli=$conn->query("Select * from content where Id=19");
        foreach ($sqli as $key => $row) {
							?>
                                <div class="col-md-6 col-sm-6 col-xs-12">
								<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                    <div class="project__itm foo">
                                        <div class="project__thumb">
                                            <a href="#">
                                                <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="project images">
                                            </a>
                                            <div class="project__hover__info">
                                                <div class="project__action">
                                                    <h2><a href="#"><?php echo $row ['Description1']; ?></a></h2>
                                                    <h4><?php echo $row ['Description2']; ?></h4>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
								<?php } ?>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="text__shape">
                <h2>PROJECTS</h2>
            </div>
        </section>
        <!-- End Latest Project Area -->
        <!-- Start Counter Up Area -->
        <section class="htc__counterup__area count--2 h1__countdown bg__gray">
		<?php $sqli=$conn->query("Select * from content where Id=20");
        foreach ($sqli as $key => $row) {
							?>
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
            <div class="container-fluid">
                <div class="row">
				
                    <div class="col-md-4 col-sm-12 col-xs-12">
					
                        <div class="counterup__left__thumb">
                            <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="images">
                        </div>
                    </div>
                    <div class="col-md-8 col-sm-12 col-xs-12">
                        <div class="htc__callto__action">
						
                            <h2><?php echo $row ['Name']; ?> <span class="text--theme"><?php echo $row ['Title']; ?></span> <?php echo $row ['Description1']; ?></h2>
                            <p><?php echo $row ['Description2']; ?></p>
                            <div class="htc__call__btn">
                                <a class="htc__btn" href="#">HOME</a>
                            </div>
							<?php } ?>
                        </div>
						<?php $sqli=$conn->query("Select * from content where Id=21");
        foreach ($sqli as $key => $row) {
							?>
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                        <div class="htc__counterup__wrap" style="background: rgba(0, 0, 0, 0) url(plc/images/icons/10.png) no-repeat scroll center center / cover ;">
                            <!-- Start Single Fact -->
                            <div class="funfact">
                                <div class="fact__details">
                                    <div class="funfact__count__inner">
                                        <div class="fact__count ">
                                            <span class="count"><?php echo $row ['Name']; ?></span>
                                        </div>
                                    </div>
                                    <div class="fact__title">
                                        <h2>PROJECTS</h2>
                                    </div>
                                </div>
                            </div> 
                            <!-- End Single Fact -->
                            <!-- Start Single Fact -->
                            <div class="funfact hidden-md">
                                <div class="fact__details">
                                    <div class="funfact__count__inner">
                                        <div class="fact__count ">
                                            <span class="count"><?php echo $row ['Title']; ?></span>
                                        </div>
                                    </div>
                                    <div class="fact__title">
                                        <h2>CLIENTS</h2>
                                    </div>
                                </div>
                            </div> 
                            <!-- End Single Fact -->
                            <!-- Start Single Fact -->
                            <div class="funfact">
                                <div class="fact__details">
                                    <div class="funfact__count__inner">
                                        <div class="fact__count ">
                                            <span class="count"><?php echo $row ['Description1']; ?></span>
                                        </div>
                                    </div>
                                    <div class="fact__title">
                                        <h2>SUCCESS</h2>
                                    </div>
                                </div>
                            </div> 
                            <!-- End Single Fact -->
                            <!-- Start Single Fact -->
                            <div class="funfact">
                                <div class="fact__details">
                                    <div class="funfact__count__inner">
                                        <div class="fact__count ">
                                            <span class="count"><?php echo $row ['Description2']; ?></span>
                                        </div>
                                    </div>
                                    <div class="fact__title">
                                        <h2>AWARDS</h2>
                                    </div>
                                </div>
                            </div> 
                            <!-- End Single Fact -->
                        </div>
						<?php } ?>
                    </div>
                </div>
            </div>
        </section>
        <!-- End Counter Up Area -->
        <!-- Start Team Area -->
        <section class="htc__team__area bg__white h1__team--one ptb--150 text__pos">
            <div class="container">
                <div class="row">
                    <div class="col-xs-12">
					<?php $sqli=$conn->query("Select * from content where Id=22");
        foreach ($sqli as $key => $row) {
							?>
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                        <div class="section__title text-center">
                            <h2 class="title__line"> <span class="text--theme"><?php echo $row ['Name']; ?> </span><?php echo $row ['Title']; ?></h2>
                            <div class="htc__call__btn">
                                <a class="htc__btn" href="#">DETAILS</a>
                            </div>
                        </div>
						<?php } ?>
                    </div>
                </div>
                <div class="row">
                    <div class="htc__team__wrap clearfix mt--30">
                        <!-- Start Single Team -->
						<?php $sqli=$conn->query("Select * from content where Id=23");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-3 col-lg-3 col-sm-4 col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="team foo">
                                <div class="team__inner">
                                    <div class="team__thumb">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="team image">
                                    </div>
                                    <div class="team__hover__info">
                                        <ul class="team__social__link">
                                            <li><a href="#" target="_blank"><i class="fa fa-twitter"></i></a></li>

                                            <li><a href="#" target="_blank"><i class="fa fa-instagram"></i></a></li>

                                            <li><a href="<?php echo $row ['Description1']; ?>" target="_blank"><i class="fa fa-facebook"></i></a></li>

                                            <li><a href="#" target="_blank"><i class="fa fa-google-plus"></i></a></li>
                                        </ul>
                                    </div>
                                </div>
                                <div class="team__details">
                                    <h2><a href="#"><?php echo $row ['Name']; ?></a></h2>
                                    <h4><?php echo $row ['Title']; ?></h4>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Team -->
                        
                        <!-- Start Single Team -->
						<?php $sqli=$conn->query("Select * from content where Id=24");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-3 col-lg-3 col-sm-4 col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="team foo">
                                <div class="team__inner">
                                    <div class="team__thumb">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="team image">
                                    </div>
                                    <div class="team__hover__info">
                                        <ul class="team__social__link">
                                            <li><a href="#" target="_blank"><i class="fa fa-twitter"></i></a></li>

                                            <li><a href="#" target="_blank"><i class="fa fa-instagram"></i></a></li>

                                            <li><a href="<?php echo $row ['Description1']; ?>" target="_blank"><i class="fa fa-facebook"></i></a></li>

                                            <li><a href="#" target="_blank"><i class="fa fa-google-plus"></i></a></li>
                                        </ul>
                                    </div>
                                </div>
                                <div class="team__details">
                                    <h2><a href="#"><?php echo $row ['Name']; ?></a></h2>
                                    <h4><?php echo $row ['Title']; ?></h4>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Team -->
                        
                        <!-- Start Single Team -->
						<?php $sqli=$conn->query("Select * from content where Id=25");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-3 col-lg-3 col-sm-4 col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="team foo">
                                <div class="team__inner">
                                    <div class="team__thumb">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="team image">
                                    </div>
                                    <div class="team__hover__info">
                                        <ul class="team__social__link">
                                            <li><a href="#" target="_blank"><i class="fa fa-twitter"></i></a></li>

                                            <li><a href="#" target="_blank"><i class="fa fa-instagram"></i></a></li>

                                            <li><a href="<?php echo $row ['Description1']; ?>" target="_blank"><i class="fa fa-facebook"></i></a></li>

                                            <li><a href="#" target="_blank"><i class="fa fa-google-plus"></i></a></li>
                                        </ul>
                                    </div>
                                </div>
                                <div class="team__details">
                                    <h2><a href="#"><?php echo $row ['Name']; ?></a></h2>
                                    <h4><?php echo $row ['Title']; ?></h4>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Team -->
                        <!-- Start Single Team -->
						<?php $sqli=$conn->query("Select * from content where Id=26");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-3 col-lg-3 col-sm-4 col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="team foo">
                                <div class="team__inner">
                                    <div class="team__thumb">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="team image">
                                    </div>
                                    <div class="team__hover__info">
                                        <ul class="team__social__link">
                                            <li><a href="#" target="_blank"><i class="fa fa-twitter"></i></a></li>

                                            <li><a href="#" target="_blank"><i class="fa fa-instagram"></i></a></li>

                                            <li><a href="<?php echo $row ['Description1']; ?>" target="_blank"><i class="fa fa-facebook"></i></a></li>

                                            <li><a href="#" target="_blank"><i class="fa fa-google-plus"></i></a></li>
                                        </ul>
                                    </div>
                                </div>
                                <div class="team__details">
                                    <h2><a href="#"><?php echo $row ['Name']; ?></a></h2>
                                    <h4><?php echo $row ['Title']; ?></h4>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Team -->
                    </div>
                </div>
            </div>
            <div class="text__shape">
                <h2>TEAM</h2>
            </div>
        </section>
        <!-- End Team Area -->
        <!-- Start Testimonial Area -->
        <section class="htc__testimonial__area ptb--130" data--gray__overlay="9.5" style="background: rgba(0, 0, 0, 0) url(plc/images/bg/CLIENTS.jpg) no-repeat fixed center center / cover ;">
            <div class="container">
                <div class="row">
                    <div class="col-md-6 col-lg-5 col-sm-12 col-xs-12">
					<?php $sqli=$conn->query("Select * from content where Id=27");
        foreach ($sqli as $key => $row) {
							?>
							
                        <div class="htc__testimonial__wrap">
                            <div class="section__title text-left">
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                <h2 class="title__line"><?php echo $row ['Name']; ?> <span class="text--theme"><?php echo $row ['Title']; ?></span></h2>
                                <p><?php echo $row ['Description1']; ?></p>
                            </div>
							<?php } ?>
                            <div class="testimonial__activation clearfix">
                                 <!-- Start Single Testimonial -->
								 <?php $sqli=$conn->query("Select * from content where Id=28");
        foreach ($sqli as $key => $row) {
							?>
                                <div class="testimonial">
                                    <div class="testimonial__thumb">
									<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                         <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="clint image">
                                    </div>
                                    <div class="testimonial__details">
                                        <div class="tes__icon">
                                            <i class="fa fa-quote-right"></i>
                                        </div>
                                        <p><?php echo $row ['Description2']; ?></p>
                                        <h2><a href="<?php echo $row ['Description1']; ?>"><?php echo $row ['Title']; ?></a></h2>
                                        <h4><?php echo $row ['Name']; ?></h4>
                                    </div>
                                </div>
								<?php } ?>
                                 <!-- End Single Testimonial -->
                                 <!-- Start Single Testimonial -->
								 <?php $sqli=$conn->query("Select * from content where Id=29");
        foreach ($sqli as $key => $row) {
							?>
                                <div class="testimonial">
                                    <div class="testimonial__thumb">
									<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                         <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="clint image">
                                    </div>
                                    <div class="testimonial__details">
                                        <div class="tes__icon">
                                            <i class="fa fa-quote-right"></i>
                                        </div>
                                        <p><?php echo $row ['Description2']; ?></p>
                                        <h2><a href="<?php echo $row ['Description1']; ?>"><?php echo $row ['Title']; ?></a></h2>
                                        <h4><?php echo $row ['Name']; ?></h4>
                                    </div>
                                </div>
								<?php } ?>
                                 <!-- End Single Testimonial -->
                                 <!-- Start Single Testimonial -->
								 <?php $sqli=$conn->query("Select * from content where Id=30");
        foreach ($sqli as $key => $row) {
							?>
                                <div class="testimonial">
                                    <div class="testimonial__thumb">
								<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                                         <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="clint image">
                                    </div>
                                    <div class="testimonial__details">
                                        <div class="tes__icon">
                                            <i class="fa fa-quote-right"></i>
                                        </div>
                                        <p><?php echo $row ['Description2']; ?></p>
                                        <h2><a href="<?php echo $row ['Description1']; ?>"><?php echo $row ['Title']; ?></a></h2>
                                        <h4><?php echo $row ['Name']; ?></h4>
                                    </div>
                                </div>
								<?php } ?>
                                 <!-- End Single Testimonial -->
                            </div>
                        </div>
                    </div>
                    <div class="col-md-6 col-lg-6  col-lg-offset-1 col-sm-12 col-xs-12 smt-40">
                        <div class="reguest__quote">
						<?php $sqli=$conn->query("Select * from content where Id=31");
        foreach ($sqli as $key => $row) {
							?>
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="section__title text-left">
                                <h2 class="title__line"><?php echo $row ['Name']; ?> 
                                <span class="text--theme"><?php echo $row ['Title']; ?></span></h2>
                                <p><?php echo $row ['Description1']; ?></p>
                            </div>
							<?php } ?>
                            <form  action="plc/index_mes_save.php" method="post">
                                <div class="clint__comment__form">
                                    <div class="single__cl__form">
                                        <input name="name" type="text" required placeholder="Name">
                                        <input name="email" type="email" required placeholder="Email">
                                    </div>
                                    <div class="single__cl__form">
                                        <input name="phone" type="tel" required placeholder="Phone">
                                        <input name="subject" type="text" placeholder="Subject">
                                    </div>
                                    <div class="single__cl__message">
                                        <textarea name="message" required placeholder="Massage"></textarea>
                                    </div>
                                    <div class="clint__submit__btn">
                                        <button class="submit htc__btn" name="contactsave" type="submit">
                                            SEND MESSAGE 
                                        </button>
                                    </div>
                                </div>
                            </form>
                            
                        </div>
                    </div>
                </div>
            </div>
        </section>
        <!-- End Testimonial Area -->

					<?php $sqli=$conn->query("Select * from content where Id=32");
        foreach ($sqli as $key => $row) {
							?>
							<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
	                <div class="slide slider__fixed--height slide__align--center" style="background: rgba(0, 0, 0, 0) url(plc/content/upload/<?php echo $row ['FileName']; ?>) no-repeat scroll 0 0 / cover;" data--black__overlay="6">
                    <div class="container">
                        <div class="row">
                            <div class="col-md-12 col-lg-12">
                                <div class="slider__inner">
                                    <h1><?php echo $row ['Name']; ?></h1>
                                    <h1></h1>
                                    <p><?php echo $row ['Description1']; ?></br><?php echo $row ['Description2']; ?></p>
                                    <div class="slider__btn">
                                        <a class="htc__btn" href="#">CONTACT US</a>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    
                </div>
				<?php } ?>
	
	
	
	
		
        <!-- Start Blog Area -->
        <section class="htc__blog__area pt--150 bg__white">
            <div class="container">
                <div class="row">
                    <div class="section__title text-center">
                        <h2 class="title__line">LATEST <span class="text--theme">BLOG</span></h2>
                        <p>==================</p>
                    </div>
                </div>
                <div class="row">
                    <div class="htc__blog__wrap mt--30 clearfix">
                        <!-- Start Single Blog -->
						<?php $sqli=$conn->query("Select * from content where Id=33");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-4 col-lg-4 col-sm-6 col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="blog foo">
                                <div class="blog__thumb">
                                    <a href="blog-details.html">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="blog image">
                                    </a>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Blog -->
                        <!-- Start Single Blog -->
						<?php $sqli=$conn->query("Select * from content where Id=34");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-4 col-lg-4 col-sm-6 col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="blog foo">
                                <div class="blog__thumb">
                                    <a href="blog-details.html">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="blog image">
                                    </a>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Blog -->
                        <!-- Start Single Blog -->
						<?php $sqli=$conn->query("Select * from content where Id=35");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-4 col-lg-4 col-sm-6 col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="blog foo">
                                <div class="blog__thumb">
                                    <a href="blog-details.html">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="blog image">
                                    </a>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Blog -->
						<!-- Start Single Blog -->
						<?php $sqli=$conn->query("Select * from content where Id=36");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-4 col-lg-4 col-sm-6 col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="blog foo">
                                <div class="blog__thumb">
                                    <a href="blog-details.html">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="blog image">
                                    </a>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Blog -->
						<!-- Start Single Blog -->
						<?php $sqli=$conn->query("Select * from content where Id=37");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-4 col-lg-4 col-sm-6 col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="blog foo">
                                <div class="blog__thumb">
                                    <a href="blog-details.html">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="blog image">
                                    </a>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Blog -->
						<!-- Start Single Blog -->
						<?php $sqli=$conn->query("Select * from content where Id=38");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-4 col-lg-4 col-sm-6 col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="blog foo">
                                <div class="blog__thumb">
                                    <a href="blog-details.html">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="blog image">
                                    </a>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Blog -->
						<!-- Start Single Blog -->
						<?php $sqli=$conn->query("Select * from content where Id=39");
        foreach ($sqli as $key => $row) {
							?>
                        <div class="col-md-8 col-lg-4 hidden-sm col-xs-12">
						<a class="" href="plc/content/contentedit.php?Id=<?php echo $row["Id"]; ?>"><i class="btn btn-primary  glyphicon glyphicon-edit"> <?php echo $row["Id"]; ?> Edit</i></a>
                            <div class="blog foo">
                                <div class="blog__thumb">
                                    <a href="blog-details.html">
                                        <img src="plc/content/upload/<?php echo $row ['FileName']; ?>" alt="blog image">
                                    </a>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Blog -->
                    </div>
                </div>
            </div>
        </section>
        <!-- End Blog Area -->
        
		
		
        <!-- Start Newsletter Area -->
        <section class="htc__newsletter__area ptb--90 bg__gray">
            <div class="container">
                <div class="row">
                    <div class="col-xs-12">
                        <div class="newsletter__wrap">
                            <h2 class="title__line">SUBSCRIBE <span class="text--theme">NEWSLETTER</span></h2>
                            <h4>Subscribe our newsletter and get latest update</h4>
                            <div class="newsletter__form">
                                <div class="input__box">
                                    <div id="mc_embed_signup">
                                        <form action="#" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
                                            <div id="mc_embed_signup_scroll" class="htc__news__inner">
                                                <div class="news__input">
                                                    <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="Email Address" required>
                                                </div>
                                                <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
                                                <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_6bbb9b6f5827bd842d9640c82_05d85f18ef" tabindex="-1" value=""></div>
                                                <div class="clearfix subscribe__btn"><input type="submit" value="SUBSCRIBE NOW" name="subscribe" id="mc-embedded-subscribe" class="bst__btn btn--white__color">
                                                    
                                                </div>
                                            </div>
                                        </form>
                                    </div>
                                </div>        
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            
        </section>
        <!-- End Newsletter Area -->
        
    </div>
    <!-- Body main wrapper end -->

    <!-- Placed js at the end of the document so the pages load faster -->

    <!-- jquery latest version -->
    <script src="plc/js/vendor/jquery-1.12.0.min.js"></script>
    <!-- Bootstrap framework js -->
    <script src="plc/js/bootstrap.min.js"></script>
    <!-- All js plugins included in this file. -->
    <script src="plc/js/plugins.js"></script>
    <script src="plc/js/slick.min.js"></script>
    <script src="plc/js/owl.carousel.min.js"></script>
    <!-- Waypoints.min.js. -->
    <script src="plc/js/waypoints.min.js"></script>
    <!-- Main js file that contents all jQuery plugins activation. -->
    <script src="plc/js/main.js"></script>

</body>


</html>
<?php
require('plc/includes/footer.php');
?>
<?php
	}else{
		header("location:plc/register/login.php");
	}

?>