<?php
require('../includes/header.php');

   
 
?>
<!doctype html>
<html class="no-js" lang="en">


<head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title>Single Project || POWER LINKS CTG</title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
 
</head>

<body>



<?php

if (isset($_POST['editproject'])){
//if(count($_POST)>0) {
mysqli_query($conn,"UPDATE project set Id='" . $_POST['id'] . "',
 ProjectName='" . $_POST['ProjectName'] . "',
 ContactName='" . $_POST['ContactName'] . "',
 Address='" . $_POST['Address'] . "' ,
 Email='" . $_POST['Email'] . "',
 PhoneNo='" . $_POST['PhoneNo'] . "'
 Display='" . $_POST['Display'] . "'
 FileName='" . $_POST['FileName'] . "'
 WHERE Id='" . $_POST['id'] . "'");
$message = "Record Modified Successfully";
}
$result = mysqli_query($conn,"SELECT * FROM project WHERE id='" . $_GET['Id'] . "' and Display='" . $_GET['Display'] . "'");
$row= mysqli_fetch_array($result);

?>

    <!--[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">
    
        <!-- End Header Style -->
        <!-- Start Bradcaump area -->
        <div class="ht__bradcaump__area" data--black__overlay="6" style="background: rgba(0, 0, 0, 0) url(../images/bg/5.jpg) no-repeat scroll center center / cover ;">
            <div class="ht__bradcaump__wrap">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12">
                            <div class="bradcaump__inner text-center">
                                <h2 class="bradcaump-title">PROJECTS</h2>
                                <nav class="bradcaump-inner">
                                  <a class="breadcrumb-item" href="index.html">Home</a>
                                  <span class="brd-separetor">-</span>
                                  <a class="breadcrumb-item" href="service.html">PROJECTS</a>
                                  <span class="brd-separetor">-</span>
                                  <span class="breadcrumb-item active">Single PROJECTS</span>
                                </nav>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!-- End Bradcaump area -->
        <!-- Start Blog Area -->
        <section class="htc__project__details__page ptb--150 bg__white">
            <div class="container">
                <div class="row">
                    <div class="col-md-7 col-lg-7 col-sm-12 col-xs-12">
                        <div class="htc__single__service">
                            <div class="htc__single__service__tab">
                                <div class="ht-portfolio-pic-show">
                                    <div class="ht-portfolio-full-image tab-content">
                                        <div role="tabpanel" class="tab-pane fade in active" id="img-tab-1">
                                            <img  src='../../../emp/upload/<?php echo $row['FileName']; ?>' alt="full-image" width="450" height="550">
                                        </div>
                                        
                                        
                                        <div role="tabpanel" class="tab-pane fade" id="img-tab-4">
                                            <img src="<?php echo WEB_URL; ?>plc/images/blog/big-images/5.jpg" alt="full-image">
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="col-lg-5 col-md-5 col-sm-12 col-xs-12">
                        <div class="single__project__rightsidebar">
                            <!-- Start Single Item -->
                            <div class="pro__dtl__inner bg__gray" >
                                <h2>PROJECT DETAILS</h2>
                                <div class="pro__dtl__content">
                                    <ul class="pro__dtl__list">
										<li></li>
										<li><b>PROJECT : </b><?php echo $row['ProjectName']; ?></li>
                                        <li><b>CLIENT : </b><?php echo $row['ContactName']; ?></li>
                                        <li><b>LOCATION : </b><?php echo $row['SortAddress']; ?></li>
                                        <li><b>DISTRICT : </b>Chattogram</li>
                                        <li><b>TYPE : </b>Residential</li>
                                        <li><b>SECTOR : </b>Electrical</li>
										<li></li>
										<li></li>
                                    </ul>
                                    
                                </div>
                            </div>
                            <!-- End Single Item -->
                            
                        </div>
                    </div>
					
					<div class="col-md-12 col-lg-12 col-sm-12 col-xs-6">
                        <div class="htc__single__service">
                            <div class="htc__single__service__tab">
                                
                                <!-- Start Small images -->
                                <div class="ht__service__small__image nav nav-tabs clearfix">
                                    <ul >
                                        
                                        <li role="presentation" class="pot-small-img img-tab-2">
										<div class="row">
                    <div class="rl__project__wrap clearfix mt--60 xmt-40">
                        <!-- Start Single Service -->
						<?php $sqli=$conn->query("Select * from project where Display='" . $_GET['Display'] . "' ORDER BY RAND() LIMIT 6");
							foreach ($sqli as $key => $project) {
											?>
                        <div class="col-md-2 col-lg-2 col-sm-4 col-xs-12">
                            <div class="rl__project foo">
                                <div class="project__thumb">
                                    <a href="single-project.php?Id=<?php echo $project["Id"]; ?>&Display=<?php echo $project["Display"]; ?>">
									<img  alt="project images" src='../../../emp/upload/<?php echo $project ['FileName']; ?>' 
										width="" height="150" >
                                        
                                    </a>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Service -->
                        
                    </div>
                </div>
                                        </li>
                                        
										
										
                                       
                                    </ul>
                                </div>
                                <!-- End Small images --> 
                            </div>
                        </div>
                    </div>
				
                </div>
                
            </div>
        </section>
        <!-- End Blog Area -->
        <!-- Start Service Area -->
        <section class="htc__project__area bg__white pb--150">
            <div class="container">
                <div class="row">
                    <div class="col-xs-12">
                        <div class="section__title text-center">
                            <h2 class="title__line">RELATED <span class="text--theme">PROJECTS</span></h2>
                            
							<hr>
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="rl__project__wrap clearfix mt--60 xmt-40">
                        <!-- Start Single Service -->
						<?php $sqli=$conn->query("Select * from project where display BETWEEN 1 AND 2 ORDER BY RAND() LIMIT 12");
							foreach ($sqli as $key => $project) {
											?>
                        <div class="col-md-3 col-lg-3 col-sm-4 col-xs-12">
                            <div class="rl__project foo">
                                <div class="project__thumb">
                                    <a href="single-project.php?Id=<?php echo $project["Id"]; ?>&Display=<?php echo $project["Display"]; ?>">
									<img  alt="project images" src='../../../emp/upload/<?php echo $project ['FileName']; ?>' 
										width="" height="300" >
                                        
                                    </a>
                                </div>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Service -->
                        
                    </div>
                </div>
            </div>
        </section>
        <!-- End Service 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>
            <div class="newsletter__thumb">
                <div class="newsletter__thumb__inner">
                    <img src="../images/others/1.png" alt="newsletter img">
                </div>
            </div>
        </section>
        <!-- End Newsletter Area -->
        
        

    </div>
    <!-- Body main wrapper end -->

  
	
	

</body>
<a id="scrollUp" href="#top" style="position: fixed; z-index: 2147483647;"><i class="zmdi zmdi-chevron-up"></i></a>


</html>


<?php
require('../includes/footer.php');
?>