begin process at 2012 05 28 12:54:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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)


1 2

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 &nbsp 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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,839 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales