<?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>TUTORIAL || POWER LINKS CTG</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="../images/icon.png">
    <link rel="apple-touch-icon" href="apple-touch-icon.png">
	
	
</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">
        <!-- Start Header Style -->

        <!-- End Header Style -->
        <!-- Start Bradcaump area -->
        <div class="ht__bradcaump__area" data--black__overlay="6" style="background: rgba(0, 0, 0, 0) url(<?php echo WEB_URL; ?>/plc/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">TUTORIAL</h2>
                                <nav class="bradcaump-inner">
                                  <a class="breadcrumb-item" href="../../index.php">Home</a>
                                  <span class="brd-separetor">-</span>
								  <a class="breadcrumb-item" href="<?php echo WEB_URL; ?>plc/tutorials/tutorial.php">Tutorial</a>
								  <span class="brd-separetor">-</span>
                                  <span class="breadcrumb-item active">Products</span>
                                </nav>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
	
        <!-- End Bradcaump area -->
		
		<div class="profile-tabs">
					
  	<ul class="main__menu" role="tablist" id="myTab">
		<li class="nav-item"><a class="nav-link active" href="#0" aria-controls="profile" role="tab" data-toggle="tab">All PRODUCTS</a></li>
				
						<li class="nav-item"><a class="nav-link" href="#1" aria-controls="profile" role="tab" data-toggle="tab">Switches, Socket & Holder</a></li>
						<li class="nav-item"><a class="nav-link" href="#2" aria-controls="profile" role="tab" data-toggle="tab">Wear & Cables</a></li>
						<li class="nav-item"><a class="nav-link" href="#3" aria-controls="profile" role="tab" data-toggle="tab">Pipe & Fittings</a></li>
						<li class="nav-item"><a class="nav-link" href="#4" aria-controls="profile" role="tab" data-toggle="tab">Circuit Breaker</a></li>
						<li class="nav-item"><a class="nav-link" href="#5" aria-controls="profile" role="tab" data-toggle="tab">accessories</a></li>
						<li class="nav-item"><a class="nav-link" href="#6" aria-controls="profile" role="tab" data-toggle="tab">Tools</a></li>
						
	</ul>
        
	
	<div class="tab-content">
	<hr>
<div id="0" class="tab-pane active">
					<div class="col-xs-12">
                        <div class="section__title text-center">
                            <h2 class="title__line">ALL <span class="text--theme">PRODUCTS</span></h2>
                        </div>
                    </div>
<section class="htc__latest__project__area ptb--150 bg__white">
            <div class="container">
                <div class="row">
                    <div class="htc__latest__project__wrap clearfix">
                        <!-- Start Single Project -->
						
						<?php $sqli=$conn->query("Select * from item");
							foreach ($sqli as $key => $project) {
											?>
											
                        <div class="col-md-3 col-lg-3 col-sm-6 col-xs-12">
                            <div style="margin-right: 0.5px;" class="project foo">
                                <div class="project__thumb">
                                    <a href="single-Item.php">
                                        <img alt="project images" src='../../../power/Item/<?php echo $project ['FileName']; ?>' 
										width="" height="250" >
                                    </a>
                                    <div class="project__hover__info">
                                        <div class="project__action">
                                            <h2><a href="single-Item.php?Id=<?php echo $project["Id"]; ?>&catagory=<?php echo $project["catagory"]; ?>"><?php echo $project["item_name"]; ?></a></h2>
                                            <h4><?php echo $project ['short_description']; ?></h4>
                                        </div>
                                    </div>
									
                                </div>
								<b>  <?php echo $project["item_name"]; ?></b>
                            </div>
                        </div>
						<?php } ?>
						
						
                        <!-- End Single Project -->
                       
                    </div>
                </div>
            </div>
        </section>

    </div>
	<div id="1" class="tab-pane">
					<div class="col-xs-12">
                        <div class="section__title text-center">
                            <h2 class="title__line">Switches, Socket<span class="text--theme"> & Holder</span></h2>
                        </div>
                    </div>
<section class="htc__latest__project__area ptb--150 bg__white">
            <div class="container">
                <div class="row">
                    <div class="htc__latest__project__wrap clearfix">
                        <!-- Start Single Project -->
						
						<?php $sqli=$conn->query("Select * from item where catagory=1");
							foreach ($sqli as $key => $project) {
											?>
											
                        <div class="col-md-3 col-lg-3 col-sm-6 col-xs-12">
                            <div style="margin-right: 0.5px;" class="project foo">
                                <div class="project__thumb">
                                    <a href="single-Item.php">
                                        <img alt="project images" src='../../../power/Item/<?php echo $project ['FileName']; ?>' 
										width="" height="250" >
                                    </a>
                                    <div class="project__hover__info">
                                        <div class="project__action">
                                            <h2><a href="single-Item.php?Id=<?php echo $project["Id"]; ?>&catagory=<?php echo $project["catagory"]; ?>"><?php echo $project["item_name"]; ?></a></h2>
                                            <h4><?php echo $project ['short_description']; ?></h4>
                                        </div>
                                    </div>
									
                                </div>
								<b>  <?php echo $project["item_name"]; ?></b>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Project -->
                       
                    </div>
                </div>
            </div>
        </section>
      
    </div>
	<div id="2" class="tab-pane">
					<div class="col-xs-12">
                        <div class="section__title text-center">
                            <h2 class="title__line">WEAR<span class="text--theme"> & CABLES</span></h2>
                        </div>
                    </div>
	<section class="htc__latest__project__area ptb--150 bg__white">
            <div class="container">
                <div class="row">
                    <div class="htc__latest__project__wrap clearfix">
                        <!-- Start Single Project -->
						
						<?php $sqli=$conn->query("Select * from item where catagory=2");
							foreach ($sqli as $key => $project) {
											?>
											
                        <div class="col-md-3 col-lg-3 col-sm-6 col-xs-12">
                            <div style="margin-right: 0.5px;" class="project foo">
                                <div class="project__thumb">
                                    <a href="single-Item.php">
                                        <img alt="project images" src='../../../power/Item/<?php echo $project ['FileName']; ?>' 
										width="" height="250" >
                                    </a>
                                    <div class="project__hover__info">
                                        <div class="project__action">
                                            <h2><a href="single-Item.php?Id=<?php echo $project["Id"]; ?>&catagory=<?php echo $project["catagory"]; ?>"><?php echo $project["item_name"]; ?></a></h2>
                                            <h4><?php echo $project ['short_description']; ?></h4>
                                        </div>
                                    </div>
									
                                </div>
								<b>  <?php echo $project["item_name"]; ?></b>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Project -->
                       
                    </div>
                </div>
            </div>
        </section>
      
    </div>
	
	<div id="3" class="tab-pane">
					<div class="col-xs-12">
                        <div class="section__title text-center">
                            <h2 class="title__line">PIPE <span class="text--theme">& FITTINGS</span></h2>
                        </div>
                    </div>
	<section class="htc__latest__project__area ptb--150 bg__white">
            <div class="container">
                <div class="row">
                    <div class="htc__latest__project__wrap clearfix">
                        <!-- Start Single Project -->
						
						<?php $sqli=$conn->query("Select * from item where catagory=3");
							foreach ($sqli as $key => $project) {
											?>
											
                        <div class="col-md-3 col-lg-3 col-sm-6 col-xs-12">
                            <div style="margin-right: 0.5px;" class="project foo">
                                <div class="project__thumb">
                                    <a href="single-Item.php">
                                        <img alt="project images" src='../../../power/Item/<?php echo $project ['FileName']; ?>' 
										width="" height="250" >
                                    </a>
                                    <div class="project__hover__info">
                                        <div class="project__action">
                                            <h2><a href="single-Item.php?Id=<?php echo $project["Id"]; ?>&catagory=<?php echo $project["catagory"]; ?>"><?php echo $project["item_name"]; ?></a></h2>
                                            <h4><?php echo $project ['short_description']; ?></h4>
                                        </div>
                                    </div>
									
                                </div>
								<b>  <?php echo $project["item_name"]; ?></b>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Project -->
                       
                    </div>
                </div>
            </div>
        </section>
      
    </div>
	<div id="4" class="tab-pane">
					<div class="col-xs-12">
                        <div class="section__title text-center">
                            <h2 class="title__line">CIRCUIT<span class="text--theme"> BREAKER</span></h2>
                        </div>
                    </div>
	<section class="htc__latest__project__area ptb--150 bg__white">
            <div class="container">
                <div class="row">
                    <div class="htc__latest__project__wrap clearfix">
                        <!-- Start Single Project -->
						
						<?php $sqli=$conn->query("Select * from item where catagory=4");
							foreach ($sqli as $key => $project) {
											?>
											
                        <div class="col-md-3 col-lg-3 col-sm-6 col-xs-12">
                            <div style="margin-right: 0.5px;" class="project foo">
                                <div class="project__thumb">
                                    <a href="single-Item.php">
                                        <img alt="project images" src='../../../power/Item/<?php echo $project ['FileName']; ?>' 
										width="" height="250" >
                                    </a>
                                    <div class="project__hover__info">
                                        <div class="project__action">
                                            <h2><a href="single-Item.php?Id=<?php echo $project["Id"]; ?>&catagory=<?php echo $project["catagory"]; ?>"><?php echo $project["item_name"]; ?></a></h2>
                                            <h4><?php echo $project ['short_description']; ?></h4>
                                        </div>
                                    </div>
									
                                </div>
								<b>  <?php echo $project["item_name"]; ?></b>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Project -->
                       
                    </div>
                </div>
            </div>
        </section>
      
    </div>
	<div id="5" class="tab-pane">
					<div class="col-xs-12">
                        <div class="section__title text-center">
                            <h2 class="title__line">ELECTRICAL <span class="text--theme">ACCESSORIES</span></h2>
                        </div>
                    </div>
	<section class="htc__latest__project__area ptb--150 bg__white">
            <div class="container">
                <div class="row">
                    <div class="htc__latest__project__wrap clearfix">
                        <!-- Start Single Project -->
						
						<?php $sqli=$conn->query("Select * from item where catagory=5");
							foreach ($sqli as $key => $project) {
											?>
											
                        <div class="col-md-3 col-lg-3 col-sm-6 col-xs-12">
                            <div style="margin-right: 0.5px;" class="project foo">
                                <div class="project__thumb">
                                    <a href="single-Item.php">
                                        <img alt="project images" src='../../../power/Item/<?php echo $project ['FileName']; ?>' 
										width="" height="250" >
                                    </a>
                                    <div class="project__hover__info">
                                        <div class="project__action">
                                            <h2><a href="single-Item.php?Id=<?php echo $project["Id"]; ?>&catagory=<?php echo $project["catagory"]; ?>"><?php echo $project["item_name"]; ?></a></h2>
                                            <h4><?php echo $project ['short_description']; ?></h4>
                                        </div>
                                    </div>
									
                                </div>
								<b>  <?php echo $project["item_name"]; ?></b>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Project -->
                       
                    </div>
                </div>
            </div>
        </section>
      
    </div>
	<div id="6" class="tab-pane">
					<div class="col-xs-12">
                        <div class="section__title text-center">
                            <h2 class="title__line">ELECTRICAL <span class="text--theme">TOOLS</span></h2>
                        </div>
                    </div>
	<section class="htc__latest__project__area ptb--150 bg__white">
            <div class="container">
                <div class="row">
                    <div class="htc__latest__project__wrap clearfix">
                        <!-- Start Single Project -->
						
						<?php $sqli=$conn->query("Select * from item where catagory=6");
							foreach ($sqli as $key => $project) {
											?>
											
                        <div class="col-md-3 col-lg-3 col-sm-6 col-xs-12">
                            <div style="margin-right: 0.5px;" class="project foo">
                                <div class="project__thumb">
                                    <a href="single-Item.php">
                                        <img alt="project images" src='../../../power/Item/<?php echo $project ['FileName']; ?>' 
										width="" height="250" >
                                    </a>
                                    <div class="project__hover__info">
                                        <div class="project__action">
                                            <h2><a href="single-Item.php?Id=<?php echo $project["Id"]; ?>&catagory=<?php echo $project["catagory"]; ?>"><?php echo $project["item_name"]; ?></a></h2>
                                            <h4><?php echo $project ['short_description']; ?></h4>
                                        </div>
                                    </div>
									
                                </div>
								<b>  <?php echo $project["item_name"]; ?></b>
                            </div>
                        </div>
						<?php } ?>
                        <!-- End Single Project -->
                       
                    </div>
                </div>
            </div>
        </section>
      
    </div>
	
	
	
	</div>
			
		</div>

		


        
        <!-- End Footer Area -->
    </div>
    <!-- Body main wrapper end -->


</body>
</html>
<script>
$(function(){
  var hash = window.location.hash;
  hash && $('ul.nav a[href="' + hash + '"]').tab('show');

  $('.main__menu a').click(function (e) {
    $(this).tab('show');
    var scrollmem = $('body').scrollTop() || $('html').scrollTop();
    window.location.hash = this.hash;
    $('html,body').scrollTop(scrollmem);
  });
});
</script>


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





