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 :

Gestion de collection / Comment faire ?


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ordonnanceur
    Inscrit en
    Octobre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ordonnanceur

    Informations forums :
    Inscription : Octobre 2016
    Messages : 19
    Points : 18
    Points
    18
    Par défaut Gestion de collection / Comment faire ?
    Bonjour,

    je ne sais pas si je poste mon message au bon endroit, et je remercie par avance un modérateur si il peut le réorienter vers la bonne section.

    Avant même de commencer à coder, je bloque sur le comment faire.

    Je voudrais créer une base de données pour une de mes collections ( + de 800 articles), tous les articles de cette collection sont définis par 10 critères et afin de ne pas acheter de double, je voudrais pouvoir rechercher sur mon site les articles en ma possession, je voudrais bien évidemment que ma page soit dynamique, ..., ci dessous les critères définissant les articles.
    1: nom
    2: photo
    3: couleur
    4: matière
    5: etc

    Ce que j'aimerais ( ou du moins ce que j'imagine à l'heure actuelle ), une liste déroulante sur chacun des critères 3 à 10 ( avec lecture des infos en BDD -> pas de proposition de choix s'il n'existe pas ) qui ferait apparaître les photos correspondantes aux choix à fur et à mesure de chaque sélection, pour n'arriver au final qu'a une quantité minime de résultat ou aucun si pas en ma possession, un champ de recherche textuel en supplément serait un plus fort apprécié. De plus je veux pouvoir sélectionner une valeur de critère 6 même si je n'ai pas choisi de critère 5.

    Je suis à l'écoute de toutes les questions, remarques, idées, ou autres qui pourraient me faire avancer sur ce projet.


    Merci de votre lecture

  2. #2
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 424
    Points : 849
    Points
    849
    Par défaut
    Bonjour.

    Tu ne nous dis pas si tu veux faire cela à travers une page web ou sur un ordi en local.

    Si c'est sur le web, il te faut qu'un serveur face l'interface entre le navigateur et ta bdd.
    Tu dois pour cela maitriser le trio HTML / CSS / JS et un langage côté serveur.
    Vu que tu poste ça, sans trop savoir, dis-tu, sur le forum PHP, c'est que tu le connais au moins un peu, ce qui sous-entend que tu connais aussi les autres langages du web.
    Est-ce bien le cas ?

    Cordialement.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ordonnanceur
    Inscrit en
    Octobre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ordonnanceur

    Informations forums :
    Inscription : Octobre 2016
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Bonsoir et merci de ton intérêt.

    La finalisation du projet est une page intégrée dans mon site web perso ( je ne sais pas si j'ai le droit, mais voici l'adresse https://bic4.efferp.net ) qui me permettra de remplacer à terme la page de recherche.
    Cette page permettra de rechercher un bic, plus précisément qu'avec un champ de recherche basé sur des mots clés, dans ma base de données afin de voir si il est déjà en ma possession ou non.

    J'imagine bien quelque chose comme ca
    Nom : Sans titre.png
Affichages : 78
Taille : 58,8 Ko

    Je me débrouille un minimum dans les langages annoncés html/css/php beaucoup moins en Js mais la recherche sur internet ne me dérange pas du moment que je comprends et que je peux adapter à mon projet.

    J'ai essayé d'avancer un peu sur mon projet, et je réussis déjà à récupérer les valeurs des Select et à les envoyer via ajax à un fichier php qui requête pour m'afficher les résultats. Mais je ne sais pas si c'est la meilleure solution, ni la plus simple.
    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
        function loadTube() {
            // RECUP TUBE
            var Tube = document.getElementById("tube").options[document.getElementById("tube").selectedIndex].value;
            var Finition = document.getElementById("finition").options[document.getElementById("finition").selectedIndex].value;
            var Haut = document.getElementById("haut").options[document.getElementById("haut").selectedIndex].value;
            var Bague = document.getElementById("bague").options[document.getElementById("bague").selectedIndex].value;
            var Encre = document.getElementById("encre").options[document.getElementById("encre").selectedIndex].value;
            var Taille = document.getElementById("taille").options[document.getElementById("taille").selectedIndex].value;
            var Style = document.getElementById("style").options[document.getElementById("style").selectedIndex].value;
            var OK = document.getElementById("ok").options[document.getElementById("ok").selectedIndex].value;
     
     
            $.post('./views/02_utilisateur/bdd.ajax.php',{TUBE:Tube, FINITION:Finition, HAUT:Haut, BAGUE: Bague, ENCRE: Encre, TAILLE: Taille, STYLE: Style, OK: OK},function(data){
                $('#BDD_Resultat').html(data).slideDown();
                BDD_Resultat.classList.remove("w3-hide");
            });
        }
    Mais je ne vois pas comment intégrer mon input textuel, et pour finir je ne sais pas comment faire une recherche multi critère sur un champ texte ( certainement via un explode du champ ? ).

    Merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 424
    Points : 849
    Points
    849
    Par défaut
    Citation Envoyé par EfferNath Voir le message
    je réussis déjà à récupérer les valeurs des Select et à les envoyer via ajax à un fichier php qui requête pour m'afficher les résultats
    Pour récupérer les valeurs des champs, l'utilisation d'un formdata simplifie grandement la manœuvre

    il te suffit de donner une ID à ton form puis de mettre celle-ci comme argument au constructeur d'un formdata que tu places dans le send du XHR
    Code html : 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
    <form id=formu>
        Une expression <input name="expression">
        <select name="sel1">
            <option>1</option>
            <option>2</option>
        </select>
        <select name="sel2">
            <option>un</option>
            <option>deux</option>
        </select>
        <input type=button onclick=envoi() value=Enregistrer>
    </form>
    <script>
    function envoi() {
        let xhr = new XMLHttpRequest();
        xhr.open('POST', 'cherche.php');
        xhr.onreadystatechange=function() {
            if (xhr.readyState == 4 && xhr.status == 200) {
                alert(xhr.response)
            }
        }
        xhr.send(new FormData(formu))
    }
    </script>
    Le script cherche.php reçoit les trois couples champ, valeur correspondant aux trois champs

    et pour finir je ne sais pas comment faire une recherche multi critère sur un champ texte ( certainement via un explode du champ ? )
    Tu voudrais que l'utilisateur entre plusieurs expressions (mot ou groupe de mots) dans un seul champ ?
    Vu qu'une expression peut contenir plusieurs mots, je proposerais de les séparer par des virgules et de faire un explode sur celles-ci.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ordonnanceur
    Inscrit en
    Octobre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ordonnanceur

    Informations forums :
    Inscription : Octobre 2016
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Pas d'expression, mais plutôt des mots clés complémentaires au critère déjà définis dans les select.
    L'explode en php ne me pose en lui même pas de soucis, mais j'ai du mal à "imaginer" la requête SQL derrière sachant que je ne sais pas combien de mots clés seront saisis

  6. #6
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 424
    Points : 849
    Points
    849
    Par défaut
    tu peux t'inspirer de cette petite solution (que je ne prétends pas être parfaite):

    Pour ce segment HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method=post>
        Entrez les mots-clés séparés par des espaces
        <input name=categories><br>
        <input type=submit value=rechercher>
    </form>

    Requête (sécurisée) :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $execute = explode(' ', $_POST['categories']);
    $OR = '';
    for($i=0; $i<count($execute); $i++)
        $OR .= 'commune like ? or ';
    $OR = substr($OR, 0, -4); // suppression des 4 deniers caractères en trop
    $link = New Mysqli('localhost', 'root', '', 'mabase'); // connexion à la BDD
    $sql = "SELECT * FROM images WHERE $OR"; // SQL avec les ? de la requête préparée
    $res = $link->execute_query($sql, $execute); // exécution de la requête préparée
    foreach ($res as $row) {
        // récupération des champs
    }

Discussions similaires

  1. [MCD] Gestion de blindtests; comment faire ?
    Par Mike888 dans le forum Schéma
    Réponses: 76
    Dernier message: 11/11/2019, 19h34
  2. [AC-2010] Gestion d'évaluation comment faire
    Par moniteur41 dans le forum Modélisation
    Réponses: 18
    Dernier message: 26/12/2012, 18h20
  3. Réponses: 9
    Dernier message: 23/06/2011, 18h34
  4. [Gestion des Exceptions] Comment faire ?
    Par caballero dans le forum Services Web
    Réponses: 3
    Dernier message: 21/02/2008, 09h39
  5. Réponses: 4
    Dernier message: 05/06/2006, 11h34

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