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 :

split() et $query_search .= (probleme voir P2) [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut split() et $query_search .= (probleme voir P2)
    bonjour a tous,je suis le webmaster de www.vente-location.fr et la je trav sur la partie chercher rapide de ma box.

    j'ai une une question a vous demander.


    voila j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="departement" type="text" style="font-size: 11px;" value="<?php echo @$_GET['departement']; ?>" size="12" />
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     $departement' = @$_GET['departement''];
    	if ($departement' != '') 
    	{
    		$query_search .=  :?  " AND products.departement' = '$departement''";
    	}

    comment faire pour pouvoir réaliser dans mon "input" une recherche du style : 95,marseille,lyon....blabla

    car pour le moment sa ne marche avec qu'une seul donné dans mon input.
    comment faire pour prendre en compte toute les infos ?

  2. #2
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    salut
    a ma connaissance les input ne peuvent avoir qu'une valeur donc
    je propose de faire comme tu le dit
    separe les valeurs dans ton input par des virgules ou double point
    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    input value="<?php echo @$_GET['departement'].":". @$_GET['departement2']; ?>
    puis apres reception tu split le $_GET et tu fait un boucle sur ton tableau
    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tableau = split (":", $_GET["truc"]);
    puis 
    while (list($key, $val) = each($tableau))

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    mais le plus logique semble de faire plusieurs input

  4. #4
    Fabouney
    Invité(e)
    Par défaut
    bonjour bah tu peux faire un truc du genre


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach ($_GET as $k => $v) {
         if($k == 'departement'') {
              echo '<input name="departement[]" type="text" style="font-size: 11px;" value="'. $v . '" size="12" />';
         }
     
    }

    et donc apres et bien tu récupére les valeur de ton tableau departement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ($_POST['departement'] as $cle => $valeur) {
           if($valeur != '') {
               $query_search .= " AND products.departement' = '$valeur' ";
           }
    }
    tient au courant.

  5. #5
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    P.S j'éspère que ton site n'est pas fini du tout parce que le menu du haut bug à mort avec firefox :/

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Ouais, entre ce qui est pratique pour le développeur et ce que veut l'utilisateur (ce qui est ergonomique), y'a une belle différence :/
    Plusieurs input, c'est bien joli mais j'aime bien pouvoir tout taper dans la même case quand je fais une recherche avec Mappy...

    La solution est effectivement de split() la chaîne, idéalement avec un caractère de séparation (la virgule étant un choix classique mais c'est à toi de voir, tu peux même en choisir plusieurs) sinon si tu n'as que l'espace ça va être la foire.

  7. #7
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut ...
    merci pour vos idées

    oui le site n'est pas fini, la pour le moment je suis encor sur le php.
    pour le design je fignolllee petit a petit car je suis pas tro inspiré pour le moment.

    oui j'ai remarqué qu'avec FF c pas le top, la j'ai du pain sur la planche pour rendre le menu compatible avec tous les navigateurs


    dans le cas que vous aviez des idées pour mon site je suis preneur



    ps:merci pour votre aide www.vente-location.fr

  8. #8
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut
    sinon vous avez d'autres idées ???

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Les solutions proposées ne te conviennent pas ?
    Tu as :
    • la plus pratique pour l'utilisateur, à savoir un seul <input> et tu te débrouilles pour traiter la chaîne (possibilité de remplacer les point virgules, étoiles et autres caractères potentiels de séparation par une virgule, puis de faire split() sur la chaîne en utilisant la virgule)
    • la plus pratique pour le développeur (la solution ultime, sans bug), à savoir autant de champs <input> que tu en as besoin


    Au passage, est-il normal que tu aies une apostrophe après ta variable département ? J'imagine que c'est une coquille en collant le code ici.

  10. #10
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut ...
    en faite j'ai testé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="informations" type="text" style="font-size: 11px;" value="<?php echo @$_GET['informations']; ?>" size="12" />
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $tableau = split (",", $_GET["informations"]); 
    while (list($key, $valinfo) = each($tableau));
    	if ($valinfo != '')
            {
    		  $query_search .= " AND (products.departement LIKE '%".$valinfo."%' OR products.ville LIKE '%".$valinfo."%'  OR products.codezip LIKE '%".$valinfo."%' )";
    		}
    ya pas de beug, mais sa ne marche pas

    le script réagie pas

  11. #11
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut ...
    ou ou ! ya personne ???

  12. #12
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    La méthode qui fonctionne mais pas l'implémentation : utilise echo, je suis sûr que tu finiras par trouver.

  13. #13
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    ca me semble juste
    fait le test dans pma
    des fois c'at tout con
    mais la logique semble bien

  14. #14
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut ...
    j'ai modif est tjr rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $informations = @$_GET['informations'];
    $tableau = split (",", trim($informations)); 
    while (list($key, $valinfo) = each($tableau));
    	if ($valinfo != '')
            {
    		  $query_search .= " AND ((products.departement LIKE '$valinfo') OR (products.ville LIKE '$valinfo')  OR (products.codepostal LIKE '$valinfo'))";
    	}
    tous semble ok mais sa ne marche pas : : :

  15. #15
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Tu as mis un point virgule après ton while...

    Puis-je te suggérer de toujours mettre des accolades ? Ainsi, non seulement ce sera plus facile à lire mais en plus tu auras un parse error dans ce genre de situations.

  16. #16
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    je pense que tu doit faire un echo de ta query et la tester sur pma tu va finir par trouver ce qui cloche
    courage

  17. #17
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut ...
    oui montre moi ta vision

  18. #18
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut ...
    oui donc c bien a cause du point vigule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $informations = @$_GET['informations']; 
    $tableau = split (",", trim($informations)); 
    while (list($key, $valinfo) = each($tableau)) 
       if ($valinfo != '') 
            { 
            $query_search .= " AND ((products.departement LIKE '$valinfo') OR (products.ville LIKE '$valinfo')  OR (products.codepostal LIKE '$valinfo'))"; 
       }
    mais j'ai encor une question

    la le script, me trouve des annonce pour lequel contient toutes les info recherché et non en partie...

    exemple : lyon,26,mon petit village

    le script va rechercher les anonces avec toutes ces info...

    comment faire pour qu'il prenne toutes les anonces qui on un ou plusieurs
    des critaires recherché ???

  19. #19
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Je pense que tu as déjà la réponse : n'utilise que OR, non AND.

  20. #20
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut ...
    ouille chaque teste me donne "Erreur de syntaxe"


    alors la

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

Discussions similaires

  1. problem voir les doublons
    Par chady dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/02/2009, 00h29
  2. [//TODO] Comment voir les balises TODO dans les problemes?
    Par romain3395 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/12/2004, 08h53
  3. [DEBUTANT] probleme avec split ?
    Par matN59 dans le forum ASP
    Réponses: 6
    Dernier message: 23/10/2004, 15h47
  4. [String] Probleme incomprehensible avec split
    Par scorpiwolf dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 20/07/2004, 21h21
  5. [langage] Problem avec split
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 08/07/2004, 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