Moteur recherche demande aide

ptiville1 Messages postés 30 Statut Membre -  
ptiville1 Messages postés 30 Statut Membre -
Bonjour, Je debute en php et je cherche a modifier ce code qui al air pa mal.
J ai une table nom , j ai remplacer * FROM tutoriel par * FROM nom
J ai bien creer connect.php pour me conecter a ma base mais ca ne marche pas.
J utilise localhost esque le probleme viendrai de la.
je voudrais qu il y ai q une zonede recherche.
MERCI BEAUCOUP POUR VOTRE AIDE .

<h1>Recherche de personnes inscrites</h1>
<?php
/// paramètres de connection à la base de données
require("connect.php");
$tous = mysql_query("SELECT * FROM tutoriel");
$nb_tous = mysql_num_rows($tous);
?>

Ce moteur vous permet de rechercher parmi les <? echo "<font color='#008080'><b>$nb_tous</b></font>"?> entrées de la table tutoriel.<br><br>

<form method="post" action="<?echo $PHP_SELF?>">
<input type="text" name="f_nom" size="20"> Saisissez un ou plusieurs noms séparés par un espace.<br>
<input type="text" name="f_prenom" size="20"> Saisissez un ou plusieurs prénoms séparés par un espace.<br><br>
<input type=radio name=f_etou value="AND" checked>voir les fiches répondant à tous les critères demandés<br>
<input type=radio name=f_etou value="OR">voir les fiches comportant au moins un de ces éléments<br><br>

<input type="submit" value="Rechercher">
</form><br><br>
<?
$etou=$f_etou;
//s'il y a eu saisie :
if($f_nom!="" OR $f_prenom!=""){
//traitement des données du formulaire
//construction du critère de sélection suivant les entrées fournies
if ($f_nom!="" ){ //!= signifie "différent de"
$noms = split(" ",$f_nom);// on transforme la variable en tableau (array)
$nb_noms = count($noms);// nb d'éléments dans le tableau
$critere=" nom like '%$noms[0]%'";// $noms[0]= premier élément du tableau
$z=1;
while($z<$nb_noms){// on boucle pour fabriquer le critère avec tous les elts du tableau
$critere.=" $etou nom like '%$noms[$z]%'";
$z++;}

if ($f_prenom!=""){
$prenoms = split(" ",$f_prenom);
$nb_prenoms = count($prenoms);
$z=0;
while($z<$nb_prenoms){
$critere.=" $etou prenom like '%$prenoms[$z]%'";
$z++;}
}//fin du if prénom pas vide
}//fin du if nom pas vide

else { $prenoms = split(" ",$f_prenom);
$nb_prenoms = count($prenoms);
$critere=" prenom like '%$prenoms[0]%'";
$z=1;
while($z<$nb_prenoms){
$critere.=" $etou prenom like '%$prenoms[$z]%'";
$z++;}
}// fin du else = si nom est vide

// NOMBRE D'ENREGISTREMENTS REPONDANT A LA REQUETE sur tutoriel
$requete = mysql_query("select * from tutoriel where $critere");
$nbT=mysql_num_rows($requete);

// DEFINITION DU MESSAGE A AFFICHER S'IL NY A PAS DE RESULTATS
if ($nbT==0) {echo "<div align='center'><font color='#993366'> Désolé, aucune fiche ne
correspond à tous les critères indiqués. Vérifiez l'orthographe, diminuez le nombre de critères et relancez la recherche.</font></div>";}

else {// AFFICHAGE DES RESULTATS PAGE PAR PAGE
if ($nbT>1) {$s= "s";} // utilisé pour éviter une faute d'orthographe dans la ligne en dessous...
echo "<Il y a <b>$nbT</b> réponse$s<br><br> ";

// on refait la requete mais en précisant les fiches à renvoyer
$limit=3; // vous pouvez faire varier ce nombre, voire même l'intégrer dans votre formulaire pour que ce soient vos visiteurs qui choisissent
$debut=$pge*$limit;
$requete2 = mysql_query("select * from tutoriel where $critere limit $debut, $limit");
while($row = mysql_fetch_array($requete2)){
$nom=stripslashes($row[nom]);
$prenom=$row[prenom];
$mail=$row[mail];
echo " $prenom $nom : $mail<br>";
}// fin du while (tant qu'il y a une ligne dans le tableau de résultats renvoyé par $requete2)

$nbpages=ceil($nbT/$limit); // ceil = plafond : pour arrondir à la valeur supérieure
// affichage de la première page si nécessaire (si nb total de pages supérieur à 5)
if($nbpages>3 and $pge>2){
echo "<a href=\"?pge=0&f_nom=$f_nom&f_prenom=$f_prenom&f_etou=$f_etou\"><b>Début</b></a> ";
}
// AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST (LA PREMIERE PAGES EST 0)
if ($pge>0){
$precedent=$pge-1;
echo "<a href=\"?pge=$precedent&f_nom=$f_nom&f_prenom=$f_prenom&f_etou=$f_etou\">
<b><fontcolor='#993366'><</font></b></a> ";
}
// AFFICHAGE DES NUMEROS DE PAGE
$i=0;$j=1;
if($nbT>$limit){
while($i<($nbpages)){ // pour limiter l'affichage du nombre de pages restantes
if ($i>$pge-3 and $i<$pge+3){
if($i!=$pge)
{echo "<a href=\"?pge=$i&f_nom=$f_nom&f_prenom=$f_prenom&f_etou=$f_etou\">$j</a> ";}
else {echo "<b>$j</b> ";}//met en gras le N° de la page en cours
}//fin du if i>pge....
$i++;$j++;}//fin du while i<nbpages
} //fin du if nbT>limit
// AFFICHAGE DU LIEN SUIVANT SI BESOIN EST
if($pge<$nbpages-1){
$suivant=$pge+1;
echo "<a href=\"?pge=$suivant&f_nom=$f_nom&f_prenom=$f_prenom&f_etou=$f_etou\"><b>></b></a> ";
}
// affichage de la dernière page si nécessaire
if($nbpages>3 and $pge<$nbpages-3){
$fin=$nbpages-1;
echo "<a href=\"?pge=$fin&f_nom=$f_nom&f_prenom=$f_prenom&f_etou=$f_etou\"><b>fin</b> ($nbpages)</a>";
}

}// fin du else affichage des résultats.
}// fin du si il y a eu saisie
else { // s'il n'y a pas eu saisie
echo "indiquez vos critères de choix";}
?>
</body>
</html>

17 réponses

bissdebrazza Messages postés 2886 Statut Contributeur 712
 
salut!
fais nous voir le code de connect.php et dis nous quelle erreur il t'affiche?
Cordialement!
0
ptiville1 Messages postés 30 Statut Membre
 
merci bissdebrazza pour ton aide.
voici mon code connect.php
le proboleme c' est que la page refuse de s ouvrir quand je lance une recherche

<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'mabase';// nom de votre base de donnée
//------- on affiche la date et l'heure -------------

$now_Y = date("Y");
$now_m = date("m");
$now_d = date("d");
$now_H = date("H");
$now_i = date("i");
$now_s = date("s");

$date = "$now_d-$now_m-$now_Y à $now_H:$now_i:$now_s";

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

?>
0
ptiville1 Messages postés 30 Statut Membre
 
ca m affiche HTTP 403 Le site Web a refusé d’afficher cette page Web
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
montre moi le contenu de "connect.php"
0

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

Posez votre question
ptiville1 Messages postés 30 Statut Membre
 
voici le conteu connect.php

<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'mabase';// nom de votre base de donnée
//------- on affiche la date et l'heure -------------

$now_Y = date("Y");
$now_m = date("m");
$now_d = date("d");
$now_H = date("H");
$now_i = date("i");
$now_s = date("s");

$date = "$now_d-$now_m-$now_Y à $now_H:$now_i:$now_s";

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

?>
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
voila!
je vois que tu n'as pas donné le nom de ta base de donné (à moins que ta base porte le nom de "mabase")

met ici le nom que tu utilise pour ta base de données :$db = 'mabase';// nom de votre base de donnée
0
ptiville1 Messages postés 30 Statut Membre
 
oui ma base s apelle "mabase"
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
salut!

essai ca:

<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'mabase';// nom de votre base de donnée
//------- on affiche la date et l'heure -------------

$now_Y = date("Y");
$now_m = date("m");
$now_d = date("d");
$now_H = date("H");
$now_i = date("i");
$now_s = date("s");

$date = "$now_d-$now_m-$now_Y à $now_H:$now_i:$now_s";

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db,$link) or die ('Erreur :'.mysql_error());

?>
cordialement!!
0
ptiville1 Messages postés 30 Statut Membre
 
Je vien d essayer et ca marche pas
Merçi quand meme
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
l'erreur 403 veut dire que tu n'a pas le droit d'acceder à une page.donc essai de voir si tes identifiants sont corrects (host pass et autres).
il affiche toujours la même erreur??
0
Utilisateur anonyme
 
résolu ?
0
ptiville1 Messages postés 30 Statut Membre
 
mes identifiants sont bon
et sa me dit toujours erreur 403
0
ptiville1 Messages postés 30 Statut Membre
 
Esque ça peut etre un probleme de config de wamp?
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
tu travaille sur ta machine locale??
essai d'enlever l'affichage de la date dans le fichier de connexion
0
ptiville1 Messages postés 30 Statut Membre
 
oui je travaille locale
j ai enlever l'affichage de la date et toujours pareil.
j utilise le fichier connexion pour d autre formulaire et il me pose pa de probleme.
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
alors la le problème viens de ton formulaire puisque tu me dis que ca passe sur les autres formes.
essai de refaire le formulaire dès le début et avant de lancer supprime tous les fichiers temporaires (internet explorer et firefox) et tu relances.si cela persiste,je te conseille de te mettre à genoux devant ton pc et de prier.
On sait jamais!!!
En tout cas je ne vois pas d'erreur!!!
0
ptiville1 Messages postés 30 Statut Membre
 
Merçi encore pour ton aide
Je vais essayer de revoir le formulaire
mais je croi q une priere s impose.
On sait jamais? peut etre que dieu va m envoyer un webmasterange
0