Recherche

blanco76 Messages postés 5 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 20 novembre 2009 - 20 nov. 2009 à 08:00
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 20 nov. 2009 à 12:44
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

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
20 nov. 2009 à 08:39
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.
0
blanco76 Messages postés 5 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 20 novembre 2009
20 nov. 2009 à 08:54
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
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
20 nov. 2009 à 09:33
Hello,

Renseigne toi sur le FULL TEXT de MySQL...

C'est optimisé pour faire des moteurs de recherche...
_________________________________
Min iPomme
0
blanco76 Messages postés 5 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 20 novembre 2009
20 nov. 2009 à 09:41
a quoi ca sert ?? apprend moi

Blanco76
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
20 nov. 2009 à 10:21
[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 -
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
20 nov. 2009 à 10:23
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
0
blanco76 Messages postés 5 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 20 novembre 2009
20 nov. 2009 à 11:38
Merci beaucoup Tonio,

je vais voir les articles



Blanco76
0
blanco76 Messages postés 5 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 20 novembre 2009
20 nov. 2009 à 12:25
Merci j'ai trouvé ce qu'il fallait.

Maintenat je voudrais savoir comment utiliser le fpdf
Afin d'imprimer les résultats
Blanco76
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
20 nov. 2009 à 12:44
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 -
0
Rejoignez-nous