Moteur recherche demande aide

Fermé
ptiville1 Messages postés 30 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009 - 17 déc. 2008 à 19:07
ptiville1 Messages postés 30 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009 - 17 déc. 2008 à 21:41
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>
A voir également:

17 réponses

bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
17 déc. 2008 à 19:09
salut!
fais nous voir le code de connect.php et dis nous quelle erreur il t'affiche?
Cordialement!
0
ptiville1 Messages postés 30 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009
17 déc. 2008 à 19:29
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 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009
17 déc. 2008 à 19:33
ca m affiche HTTP 403 Le site Web a refusé d’afficher cette page Web
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
17 déc. 2008 à 20:01
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 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009
17 déc. 2008 à 20:35
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 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
17 déc. 2008 à 20:39
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 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009
17 déc. 2008 à 20:51
oui ma base s apelle "mabase"
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
17 déc. 2008 à 20:59
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 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009
17 déc. 2008 à 21:07
Je vien d essayer et ca marche pas
Merçi quand meme
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
17 déc. 2008 à 21:08
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
17 déc. 2008 à 21:09
résolu ?
0
ptiville1 Messages postés 30 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009
17 déc. 2008 à 21:12
mes identifiants sont bon
et sa me dit toujours erreur 403
0
ptiville1 Messages postés 30 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009
17 déc. 2008 à 21:16
Esque ça peut etre un probleme de config de wamp?
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
17 déc. 2008 à 21:20
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 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009
17 déc. 2008 à 21:28
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 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
17 déc. 2008 à 21:32
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 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 2 mars 2009
17 déc. 2008 à 21:41
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