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

PHP & Base de données Discussion :

problème conception barre de recherche [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Points : 38
    Points
    38
    Par défaut problème conception barre de recherche
    bonjour à vous,
    j essai de mettre en place une barre de recherche mais j ai quelque difficulté pour la conception

    j ai reussi a la faire fonctionné mais seulement si y a un seul mot en faisant ceci
    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
     
    if (isset($_POST['action'])) 
           $_SESSION['critere'] = $_POST;
    if(isset($_SESSION['critere'])) 
            extract($_SESSION['critere']);// extraction des critères de recherche
    $choix = array();          
            if(isset($Keyword) && !empty($Keyword))
     
     {$choix[] = "Marque LIKE '%$Keyword%'";}                   
     {$choix[] = "Modele LIKE '%$Keyword%'";}
     {$choix[] = "Gamme LIKE '%$Keyword%'";}
     
    $critere = implode(' OR ', $choix);
     
    $requete = "select * ,(Marque) AS Marque from batterie WHERE $critere ORDER BY Marque ASC";
    $reponse = mysql_query( $requete ) ;
    ensuite en parcourant le net j ai trouvé une chose qui marche sur plusieur mots mais je n arrive pas a mettre en place car la ca fonctionne que sur un seul champ de ma table (exemple seulement la Marque) en faisant ceci

    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
     
    if (isset($_POST['action'])) 
           $_SESSION['critere'] = $_POST;
    if(isset($_SESSION['critere'])) 
            extract($_SESSION['critere']);// extraction des critères de recherche
    $choix = array();          
            if(isset($Keyword) && !empty($Keyword))
    {$choix[] = "Marque";} // j ai supprimé les autres champs car sinon ma requete donne une erreur sql
    $critere = implode(' ', $choix);
    $mots = explode( " ", $Keyword );
    if( count( $mots ) > 0 )
     
    $requete = "select * ,('Marque') AS Marque from batterie WHERE";
       for( $i = 0; $i < count( $mots ); $i++ ) {
          //$requete .= "$critere   ";
          $requete .= "  $critere LIKE '%". $mots[$i] ."%' ";
          if( $i < count( $mots ) - 1 )
             $requete .= " OR ";}
     
       $requete .= " ORDER BY Marque"; 
     
     
       $reponse = mysql_query( $requete ) ;
    je ne sais pas comment combiner les 2 vu que je souhaite une recherche sur la table qui se presente sous cette forme
    ID
    Marque
    Modele
    Gamme
    etc.. j ai 35 colonnes dont je souhaite rechercher

    j ai essayé avec un fulltext
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select * from batterie WHERE MATCH(Marque,Modele,Gamme) AGAINST('exide') ORDER BY Marque
    mais j ai eu cette erreur #1191 - Can't find FULLTEXT index matching the column list
    cela a fonctionné a moitié quand j ai reussi a mettre mes champs Marque,Modele,Gamme en fulltext direct dans ma table car ensuite j ai fais cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $requete = "select * ,('Marque') AS Marque from batterie WHERE ";
       for( $i = 0; $i < count( $mots ); $i++ ) {
          //$requete .= "$critere   ";
          $requete .= "  MATCH($critere) AGAINST('$mots[$i]') ";
          if( $i < count( $mots ) - 1 )
             $requete .= " OR ";}
     
       $requete .= " ORDER BY Marque";
    du coup il recherche pas non plus le 2 eme mots

    j ai essayé une chose aussi comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $requete = "select * ,('Marque') AS Marque from batterie WHERE ID IN($critere)";
     
              for( $i = 0; $i < count( $mots ); $i++ ) {
                  //$requete .= "$critere";
                  $requete .= " LIKE '%". $mots[$i] ."%' ";
               if( $i < count( $mots ) - 1 )
                $requete .= " OR ";
                }
     
              $requete .= " ORDER BY Marque";
    mais erreur sql et en parcourant le net j ai cru comprendre que l on peut pas mettre un IN avec un LIKE

    voila , je ne sais pas comment procéder et pardonnez moi pour mes lacunes .
    je vous remercie d avance pour l aide apporté

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Points : 336
    Points
    336
    Par défaut
    Bonjour,

    Une piste

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT col1, col2
    FROM Marque
    WHERE col1 + col2 + col3 LIKE '%mot1%'
    OR col1 + col2 + col3 LIKE '%mot1%'
    ..

    Par contre tu risques d'avoir des problèmes avec les NULL, à gérer avec COALESCE, CASE, ISNULL..

    Il y a aussi le problème si une première partie du mot se trouve dans une colonne, et la seconde dans une suivante. Dans ce cas, tu peux ajouter un caractère séparateur dans ta concaténation (~ par exemple)
    Cela donnerait :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WHERE ISNULL(Col1, "") || '~' ||  ISULLL(Col2, "") .. LIKE '%lemot%'
    OR ISNULL(Col1, "") || '~' ||  ISULLL(Col2, "") .. LIKE '%lautremot%'
    Si débugger est l'art de corriger les bugs, alors programmer est l'art d'en créer.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Points : 38
    Points
    38
    Par défaut
    bonjour et merci pour cette piste avec le +
    j ai essayé ceci

    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
     
    $choix = array();
     
            if(isset($Keyword) && !empty($Keyword))
     
                      {$choix[] = "Marque";}
     
                      {$choix[] = "Modele";}  
     
    $critere = implode(' + ', $choix);
     
    $mots = explode( " ", $Keyword ); 
     
    if( count( $mots ) > 0 )
     
    $requete = "select * ,('Marque') AS Marque from batterie WHERE";
       for( $i = 0; $i < count( $mots ); $i++ ) {
          //$requete .= "$critere   ";
          $requete .= "  $critere LIKE '%". $mots[$i] ."%' ";
          if( $i < count( $mots ) - 1 )
             $requete .= " OR ";}
     
       $requete .= " ORDER BY Marque"; 
     
     
       $reponse = mysql_query( $requete ) ;
     
    echo $requete;
    l echo de ma requete est
    select * ,('Marque') AS Marque from batterie WHERE Marque + Modele LIKE '%exide%' OR Marque + Modele LIKE '%yuasa%' ORDER BY Marque

    mais dans ce cas me retourne rien et pas d erreur non plus

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Points : 336
    Points
    336
    Par défaut
    Bonjour,

    Affiche ta requête au format chaine directement, et copie colle dans ton sgbd afin d'avoir plus de détail.
    Cible le problème en supprimant les conditions.
    Affiche aussi MARQUE+MODELE en enlevant les conditions pour voir ce que ca donnes.
    Et enfin, fait attentions aux majuscules/minuscules.
    Si débugger est l'art de corriger les bugs, alors programmer est l'art d'en créer.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par arthur57 Voir le message
    Bonjour,

    Affiche ta requête au format chaine directement, et copie colle dans ton sgbd afin d'avoir plus de détail.
    Cible le problème en supprimant les conditions.
    Affiche aussi MARQUE+MODELE en enlevant les conditions pour voir ce que ca donnes.
    Et enfin, fait attentions aux majuscules/minuscules.
    oui j ai justement fait la requete directement dans sql mais me retrourne
    MySQL a retourné un résultat vide (aucune ligne). (Traitement en 0.0010 sec)

    si il y a que Marque comme ceci
    select * ,('Marque') AS Marque from batterie WHERE Marque LIKE '%exide%' OR Marque LIKE '%yuasa%' ORDER BY Marque
    j ai un resulat mais j ai qu une colonne si je rajoute les autres avec les + j ai rien

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Points : 336
    Points
    336
    Par défaut
    Regarde du côté de la concaténation de colonnes en SQL CONCAT, cela dépends de ton SGBD.
    Si débugger est l'art de corriger les bugs, alors programmer est l'art d'en créer.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Points : 38
    Points
    38
    Par défaut
    nikel ca fonctionne j ai fais comme ceci
    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
     
     
    {$choix[] = "Marque";}
     
    {$choix[] = "Modele";} 
     
    {$choix[] = "Gamme";}
    $critere = implode(' , ', $choix);
    $mots = explode( " ", $Keyword );
     
    if( count( $mots ) > 0 )
     
    $requete = "select * ,('Marque') AS Marque from batterie WHERE";
       for( $i = 0; $i < count( $mots ); $i++ ) {
          //$requete .= "$critere   ";
          $requete .= "  CONCAT($critere) LIKE '%". $mots[$i] ."%' ";
          if( $i < count( $mots ) - 1 )
             $requete .= " OR ";}
     
       $requete .= " ORDER BY Marque";
    et j ai bien un résultat selon ce que je met dans ma barre

    un grand merci a toi pour ton aide

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Points : 38
    Points
    38
    Par défaut
    bon finalement j ai encore un soucis...

    ca fonctionne en local mais pas en ligne
    avec un seul mot ca fonctionne mais si j en met 2 j ai pas de résultat ...

    le serveur est chez free

    une idée?

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Points : 336
    Points
    336
    Par défaut
    Affiche ta requête quand tu es en ligne, il y a (toujours) souvent une différence entre ton environnement et celui de la prod

    Et tu n'a pas mis en place le système de séparateur, imagine tu recherche le mot "excellent"
    Tu as deux champ contenant
    "Le meilleur logiciel c'est excel" et "lent comme pas possible"

    tu concatène et tu retrouvera le mot "excellent" alors qu'il n'existe dans aucun des deux champs.
    D'où l'astuce plus haut.
    Si débugger est l'art de corriger les bugs, alors programmer est l'art d'en créer.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Points : 38
    Points
    38
    Par défaut
    j ai comparé mes 2 echos de requêtes s entre celle en ligne et en locale et elles sont identiques

    j ai essayer sur un serveur OVH et j ai pas de problème ca fonctionne cependant la personne qui veux cela est chez free c est pour gerer un truc perso
    est ce que cela viendrait d un paramètre du serveur ?

    pour l histoire de la séparation j ai pas bien compris en faite, apres pour le cas actuel la base c est juste des données avec marque modele gamme et des chiffres , y a pas de phrases
    cependant j aimerai comprendre le systeme et regler le soucis du pourquoi cette requete ne fonctionne pas sur un serveur free

  11. #11
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Mon mari a un site sur Free, c'est une ancienne version de PHP : PHP 5.1.3
    Il faut voir quelle fonction "vient du futur" dans ton code et la contourner.
    Il n'y a que pour le client SQLITE qu'il y a un driver PDO, par exemple.

    Côté version de MYSQL, on est à 5.0.77
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- Optimisation du code :
    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
    $choix = ['Marque', 'Modele', 'Gamme']; // array
    $critere = implode(', ', $choix); //string
     
    if( !empty($Keyword) )
    {
       $mots = explode( ' ', $Keyword ); // array
     
       $sql_where = []; // array
       if( count( $mots ) > 0 )
       {
          foreach( $mots as $mot ) 
          {
             $sql_where[] = " CONCAT(" . $critere . ") LIKE '%". $mot ."%' ";
          }
       }
       $sql_where = ( !empty($sql_where) )? " WHERE " . implode( " OR ", $sql_where ) : ""; // string
     
       $requete = "SELECT * FROM batterie " . $sql_where . " ORDER BY Marque";
       //.....
    }
    N.B. Attention à ne pas oublier les accolades des if.

    2- Vérifie les majuscules/minuscules : noms des champs, de la table,...
    Sur serveur distant, c'est généralement sensible à la casse.
    Dernière modification par Invité ; 28/04/2018 à 08h13.

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Points : 38
    Points
    38
    Par défaut
    jreaux62 merci pour l optimisation du code , et j ai decouvert effectivement que c est majuscule qui pose problème sur le serveur free , chaque marque par exemple commence par une majuscule donc si j ecris tout en minuscule ben me retourne rien
    quel est le meilleur moyen de convertir le tout en minuscule? strtolower?

  14. #14
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Ca dépend si tu veux le faire dans ta requête SQL ou bien dans PHP. En MYSQL, c'est LOWER()
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  15. #15
    Invité
    Invité(e)
    Par défaut
    Si tu parles des marques enregistrées dans la bdd, ça voudrait dire que la table SQL est "sensible à la casse".

    1- Si j'en crois ce que j'ai pu lire, il faudrait modifier la COLLATION de la table (et/ou de la base) pour la rendre "insensible à la casse".

    Sans certitude...

    2- [EDIT] Sinon, oui on peut modifié la requête en mettant TOUT en minuscules :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
             $sql_where[] = " LOWER( CONCAT(" . $critere . ") ) LIKE '%". mb_strtolower($mot) ."%' ";
    Mais ça me semble lourd, et je n'ai jamais eu ce problème...

    A tester chez free.fr.

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Points : 38
    Points
    38
    Par défaut
    je viens d essayer le bout de code mais y a rien qui change c est comme avant malheureusement

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Points : 38
    Points
    38
    Par défaut
    bonjour, apres avoir cherché sur ma base un éventuel probleme je me suis appercu que le soucis viens de la requête quelque part
    j ai fais pour tester le resultat du LOWER
    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
     
    $query = "SELECT *,LOWER(Marque) AS Marque FROM batterie WHERE Marque='exide'";
     
     
            echo $query;
          	$result = mysql_query($query) or die( mysql_error() );
     
          	$Nombre = mysql_num_rows($result);
     
     
              if ($Nombre == "0") 
                {
                echo " <h2>Aucun résultat ne correspond à votre recherche</h2>";
                }
     
              else 
                {
     
                	echo "<h2>Resultat : ".$Nombre." Annonce(s) trouvee(s)</h2>";
     
                	while($row = mysql_fetch_assoc($result))
                	{
                		echo $row['Marque'] ;
     
                	}
                }
    donc la il me retourne bien un résultat en minuscule

    mais dans ma requete actuelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $requete = "select *,LOWER(Marque) AS Marque FROM batterie WHERE ";
       for( $i = 0; $i < count( $mots ); $i++ ) {
          //$requete .= "$critere   ";
          $requete .= "  CONCAT($critere) LIKE  '%". mb_strtolower($mots[$i]) ."%' ";
    bloque et retourne rien mais si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $requete = "select *,LOWER(Marque) AS Marque FROM batterie WHERE ";
       for( $i = 0; $i < count( $mots ); $i++ ) {
          //$requete .= "$critere   ";
          $requete .= "  Marque LIKE  '%". mb_strtolower($mots[$i]) ."%' ";
    je met Marque a la place ca fonctionne mais du coup retour a la case départ car j ai qu une colonne

  18. #18
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1-Montre-nous ce que donne $requete avec $criteres :

    2- As-tu testé ma proposition précédente ?

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2011
    Messages : 99
    Points : 38
    Points
    38
    Par défaut
    voila l echo de la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *,LOWER(Marque) AS Marque 
    FROM batterie 
    WHERE CONCAT(Marque, Modele, Gamme, Ah, Tension, L, P, H, Designation, Poids, P1, P2, coef2, coef3, Rinterne, Qte_bloc, Qte_voie, 'V/elem', 'Nb/elem2V', Vbloc, Qte_elem, Qte_elem_total, Vfloat, Icmax, Iflaot, coefpe, 'm3/h1', 'm3/h2', ICPE, Dissip_float, Dissip_recharge, Dissip_decharge, Pds_tot) LIKE '%exide%' ORDER BY Marque
    si tu parles de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql_where[] = " LOWER( CONCAT(" . $critere . ") ) LIKE '%". mb_strtolower($mot) ."%' ";
    oui j ai testé et cela fait pareil

  20. #20
    Invité
    Invité(e)
    Par défaut
    • 'V/elem', 'Nb/elem2V' ???
    • 'm3/h1', 'm3/h2' ???


    1- Kezako ?
    ce sont vraiment des noms de champs ??

    2- CONCAT()
    Il faut certainement mettre des espaces entre chaque.
    ex. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONCAT(prenom, ' ', nom, ' ', email)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Barre de recherche des applications : problème d'icone
    Par pol2095 dans le forum Windows 10
    Réponses: 0
    Dernier message: 13/01/2017, 10h57
  2. [MySQL] Problème avec ma Barre de Recherche PHP
    Par moinamkomori dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 07/06/2016, 09h38
  3. problème de langue barre de recherche google
    Par tiliut dans le forum Firefox
    Réponses: 2
    Dernier message: 21/02/2009, 11h09
  4. problème avec moteur de recherche
    Par allyson dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 16/02/2005, 16h23
  5. Réponses: 12
    Dernier message: 27/05/2004, 00h13

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