Bonjour, je fait appelle a vous sur un problème de jointure et d'une requête SQL.
Je commence par présenté mes tables :

1) Types -> id_types, nom
2) Genres -> id_genres, nom
3) Produits -> id_produits, id_genres, id_types, nom ...etc

Pour expliqué en résumé, chaque produit a un type et un genre, pour évité que l'entré des données soit trop redondante, j'ai décidé de faire une jointure tel que types.id_types = produits.id_types et genres.id_genres = produits.id_genres

or sa commence a devenir embêtant lorsque je veut inséré des produits via un formulaire, car celui-ci n'insère pas les données.

Voici le code :
extrait du formulaire

  • j'ai fait un select or celui-ci prend les id de la table produits et non ceux de la table types ou genres

    <?php
    //connection au serveur
    include ('includes/connexion_bdd.php');
    ?>
    <div id="types">
    <label for="Types">Types de produit * :</label>
    <select class="input" name="id_types" required>
    <?php
    // ici je récupère les types
    //connection au serveur
    $res = $bdd->query ('SELECT types.id_types, produits.id_types FROM types, produits WHERE types.id_types = produits.id_types ORDER BY types.id_types');

                while ($donnees = $res->fetch())
                {
                echo '<option value="types"> ' . $donnees'id_types'] . ' </option> ' ;
                }
                $res->closeCursor();
            ?>
        </select>
    </div>

Traitement de l'ajout :

// je récupération les valeurs du formulaire d'ajout de produits

        //nom :
        $nom = $_POST'nom'] ;
        //prix
        $prix = $_POST'prix'] ;
        //image
        $image = $_POST'image'] ;
        //description
        $description = $_POST'description'] ;
        //quantiter
        $quantiter = $_POST'quantiter'] ;
        //id_types
        $id_types = $_POST'id_types'] ;
        //id_genres
        $id_genres = $_POST'id_genres'] ;

//connection au serveur
include ('includes/connexion_bdd.php');
// insertion des données récupérer

            $req = $bdd->prepare('INSERT INTO oldschoolgen.produits(id_produits, nom, prix, image, description, quantiter, id_types, id_genres) VALUES(:id, :nom, :prix, :image, :description, :quantiter, :id_types, :id_genres)');

            $req->execute(array(
                  'id_produits' => '',
                  'nom' => $nom,
                  'prix' => $prix,
                  'image' => $image,
                  'description' => $description,
                  'quantiter' => $quantiter,
                  'id_types' => $id_types,
                  'id_genres' => $id_genres,
            ));

Donc avec un echo j'ai un message de succès mais au niveau de la bdd il ne se passe rien.
Si quelqu'un pourrais m'éclairé, car je pense que c'est qu'une simple erreur de logique ou de syntaxe.

Cordialement,

xander ;)

1 réponse


xander
Auteur
Réponse acceptée

Finalement c'est bon j'ai bien effectué ma jointure et tout fonctionne nikel