محرك بحث ب php و mysql للمبتدئين الجزء الثاني

imadbelasri PHP
PH

فهاد الجزء الثاني من محرك بحث ب php و mysql للمبتدئين غادي نكملو الملفات لي غادي يمكنو المستخدم من البحث داخل قاعدة البيانات وعرض النتائج وأيضا الملف لي غادي يمكن من إضافة المواقع لقاعدة البيانات.


نظرة سريعة بالفيديو


1- الملف index.php

فالمجلد الرئيسي ديال المشروع ديالنا كنزيد ملف كنسميه index.php لي هو الصفحة الرئيسية ديالنا هنا غادي يكون الحقل لي غادي يمكن المستخدم من البحث على الموقع لي بغا ومنبعد غادي يتوجه للصفحة الخاصة بعرض النتائج الكود ديال الملف هو :

                                                    
                                                        <?php
  include('includes/header.php');
?>
<div class="main">
    <div class="container-fluid">
        <div class="row">
            <div class="col-sm-12">
                <form method="post" action="result.php" class="" style="margin-top:250px;">
                    <div class="row">
                        <div class="col-sm-8 col-sm-offset-2 col-xs-9">
                            <div class="form-group">
                                <input type="text" class="form-control recherche" id="recherche" name="query" placeholder="Recherche"/>
                            </div> 
                        </div>
                        <div class="col-sm-2 col-xs-3">
                            <button type="submit" class="btn btn-lg btn-success right-rounded search"><i class="glyphicon  glyphicon-search"></i></button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>
<?php
  include('includes/footer.php');
?>
                                                    
                                                

2- الملف add_website.php

فالمجلد الرئيسي ديال المشروع ديالنا كنزيد ملف كنسميه add_website.php لي هو الصفحة لي فيها الكود لي كيمكنا من إضافة المواقع لقاعدة البيانات ديالنا بواسطة لfonction insert هاد لfonction غادي تكون فالملف functions.php لي غادي نزيدو من بعد كنرسلولها الحقول لي دخلنا على شكل جدول من بعد كتزيدهم فقاعدة البيانات والصورة كتزيدها فالمجلد images بواسطة ل fonction upload_image المجلد images حتى هو زيدو فالمجلد ديال المشروع ديالنا الكود ديال الملف add_website.php هو :

                                                        
                                                            <?php
  include('includes/header.php');
?>
<div class="container marged">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="panel panel-default">
                <h1 class="text-center text-primary">Ajouter un site</h1>
                <hr>
                <?php 
                    if(isset($_POST['submit'])){
                        $photo = upload_image($_FILES["photo"]);
                        if(empty($photo == "size_excced"){
                            echo '<div class="alert alert-danger">Le fichier téléchargé dépasse la taille maximale autorisée</div>';
                        }else{
                            $table = "users";
                            $titre = htmlentities($_POST['titre']);
                            $url = htmlentities($_POST['url']);
                            $keys = htmlentities($_POST['keys']);
                            $desc = htmlentities(($_POST['desc']));
                            $values = array(
                                'title'=>$titre,
                                'link'=>$url,
                                'keywords'=>$keys,
                                'desc'=>$desc,
                                'image'=> $photo
                            );
                            if(insert($con,$values)){
                                echo '<div class="alert alert-success">Ajouté avec succés</div>';
                            }else{
                                echo '<div class="alert alert-danger">Une erreur est survenue'.mysqli_error($con).'</div>';
                            }
                        }
                    }
                ?>
                <section class="row">
                    <div class="col-md-8 col-md-offset-2">
                       <form action="add_website.php" method="post" enctype="multipart/form-data">
                            <div class="form-group">
                                <label for="titre">titre*</label>
                                <input type="text" name="titre"  class="form-control" placeholder="titre">
                            </div>
                            <div class="form-group">
                                <label for="url">Url*</label>
                                 <input type="text" name="url"  class="form-control" placeholder="url">
                            </div>
                             <div class="form-group">
                                <label for="keys">Mots clés*</label>
                                <input type="text" name="keys" placeholder="Mots clés" class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="desc">Déscription*</label>
                                <textarea name="desc" rows="5" cols="30" class="form-control" placeholder="description"></textarea>
                            </div>
                            <div class="form-group">
                                <label for="file">Image*</label>
                                <input type="file" name="photo" class="form-control">
                            </div>
                            <div class="form-group">
                                <button type="submit" name="submit" class="btn btn-success">Ajouter</button>
                            </div>
                       </form>
                    </div>
                </section>
            </div>
        </div>
    </div>
</div>
<?php
  include('includes/footer.php');
?>
                                                        
                                                    

3- الملف result.php

فالمجلد الرئيسي ديال المشروع ديالنا كنزيد ملف كنسميه result.php لي هو الصفحة لي غادي تعرضنا المواقع لي بحث عليها المستخدم فهنا كنخدم بل fonction getData لي كاينة فالملف functions.php ولي كتمكن من استرجاع المعلومات من قاعدة البيانات بالإعتماد على القيمة لي دخل المستخدم فحقل البحث منبعد مكنسترجعو المعلومات الخاصة بالمواقع لي لقينا كنزيدهم ف variable row وكنعرضهم ويلا مكان حتى شي نتيجة كنعرض رسالة ديال حتى شي نتيجة متلقاة الكود ديال الملف هو :

                                                        
                                                            <?php
include('includes/header.php');
$result = getData($con,$_POST['query']);
?>
<div class="container">
   <div class="row">
        <div class="col-md-8 col-md-offset-3">
            <div class="row marged">
                <div class="col-md-8">
                    <form action="result.php" method="post">
                        <div class="form-group">
                            <input type="text" name="query" id="" size="80" placeholder="Recherche" class="form-control">
                        </div>
                        <div class="form-group">
                            <input type="submit" value="Recherche" class="btn btn-success">
                        </div>
                    </form>
                </div>
            </div>
            <div class="row">
                <?php if($result->num_rows > 0):?>
                    <?php while($row = $result->fetch_assoc()):?>
                        <div class="col-md-8">
                            <div class="panel panel-default rounded">
                                <div class="media padded">
                                    <div class="media-left">
                                        <a href="#">
                                        <img class="media-object img-circle" src="images/<?php echo $row['image'];?>" alt="..." height="100" width="100">
                                        </a>
                                    </div>
                                    <div class="media-body padded">
                                        <h4 class="media-heading"><a href="<?php echo $row['link'];?>"><?php echo $row['title'];?></a></h4>
                                        <?php echo $row['desc'];?>
                                    </div>
                                </div>
                            </div>
                        </div>
                    <?php endwhile;?>
                <?php else:?>
                    <div class="alert alert-danger">Aucune donnée trouvée</div>
                <?php endif;?>
            </div>
        </div>
   </div>
</div>
<?php
  include('includes/footer.php');
?>
                                                        
                                                    

4- الملف functions.php

فالمجلد database كنزيد ملف كنسميه functions.php فيه كل لfonctions لي غادي نحتاج باش نزيد المواقع فقاعدة البيانات بواسطة fonction insert و ايضا باش نسترجع المعلومات الخاصة بالمواقع بالإعتماد على القيمة لي دخل المستخدم فحقل البحث بواسطة fonction getData الكود ديال الملف هو :

                                                        
                                                            <?php
include_once('database.php');
function insert($con,$values = array()){
    $params = "'".implode("','",$values)."'";
    $query = "INSERT INTO sites VALUES ('',".$params.")";
    if(mysqli_query($con,$query)){
        return true;
    }else{
        return false;
    }
}
function getData($con,$alias){
    $query = "SELECT * FROM sites WHERE keywords like '%$alias%'"; 
    $result = mysqli_query($con,$query);
    if($result != null){
        return $result;
    }else{
        return false;
    }
}
function upload_image($photo){
    $target_dir = "./images/";
    $target_file = $target_dir.basename($photo["name"]);
    $FileType = pathinfo($target_file,PATHINFO_EXTENSION);
    if($photo["size"] > 2000000){
        return "taille non supportée";
    }else{
        move_uploaded_file($photo["tmp_name"],$target_file);
        return $photo["name"];
    }
}
                                                        
                                                    

5- الملف blog.css

فالمجلد public غادي تزيد 3 دالمجلدات css وjs و fonts منبعد متحمل bootstrap زيد الملفات لي ف css فالمجلد css ولي فالمجلد js ف js ولي ف fonts ف fonts وفالمجلد css زيد ملف جديد سميه blog.css غادي يكون فيه الكود لي غادي يمكن من إضافة des styles css للصفحات ديالنا الكود ديالوهو :

                                                        
                                                            body{
  background: rgba(0,0,0,0.5) no-repeat center center fixed;;
  font-family: Verdana, Geneva, Tahoma, sans-serif; 
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}
.padded{
  padding: 10px;
}
.marged{
  margin-top:100px;
}  
body {
    background-color: #444;
      background-image: url("../background.jpg");
    
}
div.messageErreur{
    display: none;
}
input.recherche {
    border: 8px solid #C9C9C9;
    height: 60px;
}
#img{
    margin:-10px;
    height:50px;
    width: 160px;
    padding: 10px 0 0 10px;
}
button.search{
    height: 60px;
    width : 50px;
}