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 :

Aide pour projet de gestion de recettes de cuisine


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Février 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Février 2018
    Messages : 19
    Par défaut Aide pour projet de gestion de recettes de cuisine
    Bonjour à toutes et à tous,

    Je suis débutante en BDD/PHP/MySQL (oui je sais ça fait beaucoup) et j'aimerais solliciter votre aide et vos bons conseils.

    Si jamais je poste dans le mauvais forum merci de m'en excuser par avance.

    Je pense qu'il est bon de prendre le temps de vous conter mon parcours :

    J'ai commencé ici à découvrir le monde merveilleux des BDD en m'initiant aux joies des MCD et autres MLD avant de finir en beauté avec un MPD et un script DDL

    Vous trouverez en PJ une copie de mon MLD qui vous permettra d'avoir une idée plus précise de mon projet.
    Vous trouverez ici le lien vers le fil de discussion initial.

    Le point de départ de mon projet est que je possède énormément de livres de cuisine et de recettes.
    J'aimerais créer un site internet en PHP/MySQL que je puisse alimenter via un formulaire pour ensuite faire des recherches dessus.
    Petite précision, afin de tout avoir en ligne (de façon privée) j'ajouterai un lien vers le PDF de la recette. Pas besoin donc de taper les recettes en PHP puisque la recette sera déjà dans un fichier pdf.

    Je débute donc en PHP/MySQL et à peine mes tables créées que je suis déjà bloquée.

    Voici ce que j'essaye de faire afin de m'entraîner et bien comprendre le processus de "peuplement" d'une table à partir d'un formulaire en PHP

    Ma base de données dans MySQL se nomme : "cuisine"
    La table que j'essaye de remplir via le formulaire est une table toute simple dont le nom est "auteur", elle possède deux champs, le premier est "ID_auteur" (auto incrémenté) et le second est "AUTEUR", il contiendra les noms des auteurs de livres que je possède.

    J'ai commencé à écrire une page = formulaire_bdd.php qui me demande le nom d'un auteur qui sera stockée dans la variable "$_POST[nom_auteur]" cette variable sera utilisée dans la page "alim_bdd.php" où se trouvera la commande "INSERT INTO" afin d'ajouter l'entrée dans la table, voici le code de ces deux pages

    D'abord le code du formulaire :

    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
     
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Base de Donnée Cuisine</title>
        </head>
     
        <style>
        form
        {
            text-align:center;
        }
        </style>
     
        <body>
     
    		<form action="alim_bdd.php" method="post">
    			<p>
    				<label for="nom_auteur">Nom de l'auteur</label> : <input type="text" name="nom_auteur" id="nom_auteur" /><br />
    				<input type="submit" value="Envoyer" />
    			</p>
    		</form>
        </body>
    </html>
    Voici maintenant le code de ma page (=alim_bdd.php) qui doit ajouter l'entrée à ma table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=cuisine;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
     
    // On ajoute une entrée dans la table auteur
         $bdd->exec('INSERT INTO auteur VALUES ('$_POST['nom_auteur']')');
    ?>
    Je m'arrache les cheveux depuis quelques heures car j'ai invariablement cette erreur : Parse error: syntax error, unexpected '$_POST' (T_VARIABLE)

    Au début je me suis dit que la variable $_POST['nom_auteur'] ne contenait peut-être rien mais j'ai fait des tests et la variable est correctement remplis après envoi du formulaire.

    Y-aurait-il une âme charitable afin de m'aider ?

    Nom : MLD.JPG
Affichages : 2325
Taille : 46,4 Ko

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu t'es simplement emmêlé entre les "et les ' dans ta chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $bdd->exec('INSERT INTO auteur VALUES ("' . $_POST['nom_auteur'] . '")');
    mais ce n'est pas comme ça qu'il faut traiter la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sth = $bdd->prepare('INSERT INTO auteur VALUES (:nom_auteur)');
    $sth->execute(array(':nom_auteur'=>$_POST['nom_auteur']));
    Pour notamment des raisons de sécurité, on ne met pas directement dans la requête une valeur qui n'est pas sûre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Février 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Février 2018
    Messages : 19
    Par défaut
    Bonjour,

    Merci sabotage pour ta réponse, je me doutais bien que c'était un souci de ' ou de ", pas facile quand on n'a pas l'habitude.
    Merci aussi de m'avoir fait remarqué que la "préparation" d'une requête était plus sûre niveau sécurité ! Je ne voulais pas me compliquer le code alors que je galère déjà avec de simples commandes

    J'ai maintenant pu ajouter 3 entrées à ma table auteur, et j'essaye d'écrire un script qui puisse simplement me lister et m'afficher le contenu de cette table... visiblement je ne dois pas être douée parce que cela fait 1 heure que je cherche et que je ne trouve pas...

    Voici mon 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
    21
    22
    23
    24
    25
    26
    27
     
    <?php
    // Connexion à la base de données
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=cuisine;charset=utf8', 'root', '');
    	$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
     
    // Récupération du contenu de la table auteur
    $reponse_auteur = $bdd->query("SELECT * FROM auteur");
     
    // Affichage du contenu de la table 
    while ($donnees_auteur = $reponse_auteur->fetch())
    {
    ?>
    ID auteur : <?php echo $donnees_auteur['ID_auteur']; ?>
    Nom auteur : <?php echo $donnees_auteur['auteur']; ?>
    <?php
    }
    $reponse->closeCursor();
    ?>
    Voici l'erreur qui m'est retournée : Notice: Undefined index: ID_auteur (...) ligne 22 et Notice: Undefined index: auteur (...) ligne 23

    En annexe ma table "auteur"

    Merci par avance de votre aide et bien désolée de vous poser des questions aussi simples...

    Nom : table_auteur.JPG
Affichages : 1793
Taille : 41,7 Ko

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    bonjour,
    le nom du champ 'ID_auteur' n'existe pas, il existe plutôt 'ID_AUTEUR'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $donnees_auteur['ID_auteur']
    doit être remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $donnees_auteur['ID_AUTEUR']
    la même chose pour 'auteur'.

  5. #5
    Membre averti
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Février 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Février 2018
    Messages : 19
    Par défaut
    Bonjour Toufik83 et merci pour ta réponse !

    Je suis au bout de ma vie... la casse... je n'avais pas pensé à la casse.... quand je pense au temps que j'ai perdu.
    Mais bon, c'est en faisant des erreurs qu'on progresse je suppose

    Merci en tout car cela fonctionne.

    Je laisse le sujet "ouvert" car je prends les problèmes les uns après les autres et ne souhaite pas créer de nouveaux post à chaque fois.

    A très vite pour d'autres interrogations

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

    je te conseille d'écrire les noms des tables et des champs SQL entièrement en minuscules.

Discussions similaires

  1. besoin d'aide pour projet
    Par donromanino dans le forum C++
    Réponses: 5
    Dernier message: 02/04/2006, 18h35
  2. Aide pour projet avec carte asi candibus
    Par sinicha dans le forum C
    Réponses: 13
    Dernier message: 16/01/2006, 15h32
  3. Réponses: 3
    Dernier message: 27/12/2005, 10h30
  4. [LG] Aide pour logiciel de gestion de bibliothèque
    Par ajkidbsb dans le forum Langage
    Réponses: 1
    Dernier message: 08/09/2005, 21h04
  5. Aide pour projet : schéma & SGBD
    Par Grubshka dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 11/04/2005, 16h50

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