IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

fonction autre que trim()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut fonction autre que trim()
    Bonjour,
    je fais une petit moteur de recherche, je récupère $motcle ensuite j'applique trim() suppression des caractères non significatifs à la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $motcle=trim($motcle);
    $motcle=strtolower($motcle); // mise en minuscules
    mais dans la base de donnée j'ai des données contenant un tiret ou un point.
    exemple
    et dans un champs chez P.C.P
    avec trim() je supprime les caractères invisibles en début et fin de chaîne. mais pas les points et tirets.

    j'ai essayé de faire comme ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function remplace($mot){
     
    		$mot = stripslashes($mot);
    		$mot = str_replace(' ','-',$mot);
    		$mot = str_replace('\'','-',$mot);
    		$mot = str_replace('.','',$mot);
    		$mot = str_replace('-','',$mot);
     
    		return $mot;
     
    }
    mais il ne trouve pas p.c.p avec

  2. #2
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 36
    Par défaut
    Ta fonction retourne le $mot qu'elle reçoit en paramètre, en supprimant les caractères espace, point, apostrophe et tiret.

    Si c'est bien ce que tu souhaites faire, c'est que le problème vient de la façon dont tu utilises cette fonction. Peux-tu nous montrer comment tu utilises cette fonction ?

  3. #3
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut
    Voici le code :
    je récupère $motcle ensuite j'applique les fonctions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    if(isset($_POST['motcle']) && $_POST['motcle'] <> 'Mot-clé' && $_POST['motcle'] <> "" ){ 
     
    $motcle=$_POST['motcle']; // récupération du mot-clé
    $motcle=trim($motcle); // suppression des caractères non significatifs
    $motcle=strtolower($motcle); // mise en minuscules
     
    $motcle=stripslashes($motcle);
    $motcle=remplace($motcle);
     
    $sql="SELECT * FROM membre WHERE nomG LIKE '%$motcle%' OR nomS LIKE '%$motcle%' ORDER BY nomS ASC";
     
    	echo "\n<br><h2>Résultat de votre recherche :</h2>";
    	$result=mysql_query($sql); 
    	$nb=mysql_num_rows($result); // comptage du nombre de résultats
    	echo "\n<p>Il y a $nb résultat(s) répondant à votre recherche.</p>";
     
    	// traitement des résultats
    						while($membre=mysql_fetch_assoc($result)){
    	$id=$membre['numM'];
    	// pour une recherche par mot clé, renforcement de celui-ci
    	if(isset($motcle)){
    	$membre_nom=renforce_motcle($membre['nomG'],$motcle);
    	$membre_cp=renforce_motcle($membre['nomS'],$motcle);
    	}
     
    // affichage des données 
    echo "\n\t<br /><p><a href=\"fiche_membre.php?id=$id\">$nom_s</a> - Gérant : $nom_m</p>";
    	echo "<p>&nbsp;</p>";
    	}

  4. #4
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 36
    Par défaut
    Citation Envoyé par akara Voir le message
    Voici le code :
    je récupère $motcle ensuite j'applique les fonctions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    if(isset($_POST['motcle']) && $_POST['motcle'] <> 'Mot-clé' && $_POST['motcle'] <> "" ){ 
     
    $motcle=$_POST['motcle']; // récupération du mot-clé
    $motcle=trim($motcle); // suppression des caractères non significatifs
    $motcle=strtolower($motcle); // mise en minuscules
     
    $motcle=stripslashes($motcle);
    $motcle=remplace($motcle);
     
    $sql="SELECT * FROM membre WHERE nomG LIKE '%$motcle%' OR nomS LIKE '%$motcle%' ORDER BY nomS ASC";
     
    	echo "\n<br><h2>Résultat de votre recherche :</h2>";
    	$result=mysql_query($sql); 
    	$nb=mysql_num_rows($result); // comptage du nombre de résultats
    	echo "\n<p>Il y a $nb résultat(s) répondant à votre recherche.</p>";
     
    	// traitement des résultats
    						while($membre=mysql_fetch_assoc($result)){
    	$id=$membre['numM'];
    	// pour une recherche par mot clé, renforcement de celui-ci
    	if(isset($motcle)){
    	$membre_nom=renforce_motcle($membre['nomG'],$motcle);
    	$membre_cp=renforce_motcle($membre['nomS'],$motcle);
    	}
     
    // affichage des données 
    echo "\n\t<br /><p><a href=\"fiche_membre.php?id=$id\">$nom_s</a> - Gérant : $nom_m</p>";
    	echo "<p>&nbsp;</p>";
    	}
    Une remarque : Tu peux simplifier le test isset($_POST['motcle']) && $_POST['motcle'] <> "" en faisant !empty($_POST['motcle']).
    La première ligne devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!empty($_POST['motcle']) && $_POST['motcle'] <> 'Mot-clé' ){
    Pour analyser ton problème, ajoute des "traces de débugage" dans ta page :
    echo "motcle=$motcle <br />"; // avant la requete
    echo "sql=$sql" <br />"; // pour afficher la requete qui va etre executee.

    Ainsi tu peux vérifier si ton motcle est bien celui auquel tu t'attends.
    Puis prends la requete, exécute la dans phpMyAdmin pour vérifier qu'elle ramène des données...

    Bref, tu dois déboguer

  5. #5
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut
    merciii mais je tape p.c.p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    p.c.p // avant le traitement
     
    pcp  // après traitement
     
    SELECT * FROM membre WHERE nomG LIKE '%pcp%' OR nomS LIKE '%pcp%' ORDER BY nomS ASC
    donc ça à l'air juste, mais je vois pas pourquoi il ne trouve pas.
    si dans la bdd il est en majuscule ( P.C.P ) ça joue ?

  6. #6
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut
    nan en fait excuse moi c'est en fait si je tape pcp je dois obtenir de la base P.C.P

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/06/2011, 15h38
  2. Réponses: 2
    Dernier message: 11/04/2011, 17h12
  3. Réponses: 22
    Dernier message: 19/01/2011, 11h00
  4. rotation image/volume autre que la fonction de base
    Par S4sha dans le forum Général Python
    Réponses: 0
    Dernier message: 18/02/2010, 13h56
  5. fonction autre que strncat
    Par youp_db dans le forum Windows
    Réponses: 7
    Dernier message: 07/04/2008, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo