Moteur de recherche

FerdinandC
Invité n'ayant pas de compte PHPfrance

27 avr. 2007, 13:14

Bonjour à tous, je parcours le site php france depuis un peu plus de deux mois, et je visite également les 2 000 000 de sites sur php.
Je fais actuellement un site, mais celui-ci doit contenir un moteur de recherche et afficher le résultat dans une page propre comme Google.

Le problème est que je ne sais pas où cherche le moteur de recherche ?
En fait j'aimerais mettre des noms de dossier dans MySQL, des sous-dossiers et dans ces sous-dossiers mettre les fichiers, mais visiblement c'est impossible.

Donc ce que j'aimerais faire c'est :
Créer un moteur de recherche pour mon site qui peut chercher des fichiers dans MySQL (et savoir comment met-on des fichiers dans une base de donnée) et également incruster la page de résultat dans mon site.

Je vous remercie :'(

Mammouth du PHP | 686 Messages

27 avr. 2007, 14:17

Alors tout d'abord il faut que tu cree une table dans ta base de donnée nommée "recherche" par exemple.
Moi mes fichiers en questions dans ma base de donnée sont des images
j'ai don créé une colone Id (en auto increment), rubrique, dossier, nom_de_fichier, mots_cle, titre.
Ensuite tu crée un formulaire pour pouvoir ajouter des infos à ta base de données
Attention : en aucun ca envoie les fichiers, ca ne donne que les infos pour aller les chercher, ca ne dispense pas d'envoyer les fichier par FTP.
Tu crée :
- un champ Rubrique (avec la rubrique ou le theme de ton choix)
- un champ dossier (qui donne le dossier (ou sous dossier) pour l'url du fichier
- un champ nom_de_fichier (dans lequel tu inscrira par exemple "mapage.htm"
- un champ titre (le titre de la page par exemple)
- Un champ mots_cle
- un bouton POST qui envoie vers post.php par exemple

Ton fichier post.php est ecrit dans ce genre là
<?
//// On vérifie que les champs auteur et commentaire sont bien remplis ////


$_POST['nom_de_fichier']=trim($_POST['nom_de_fichier']);
$_POST['mots_cle']=trim($_POST['mots_cle']);
$_POST['dossier']=trim($_POST['dossier']);
$_POST['titre']=trim($_POST['titre']);
$_POST['rubrique']=trim($_POST['rubrique']);
if(empty($_POST['rubrique']) || empty($_POST['nom_de_fichier']) || empty($_POST['mots_cle']) || empty($_POST['titre']))
{
  echo "<meta http-equiv=\"refresh\" content=\"0;url=ajout.php?result=error&rubrique=$rub\">\n ";
}
else if($_POST['dossier']== "NULL" || $_POST['titre']== "NULL" || $_POST['mots_cle']== "NULL || $_POST['nom']== "NULL /// etc ...)
{
  ///Met ici une action qui t'informera q'une des infos saisie est vide
}

else
 {
  //// On inclut le fichier de connexion à la base SQL ////

  include("connect.php"); /// ce fichier contient le necessaire pour se connecter à ta BDD  c'est a dire :
///$serveur="adresse du serveur"; 
///$db="nom de la Data Base"; 
///$utilisateur="ton nom utilisateur pour cette Base"; 
///$mdp="tom mot de passe"; 

  //// Connexion à la base mySQL ////

  @MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
  @MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible");


  //// On insère le nouveau commentaire ////
 mysql_query("INSERT INTO recherche VALUES (\"\",\"$_POST[rubrique]\",\"$_POST[nom_de_fichier]\",\"$_POST[mots_cle]\",\"$_POST[dossier]\",\"$_POST[titre]\")");
   //// On ferme la connexion à la base mySQL ////

  mysql_close();
/// tu peux rajouter une action qui indiquera que l'ajout a ta BDD est bien effectué
 }

?>

Petit nouveau ! | 2 Messages

27 avr. 2007, 14:31

Je te remercie, vraiment.

Je vais essayer ça tout de suite je vous tiens au courant.

Encore merci ;)

Mammouth du PHP | 686 Messages

27 avr. 2007, 14:33

Pour les resultats regardes le code que j'ai mis dans mon post intitulé "Moteur de recherche avec images" ya pas mal de trucs qui pourraient t'aider pour afficher les resultats et interroger la base à partir des infos saisies dans un formulaire pour la recherche

Petit nouveau ! | 2 Messages

27 avr. 2007, 14:46

J'ai donc essayé, mais j'ai toujours deux ou trois soucis ;

que dois-je mettre dans le fichier connect.php ?
et question capitale : Comment puis-je créer un champ ? (champ rubrique, champ dossier,.. ) ?

Merci

Mammouth du PHP | 555 Messages

27 avr. 2007, 14:52

Salut
Dans le fichier connect tu devras mettre
<?php
$serveur = 'adresse du server'; // soit localhost si c'est la même machine soit une ip ou un nom 
$utilisateur = 'ton nom d utilisateur pour te connecter à ta bdd';
$mdp = 'ton mot de passe pour te connecter à la bdd';
$db = 'le nom de ta base de données';
?>
Ces infos t'ont été données par ton hébergeur normalement si t'as un petit hébergement, si t'as ton porpre server il faut que tu paramètre le server SQL mais ça on oublie par ce que je doute que tu possèdes déjà ton porpre server :wink:

Bons débuts en php!
Modifié en dernier par cicom le 27 avr. 2007, 15:16, modifié 1 fois.
A+ et bon surf!!!!

Mammouth du PHP | 686 Messages

27 avr. 2007, 15:10

Ces infos t'ont étées données par ton hébergeur normalement si t'as un petit hébergement, si t'as ton porpre server il faut que tu paramètre le server SQL mais ça on oublie par ce que je doute que tu possèdes déjà ton porpre server

Je suis d'accord avec cicom.
Moi ca fait qu'un moi que je suis dans le PHP et j'ai deja de bonnes bases, le preuve avant je postait tout le temps pour qu'on m'aide et maitenant je comence à aider les autres (mais je poste encore :lol: )!
Pour rajouter des colones à ta BDD (pour mon cas chez mon hebergeur (1and1)) normalement dès que tu créé une table il te demande le nombre de champs que tu veux y mettre et ensuite il te demande de saisir leur nom et specification (oublies pas le champ ID avec dans "extra" "auto_increment" et de type "int()"
Les autres mets les de type varchar() et tu precise le nombre maximum de caractères (pour le texte) qu'elle pourra recevoir
Mais ya quelques tutos pour ca donc vaux mieux que je te laisse la joie :D de decouvrir par toi même. Une fois qu'on est dedans ca roule tout seul

Mammouth du PHP | 555 Messages

27 avr. 2007, 15:20

Re,
Oué l'outil principal et le plus pratique de manipulation de bases de données est phpmyadmin, tu trouveras des miliers de tutos là dessus avec google et normalement ton hébergeur te fournit un manager de bases de données de ce type (si ce n'est pas le cas gueule un coup XD)
Tu verras au début on y comprend rien mais en tatonant, en allant de tutos en tutos et en faisant des essais on arrive vite à maitriser en partie cet outil très complet et à arriver à faire ce qu'on veut faire...
Bon apprentissage!
A+ et bon surf!!!!