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 :

Regrouper valeurs dans un select


Sujet :

PHP & Base de données

  1. #21
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,
    Boites commançant par 3 premières lettres spécifiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $where = "WHERE boite LIKE '" . substr($boite, 0, 3) . "%'";

  2. #22
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 87
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Bonjour,
    Boites commançant par 3 premières lettres spécifiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $where = "WHERE boite LIKE '" . substr($boite, 0, 3) . "%'";
    Merci ! ça passe nickel !

  3. #23
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 87
    Par défaut
    Alors, ça marche MAIS ...

    Du coup, j'avais pas réfléchis, mais quand on est sur une fiche vo, et même si on a pas fais une recherche par boite, si on clique sur suivant ou précédent, ça n'affiche que les boites du même type que le véhicule.

    Il faudrait que j'arrive à faire "suivant avec même type de boite auto ou manuelle quand la personne fait une recherche par type de boite dans le moteur de recherche" et "suivant ou précédent sur même modèle de véhicule mais sans tenir compte de la boite si la personne ne fais pas de tri par boite " ...

    Merci

  4. #24
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    C'est simple, tu modifies ta clause where dans les fonctions getPrevious() / getNext() afin de tenir compte d'un choix explicite de type de boite de vitesse.
    Inspires toi de ma modification de la ligne 428 d'un post précédent.

    Une dernière chose : ton code n'est pas du tout sécurisé mais alors pas du tout. Il n'y a aucune protection contre quoi que ce soit. Je n'ai pas vu le reste mais si tu le mets en ligne en l'état, tu vas te faire siphonner l'intégralité de tes données en moins de temps qu'il ne faut pour le dire sans compter toutes les autres joyeusetés qu'il serait possible d'injecter. J'espère que tout ceci n'est qu'un code de test ou d'apprentissage mais pas destiné à être mis en production.

  5. #25
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 87
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    C'est simple, tu modifies ta clause where dans les fonctions getPrevious() / getNext() afin de tenir compte d'un choix explicite de type de boite de vitesse.
    Inspires toi de ma modification de la ligne 428 d'un post précédent.

    Une dernière chose : ton code n'est pas du tout sécurisé mais alors pas du tout. Il n'y a aucune protection contre quoi que ce soit. Je n'ai pas vu le reste mais si tu le mets en ligne en l'état, tu vas te faire siphonner l'intégralité de tes données en moins de temps qu'il ne faut pour le dire sans compter toutes les autres joyeusetés qu'il serait possible d'injecter. J'espère que tout ceci n'est qu'un code de test ou d'apprentissage mais pas destiné à être mis en production.
    Merci, mais je ne vois pas comment adapter le code de la ligne 428 à ces fonctions ...

    Quand tu dis que le code n'est pas sécurisé ? C'est-à-dire ?

  6. #26
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Voici les deux fonctions corrigées :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
     
    function getNext($id_voiture, $marque, $modele, $boite) {
       $groups = array('all' => 'Toutes', 'auto' => 'A', 'man' => 'M');
       $whereBoite = '';
       if (strlen($boite) && ($boite !== 'all')) {
          $whereBoite = (isset($groups[$boite]))
                           ? "AND `boite` LIKE '%{$groups[$boite]}%'"
                           : "AND `boite` = '$boite'";
       }
     
       $sql = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` 
               FROM `voitures`
               WHERE `id_voiture` > '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' $whereBoite
               ORDER BY `id_voiture` ASC
               LIMIT 0,1";
     
       $exec = requete($sql);
     
       return (mysql_num_rows($exec))
                 ? mysql_fetch_assoc($exec)
                 : false;
       }
     
    function getPrevious($id_voiture, $marque, $modele, $boite) {
       $groups = array('all' => 'Toutes', 'auto' => 'A', 'man' => 'M');
       $whereBoite = '';
       if (strlen($boite) && ($boite !== 'all')) {
          $whereBoite = (isset($groups[$boite]))
                           ? "AND `boite` LIKE '%{$groups[$boite]}%'"
                           : "AND `boite` = '$boite'";
       }
     
       $sql = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` 
               FROM `voitures`
               WHERE `id_voiture` < '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' $whereBoite
               ORDER BY `id_voiture` DESC
               LIMIT 0,1";
     
       $exec = requete($sql);
     
       return (mysql_num_rows($exec))
                 ? mysql_fetch_assoc($exec)
                 : false;
    }
     
    ?>
    Ce que tu demandes ne relève pas de l'apprentissage mais d'une prestation pure et simple pour un développeur. C'est mon dernier post dans ce fil de discussion.
    Pour l'aspect sécurité, c'est simple absolument aucune données n'est sécurisée (du moins je n'ai rien vu de tel), les données utilisateurs passent à la base de données sans aucun filtrage/nettoyage/échappement.
    J'ajouterai que le rendu web est lui aussi non sécurisé : aucun échappement de caractères dangereux, aucune précaution de rien du tout. Bref, il te reste encore un gros travail à founir.
    Dans tous les cas bon courage.

  7. #27
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 87
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Voici les deux fonctions corrigées :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
     
    function getNext($id_voiture, $marque, $modele, $boite) {
       $groups = array('all' => 'Toutes', 'auto' => 'A', 'man' => 'M');
       $whereBoite = '';
       if (strlen($boite) && ($boite !== 'all')) {
          $whereBoite = (isset($groups[$boite]))
                           ? "AND `boite` LIKE '%{$groups[$boite]}%'"
                           : "AND `boite` = '$boite'";
       }
     
       $sql = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` 
               FROM `voitures`
               WHERE `id_voiture` > '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' $whereBoite
               ORDER BY `id_voiture` ASC
               LIMIT 0,1";
     
       $exec = requete($sql);
     
       return (mysql_num_rows($exec))
                 ? mysql_fetch_assoc($exec)
                 : false;
       }
     
    function getPrevious($id_voiture, $marque, $modele, $boite) {
       $groups = array('all' => 'Toutes', 'auto' => 'A', 'man' => 'M');
       $whereBoite = '';
       if (strlen($boite) && ($boite !== 'all')) {
          $whereBoite = (isset($groups[$boite]))
                           ? "AND `boite` LIKE '%{$groups[$boite]}%'"
                           : "AND `boite` = '$boite'";
       }
     
       $sql = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` 
               FROM `voitures`
               WHERE `id_voiture` < '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' $whereBoite
               ORDER BY `id_voiture` DESC
               LIMIT 0,1";
     
       $exec = requete($sql);
     
       return (mysql_num_rows($exec))
                 ? mysql_fetch_assoc($exec)
                 : false;
    }
     
    ?>
    Ce que tu demandes ne relève pas de l'apprentissage mais d'une prestation pure et simple pour un développeur. C'est mon dernier post dans ce fil de discussion.
    Pour l'aspect sécurité, c'est simple absolument aucune données n'est sécurisée (du moins je n'ai rien vu de tel), les données utilisateurs passent à la base de données sans aucun filtrage/nettoyage/échappement.
    J'ajouterai que le rendu web est lui aussi non sécurisé : aucun échappement de caractères dangereux, aucune précaution de rien du tout. Bref, il te reste encore un gros travail à founir.
    Dans tous les cas bon courage.
    J'ai remplacé le code mais cela ne semble pas fonctionner malheureusement ...
    Mais vraiment un gros merci d'avoir pris le temps de m'aider, et je comprends très bien que c'est un réel boulot de développement, raison pour laquelle je te suis très reconnaissant ;-)

    Merci aussi pour tes conseils ;-)

Discussions similaires

  1. [Dojo] Récupérer une valeur dans un Select
    Par MaT$oN dans le forum Bibliothèques & Frameworks
    Réponses: 15
    Dernier message: 06/02/2009, 16h26
  2. selection d'une valeur dans <html:select>
    Par singleProject dans le forum Struts 1
    Réponses: 2
    Dernier message: 08/07/2008, 18h24
  3. [Interbase] Récupérer une valeur dans un select
    Par ftoutin dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/01/2007, 14h36
  4. Utiliser une liste de valeur dans un select
    Par in dans le forum Oracle
    Réponses: 13
    Dernier message: 09/01/2007, 12h33
  5. récupérer une valeur dans un selected
    Par lacfab dans le forum Langage
    Réponses: 6
    Dernier message: 14/12/2005, 10h48

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