Accueil > Forum > > > > Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle
Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle
mardi 9 août 2005 à 16:57:52 |
Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle

chocholman
|
Bonjour je suis un stagiaire dans une entreprise qui utilise une base
de données oracle et je debute en php. Il faut que je fasse un moteur
de recherche en php d'une base oracle.En quelques sortes, on devrait
avoir une barre de saisie de texte du style Google et faire la
recherche des mots cles dans des champs (j'ai déjà défini les champs
pour la recherche) dans des table de la base de données. J'arrive à me
connecter sur la base grace aux fonctions "oci" de php mais pour faire
un code pour une recherche, c'est un autre niveau pour moi...
Vous me sauverez la vie si vous pouvez me filer un coup de main. 
PS : il y a dans certaines tables 54000 enregistrements. on m'a dit
qu'Oracle est une base de données avec un temps de réponse tres rapide.
En sera-t-il toujours le cas pour le moteur de recherche ?
Chocholman
|
|
mardi 9 août 2005 à 17:13:37 |
Re : Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle

arnal69130
|
Tout sera dans tes requètes SQL... Si tu cherches un enregistrement dont le nom est TINTIN, alors la requète sera SELECT nom FROM table WHERE nom='TINTIN'; Ensuite, tu peux aussi utiliser des caractères joker par exemple %TIN
Arn;o)
|
|
mardi 9 août 2005 à 17:22:28 |
Re : Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle

GRenard
|
Tu dois utiliser les extensions oracles
http://ca3.php.net/oracle
Tu te bases de la même manière pour faire un moteur de recherche pour n'importe quelle base de données...
Si tu veux une recherche plus rapide, tu dois indexer les valeurs. Comme dans toutes bases de données. Cherchez, Essayez et Testez avant de Poser une question ! [ Lien ]
|
|
mardi 9 août 2005 à 17:46:10 |
Re : Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle

chocholman
|
GRenard: j'ai dejà regardé ces fonctions mais on m'a conseillé d'utiliser a la place de "ORA_" les fonctions "oci"
Arno: je sais déjà qu'il faut utilise des requetes comme celle là: pas
de pb jusque là mais je parlais sur le code PHP proprement dit. Le
probleme c qu'il faut faire une saisie à la google et donc à la place
de TINTIN il faudrait une variable $tintin (selon les mots cles que
l'on aura ecrit dans interface web genere en php) . et pour moi faire
une code PHP avec des GET ou des POST comme ca c'est du chinois :
je ne suis pas informaticien et je dois juste realiser moteur de
recherche.
C'est pour ca que je vous demande votre aide pour savoir si il y
a du code tout pret que je pourrais "copier coller" ( nota: j'ai deja
deux fichier pour se connecter a la base oracle nommé connexion.php et
deconnexion.php qui marchent).
Je prie pour que vous ayez quelque chose. en tout merci déjà pour tout
Arno et merci d'avance pour ceux qui peuvent encore m'aider  Chocholman
|
|
mardi 9 août 2005 à 18:05:36 |
Re : Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle

arnal69130
|
En fait, ce qu'il te manque c'est le plus simple  Tu dois probablement pouvoir trouver qqch de tout fait, mais sinon essaie comme ça : <form method="post"> <input type="text" name="champ" /> <input type="submit" value="rechercher" /> </form> <?php if (!empty($POST['champ'])) { //si une valeur a été postée -> requète $conn = oci_connect("scott", "tiger"); $req="SELECT ... FROM ... WHERE ...='".$POST['champ']."'"; $stmt = oci_parse($conn, $req); oci_execute($stmt); $nrows = oci_fetch_all($stmt, $results); if ($nrows > 0) { echo "<table border=\"1\">\n"; echo "<tr>\n"; foreach ($results as $key => $val) { echo "<th>$key</th>\n"; } echo "</tr>\n"; for ($i = 0; $i < $nrows; $i++) { echo "<tr>\n"; foreach ($results as $data) { echo "<td>$data[$i]</td>\n"; } echo "</tr>\n"; } echo "</table>\n"; } else { echo "Pas de ligne<br />\n"; } echo "$nrows Lignes lues<br />\n"; oci_free_statement($stmt); oci_close($conn);
} ?> [ Lien ]A toi de jouer... Arn;o)
|
|
mardi 9 août 2005 à 19:07:23 |
Re : Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle

chocholman
|
ok
j'ai essaye mais j'ai dû procédé a des rectification: les commandes que
tu as mis ont dû être adaptées et voila ce que ça donne :
<form method="post">
<input type="text" name="champ" />
<input type="submit" value="rechercher" />
</form>
<?php
if (!empty($POST['champ'])) { //si une valeur a été postée -> requète
$conn = ocilogon("log","pass","base");
$req="SELECT action.description, doc_commentaire.commentaire,
doc_distribution.remarques, document.titre FROM
action,doc_commentaire,doc_distribution,document WHERE
action.description OR doc_commentaire.commentaire OR
doc_distribution.remarques OR document.titre='".$POST['champ']."'"; //peux-tu me dire si ma requete est ok (voir *)?
$stmt = ociparse($conn, $req);
ociexecute($stmt);
$nrows = ociRowCount($stmt, $results);
if ($nrows > 0) {
echo "<table border=\"1\">\n";
echo "<tr>\n";
foreach ($results as $key => $val) {
echo "<th>$key</th>\n";
}
echo "</tr>\n";
for ($i = 0; $i < $nrows; $i++) {
echo "<tr>\n";
foreach ($results as $data) {
echo "<td>$data[$i]</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
} else {
echo "Pas de ligne<br />\n";
}
echo "$nrows Lignes lues<br />\n";
ociFreeStatement($stmt);
ociLogOff($conn);
}
?>
* : la recherche du mot cle se fait les champs "description" de la
table "action", "commentaire" de la table "doc_commentaire",
"remarques" de la table "doc_distribution" et "titre" de la table
"document". Les champs sont tous des alphanumériques
Le résultat : ça m'affiche la barre de saisie avec le bouton de
"rechercher" et lorsque je met un mot cle... rien. ca rame même pas un
peu et ca m'affiche toujours la barre de saisie avec le bouton
recherche.
Sais-tu ce qu'il se passe ?
Chocholman
|
|
mercredi 10 août 2005 à 09:31:18 |
Re : Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle

arnal69130
|
Pour la requête : il faut mettre des conditions complètes entre chaque "OR", tu ne peux pas "factoriser" le "=post[champ]" -> $req="SELECT action.description, doc_commentaire.commentaire, doc_distribution.remarques, document.titre FROM action,doc_commentaire,doc_distribution,document WHERE action.description='".$POST['champ']."' OR doc_commentaire.commentaire='".$POST['champ']."' OR doc_distribution.remarques='".$POST['champ']."' OR document.titre='".$POST['champ']."'";
Sinon, c'est bizarre qu'il n'y ait pas d'erreur à l'ecran, essaie peut-être de changer error_reporting à E_ALL : [ Lien ]
Pour débugger, tu peux aussi utiliser les valeurs renvoyées par les fonctions oci :
(n'oublies pas les entêtes html) <form method="post"> <input type="text" name="champ" /> <input type="submit" value="rechercher" /> </form>
<?php
if (!empty($POST['champ'])) { //si une valeur a été postée -> requète
$conn = ocilogon("log","pass","base") or die (ocierror());
$req="SELECT action.description, doc_commentaire.commentaire, doc_distribution.remarques, document.titre FROM action,doc_commentaire,doc_distribution,document WHERE action.description OR doc_commentaire.commentaire OR doc_distribution.remarques OR document.titre='".$POST['champ']."'"; //peux-tu me dire si ma requete est ok (voir *)?
$stmt = ociparse($conn, $req) or die (ocierror());
ociexecute($stmt) or die (ocierror());
$nrows = ociRowCount($stmt, $results);
if ($nrows > 0) {
echo "<table border=\"1\">\n";
echo "<tr>\n";
foreach ($results as $key => $val) {
echo "<th>$key</th>\n";
}
echo "</tr>\n";
for ($i = 0; $i < $nrows; $i++) {
echo "<tr>\n";
foreach ($results as $data) {
echo "<td>$data[$i]</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
} else {
echo "Pas de ligne<br />\n";
}
echo "$nrows Lignes lues<br />\n";
ociFreeStatement($stmt);
ociLogOff($conn);
}
?>
Arn;o)
|
|
mercredi 10 août 2005 à 10:54:03 |
Re : Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle

chocholman
|
Toujours rien... J'ai mis les entête html (je n'ai pas ajoute de corps pour l'instant car je veux voir si ca marche d'abord) et les reporting d'erreur ne m'indique rien.
Voici ce que j'ai écrit:
<html>//entête html
<form method="post">
<input type="text" name="champ" />
<input type="submit" value="rechercher" />
</form>
<?php
error_reporting(E_ALL);//j'ai rajouté ceci mais rien...
if (!empty($POST['champ'])) { //si une valeur a été postée -> requète
$conn = ocilogon("tginfocentre","tango","QAP.world");
$req="SELECT action.description, doc_commentaire.commentaire,
doc_distribution.remarques, document.titre FROM
action,doc_commentaire,doc_distribution,document WHERE
action.description='".$POST['champ']."' OR
doc_commentaire.commentaire='".$POST['champ']."' OR
doc_distribution.remarques='".$POST['champ']."' OR
document.titre='".$POST['champ']."'";//peux-tu me dire si ma requete est ok
ociexecute($stmt);
$nrows = ociRowCount($stmt, $results);
if ($nrows > 0) {
echo "<table border=\"1\">\n";
echo "<tr>\n";
foreach ($results as $key => $val) {
echo "<th>$key</th>\n";
}
echo "</tr>\n";
for ($i = 0; $i < $nrows; $i++) {
echo "<tr>\n";
foreach ($results as $data) {
echo "<td>$data[$i]</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
} else {
echo "Pas de ligne<br />\n";
}
echo "$nrows Lignes lues<br />\n";
ociFreeStatement($stmt);
ociLogOff($conn);
}
?>
</html>
AIDEZ MOI !!
Chocholman
|
|
mercredi 10 août 2005 à 11:03:13 |
Re : Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle

chocholman
|
Rectification j'ai mis ça en fait et c'est pareil qu'avant: rien aucune
recherche. (etla base existe je l'ai consulté par SQL Plus)
<html> //entête html
<form method="post">
<input type="text" name="champ" />
<input type="submit" value="rechercher" />
</form>
<?php
error_reporting(E_ALL); //j'ai rajouté ceci mais rien...
if (!empty($POST['champ'])) { //si une valeur a été postée -> requète
$conn = ocilogon(log,pass,base)or die (ocierror());
$req="SELECT action.description, doc_commentaire.commentaire,
doc_distribution.remarques, document.titre FROM
action,doc_commentaire,doc_distribution,document WHERE
action.description='".$POST['champ']."' OR
doc_commentaire.commentaire='".$POST['champ']."' OR
doc_distribution.remarques='".$POST['champ']."' OR
document.titre='".$POST['champ']."'"; //peux-tu me dire si ma requete est ok
$stmt = ociparse($conn, $req) or die (ocierror());
ociexecute($stmt)or die (ocierror());
$nrows = ociRowCount($stmt, $results);
if ($nrows > 0) {
echo "<table border=\"1\">\n";
echo "<tr>\n";
foreach ($results as $key => $val) {
echo "<th>$key</th>\n";
}
echo "</tr>\n";
for ($i = 0; $i < $nrows; $i++) {
echo "<tr>\n";
foreach ($results as $data) {
echo "<td>$data[$i]</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
} else {
echo "Pas de ligne<br />\n";
}
echo "$nrows Lignes lues<br />\n";
ociFreeStatement($stmt);
ociLogOff($conn);
}
?>
</html>
Merci tjs pour ton aide Arno
Chocholman
|
|
mercredi 10 août 2005 à 11:18:04 |
Re : Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle

arnal69130
|
Désolé, je m'étais trompé, c'est $_POST et non pas $POST...
ça donne ça :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//FR" " [ Lien ]"> <html xmlns=" [ Lien ]"> <head> <title>RECHERCHE</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <?php $value=''; if (!empty($_POST['champ'])) $value=' value="'.$_POST['champ'].'"'; echo '<form method="post" action="index.php"> <input type="text" name="champ"'.$value.' /> <input type="submit" value="rechercher" /> </form>'; error_reporting(E_ALL); //j'ai rajouté ceci mais rien...
if (!empty($_POST['champ'])) { //si une valeur a été postée -> requète $conn = ocilogon(log,pass,base) or die ('erreur'.ocierror()); $req="SELECT action.description, doc_commentaire.commentaire, doc_distribution.remarques, document.titre FROM action,doc_commentaire,doc_distribution,document WHERE action.description='".$POST['champ']."' OR doc_commentaire.commentaire='".$POST['champ']."' OR doc_distribution.remarques='".$POST['champ']."' OR document.titre='".$POST['champ']."'"; //peux-tu me dire si ma requete est ok $stmt = ociparse($conn, $req) or die (ocierror()); ociexecute($stmt)or die (ocierror()); $nrows = ociRowCount($stmt, $results); if ($nrows > 0) { echo "<table border=\"1\">\n"; echo "<tr>\n"; foreach ($results as $key => $val) { echo "<th>$key</th>\n"; } echo "</tr>\n"; for ($i = 0; $i < $nrows; $i++) { echo "<tr>\n"; foreach ($results as $data) { echo "<td>$data[$i]</td>\n"; } echo "</tr>\n"; } echo "</table>\n"; } else { echo "Pas de ligne<br />\n"; } echo "$nrows Lignes lues<br />\n"; ociFreeStatement($stmt); ociLogOff($conn); } ?> </body></html>
Arn;o)
|
|
Cette discussion est classée dans : base, php, données, recherche, oracle
Répondre à ce message
Sujets en rapport avec ce message
Php + Base de données [ par slipknot240504 ]
Bonjour à tous,Avant de vous poser ces questions j'ai bien chercher sur Internet et je n'ai pas trouvé de questions qui y répondent donc je vous les p
Formulaire de recherche [ par fabrice88 ]
Bonjour,j'ai une base de données que j'ai appelé manifsje souhaiterai faire un formulaire qui me permet d'aller affiché les données de ma base en fonc
Transfert de bases de données Mysql en PHP [ par cz1702 ]
Bonjour à tous,Je cherche à transférer une base de données Mysql_A (se trouvant sur le serveur A) vers une autre base de données Mysql_B (sur le serve
Requêtes entre un formulaire et une base de données...? [ par simsgodzilla ]
J'ai crée un formulaire de recherche bibliographique sous dreamweaver et je possède une base de données sous mysql(easyphp).Mais je ne m'en sort pas d
Base de données, php et flux [ par benjimanweb ]
J'aimerai savoir s'il est possible de créer un script permettant de voir ce que l'ordinateur verifie sur la base de données lorsque l'on clique sur le
php et base des données [ par bikilde ]
bonjour,j'ai des difficultés pour afficher les donnees qui sont dans la base des donnees, exemplePere EnfantAlex  
Site avec 10 utilisateurs [ par jaco13 ]
Bonjour tout le monde En ce moment, j'ai besoin d'aide et j'écris donc pas mal de messages sur ce forum. J'ai fait un site http://www.meuble-ancien.co
Récupération de données dans la base mysql [ par krazylo ]
Bonjour,Je suis débutant en php , mysql et je voulais savoir comment est-il possible de récuperer des données dans une base mysql pour les afficher su
problème de recherche sur base de données mysql [ par Xini28 ]
Lorsque je fais une recherche dans une base de données mysql, il s'affiche "Resource id #3" au lieu de ce que je recherche. Quelqu'un sait de quoi ça
Aide de programmation sous PHP [ par Guy_roland ]
Bonjour, j'ai crée un code en PHP me permettant de lister le contenu d'une base de données MYSQL.Mais il ya un problème au niveau de l'arrêt de la sel
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo GOOGLE MAPGOOGLE MAP par fatmanajjar
Cliquez pour lire la suite par fatmanajjar
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|