Recherche

Signaler
Messages postés
5
Date d'inscription
jeudi 19 novembre 2009
Statut
Membre
Dernière intervention
20 novembre 2009
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Bonjour à tous, je suis débutant en php, puis je avoir de l'aide sur la procédure de création d'un moteur de recherche ?
Blanco76

9 réponses

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

Le plus important est de te constituer une base de données qui indexe tout ce que tu veux référencer afin que, lors d'une recherche, tu soit en mesure d'associer les mots clés de la recherche à des données.
Messages postés
5
Date d'inscription
jeudi 19 novembre 2009
Statut
Membre
Dernière intervention
20 novembre 2009

Merci, j'ai déjà une base que j'ai constituée. Alors je veux chercher des informations appropriées dans la base pour afficher des résultats après.
Voici le code d'une page :
<?php require_once('Connections/connect_h.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];

if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue "", $theNotDefinedValue "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO patient (idpatient, numfiche, nom, adresse, commune, date_naiss, sexe, telephone1, statut, telephone2, date_saisie) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['hiddenField2'], "int"),
GetSQLValueString($_POST['numfiche'], "text"),
GetSQLValueString($_POST['nom'], "text"),
GetSQLValueString($_POST['adresse'], "text"),
GetSQLValueString($_POST['select'], "text"),
GetSQLValueString($_POST['date_naiss'], "date"),
GetSQLValueString($_POST['select2'], "text"),
GetSQLValueString($_POST['telephone1'], "text"),
GetSQLValueString($_POST['select3'], "text"),
GetSQLValueString($_POST['telephone2'], "text"),
GetSQLValueString($_POST['date_saisie'], "date"));

mysql_select_db($database_connect_h, $connect_h);
$Result1 = mysql_query($insertSQL, $connect_h) or die(mysql_error());

$insertGoTo = "saisie_pat.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));

}

mysql_select_db($database_connect_h, $connect_h);
$query_commune_rec = "SELECT commune FROM commune";
$commune_rec = mysql_query($query_commune_rec, $connect_h) or die(mysql_error());
$row_commune_rec = mysql_fetch_assoc($commune_rec);
$totalRows_commune_rec = mysql_num_rows($commune_rec);

mysql_select_db($database_connect_h, $connect_h);
$query_sexe_rec = "SELECT sexe FROM sexe";
$sexe_rec = mysql_query($query_sexe_rec, $connect_h) or die(mysql_error());
$row_sexe_rec = mysql_fetch_assoc($sexe_rec);
$totalRows_sexe_rec = mysql_num_rows($sexe_rec);

mysql_select_db($database_connect_h, $connect_h);
$query_statut_rec = "SELECT statut FROM statut";
$statut_rec = mysql_query($query_statut_rec, $connect_h) or die(mysql_error());
$row_statut_rec = mysql_fetch_assoc($statut_rec);
$totalRows_statut_rec = mysql_num_rows($statut_rec);

mysql_select_db($database_connect_h, $connect_h);
$query_user = "SELECT * FROM `user`";
$user = mysql_query($query_user, $connect_h) or die(mysql_error());
$row_user = mysql_fetch_assoc($user);
$totalRows_user = mysql_num_rows($user);

mysql_select_db($database_connect_h, $connect_h);
$query_pat_record = "SELECT * FROM patient";
$pat_record = mysql_query($query_pat_record, $connect_h) or die(mysql_error());
$row_pat_record = mysql_fetch_assoc($pat_record);
$totalRows_pat_record = mysql_num_rows($pat_record);

$queryString_pat_record = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_pat_record") == false &&
stristr($param, "totalRows_pat_record") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_pat_record = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_pat_record = sprintf("&totalRows_pat_record=%d%s", $totalRows_pat_record, $queryString_pat_record);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>saisie patient</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
body {
background-color: #009900;
}
a:link {
color: #FFFFFF;
}
.Style4 {
color: #FFFFFF;
font-weight: bold;
font-size: 16px;
}
.Style6 {color: #0000FF; font-weight: bold; font-family: Verdana, Arial, Helvetica, sans-serif; }
.Style7 {
font-size: 20px;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Style8 {color: #FFFFFF; font-weight: bold; font-size: 20px; }
.Style9 {
color: #FFFFFF;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Style11 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #FFFF00;
}
body,td,th {
color: #000000;
}
.Style12 {color: #CFCFCF}
a {
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Style13 {color: #FFFF00}
.Style15 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; }
-->
</style>
</head>





<tr>
<td bgcolor="#009900">HOPITAL BIAMBA MARIE MUTOMBO


SYSTEME D'INFORMATION INTEGRE




</td>
</tr>
<tr>
<td height="30" bgcolor="#006666">
[file://///server1/easyphp1-8/www/hbmm/welcome.php Menu système] | Connecté : <?php echo $_SESSION['access']; ?> | [file://///server1/easyphp1-8/www/hbmm/index.php Deconnecté ]
</td>
</tr>

</tr>
<tr bgcolor ="#FFFFFF">
<td>
CONSULTATIONS EXTERNES

SAISIE PATIENT
</td>
</tr>
<tr>
<td bgcolor="#009900"><form name="form1" method="POST" action="<?php echo $editFormAction; ?>">
Idpat,
,
Numfiche,
">,

----

Nom,
,
Date naisance ,
,

----

Adresse,
,
Contact 1 ,
,

----

Commune,
<select name="select">
<option value="value">selectionner</option>
<?php
do {
?>
<option value="<?php echo $row_commune_rec['commune']?>"><?php echo $row_commune_rec['commune']?></option>
<?php
} while ($row_commune_rec = mysql_fetch_assoc($commune_rec));
$rows = mysql_num_rows($commune_rec);
if($rows > 0) {
mysql_data_seek($commune_rec, 0);
$row_commune_rec = mysql_fetch_assoc($commune_rec);
}
?>
</select>,
Contact 2 ,
,

----

Sexe,
<select name="select2">
<option value="value">selectionner</option>
<?php
do {
?>
<option value="<?php echo $row_sexe_rec['sexe']?>"><?php echo $row_sexe_rec['sexe']?></option>
<?php
} while ($row_sexe_rec = mysql_fetch_assoc($sexe_rec));
$rows = mysql_num_rows($sexe_rec);
if($rows > 0) {
mysql_data_seek($sexe_rec, 0);
$row_sexe_rec = mysql_fetch_assoc($sexe_rec);
}
?>
</select>,
,

----

Statut,
<select name="select3">
<option value="value">selectionner</option>
<?php
do {
?>
<option value="<?php echo $row_statut_rec['statut']?>"><?php echo $row_statut_rec['statut']?></option>
<?php
} while ($row_statut_rec = mysql_fetch_assoc($statut_rec));
$rows = mysql_num_rows($statut_rec);
if($rows > 0) {
mysql_data_seek($statut_rec, 0);
$row_statut_rec = mysql_fetch_assoc($statut_rec);
}
?>
</select>,
Date saisie
">







</form></td>
</tr>
<tr bgcolor="#009900">
<td>






</html>
<?php
mysql_free_result($commune_rec);

mysql_free_result($sexe_rec);

mysql_free_result($statut_rec);

mysql_free_result($user);

mysql_free_result($pat_record);


Merci pour ton aide,

Blanco76
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
Hello,

Renseigne toi sur le FULL TEXT de MySQL...

C'est optimisé pour faire des moteurs de recherche...
_________________________________
Min iPomme
Messages postés
5
Date d'inscription
jeudi 19 novembre 2009
Statut
Membre
Dernière intervention
20 novembre 2009

a quoi ca sert ?? apprend moi

Blanco76
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
[b]Hello,

Renseigne toi sur le FULL TEXT de MySQL...

C'est optimisé pour faire des moteurs de recherche... /b

Je me permet de répéter le commentaire de Tonio car visiblement il ne s'est pas affiché chez toi.
Maintenant que tu le vois grâce à moi tu vas pouvoir faire cette recherche (recherche FULL TEXT) dans google, cliquer sur le premier résultat et ainsi avoir toutes les explications nécessaires et bien meilleures que celles qui pourraient t'être données ici.

Après avoir fait cet effort de lecture n'hésites pas à poser tes questions.



Kohntark -
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
Et bien, c'est un système d'indexation crée par ta base de donnée. Elle répertorie les mots de plus de X caractères (Généralement 4). Tu peux aussi construire facilement des requêtes SQL de recherche, elle serons aussi plus rapides en temps de réponse.

Tu trouveras la liste des avantages du Full text ici :
http://www.journaldunet.com/developpeur/tutoriel/sql/060824-sql-full-text.shtml

De la doc MySQL ici :
http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html

Un tutoriel "Dreamweaver" ici (très bien fait, il présente ce que tu peux faire et ne pas faire avec full text) :
http://dreamgratuit.canalblog.com/archives/2009/06/11/14034320.html

Après tu as des fonctions php intéressantes :
http://fr.php.net/manual/fr/function.metaphone.php (A vérifier si elle ne fonctionne pas qu'en anglais)
Rechercher un mot de sonorité identique :
http://www.php.net/manual/en/function.similar-text.php
Corriger un mot
http://fr2.php.net/manual/fr/function.pspell-new-personal.php
Il y en a une aussi ou tu donne un mot et ca te sort une liste de mots similaires (Style tu donne un verbe conjugué, il te le donne non conjugué... Seulement je ne retrouve plus le nom de la fonction... Ou du module. Si quelqu'un vois de quoi je parle ??? Mais je crois aussi que cette fonction ne marche qu'en anglais...

Et puis tu as sphinx, un projet Open source de moteur de recherche :
Implémentation avec php ;


Sinon tu peux prendre punbb (fluxbb), et regarder leur fonction de recherche, le code est assez clair, leur moteur de recherche n'est pas trop compliqué...


_________________________________
Min iPomme
Messages postés
5
Date d'inscription
jeudi 19 novembre 2009
Statut
Membre
Dernière intervention
20 novembre 2009

Merci beaucoup Tonio,

je vais voir les articles



Blanco76
Messages postés
5
Date d'inscription
jeudi 19 novembre 2009
Statut
Membre
Dernière intervention
20 novembre 2009

Merci j'ai trouvé ce qu'il fallait.

Maintenat je voudrais savoir comment utiliser le fpdf
Afin d'imprimer les résultats
Blanco76
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
tu veux pas que l'on fasse ton code aussi ?

Relis le règlement et applique le.

Maintenat je voudrais savoir comment utiliser le fpdf

=> tu prends tes 10 petits doigts et tu entres "http://www.fpdf.org/" dans ton navigateur. Il y a tout ce qu'il faut moyennant un minuscule effort de ta part.

Kohntark -