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 :

Exécution d'une requête


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Exécution d'une requête
    Bonjour,

    J'ai un petit problème avec mon code, Je m'explique. Je m’entraîne à créer un espace de commentaire avec un formulaire :nom, prénom, commentaire. Lorsque l'utilisateur entre ces informations il est censé voir son commentaire s’afficher en dessous du petit tableau. Mais rien ne se passe, et pourtant je reçois aucun message d"erreur. j'ai aussi vérifier dans la base de données si les informations sont bien récupérer mais je constate que ce n'est pas le cas. Donc je ne sais pas du tout ou se situe l'erreur.

    nom de la base de donnée: essai
    nom de la table : essai_commentaire

    Voici mon code:

    POUR LA PARTIE PHP :

    Code php : 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
    try {
    $bdd= new PDO('mysql:host=localhost;dbname=essai;charset=utf8','root','');// connexion
    }
    catch(exception $e){
    	die('Erreur : '.$e->getMessage()); // renvoie un message derreur sil en existe
    }
    if (isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['commentaire'])){ //condition
     
    	$nom = htmlspecialchars($_POST['nom']);
    	$prenom = htmlspecialchars($_POST['prenom']);
    	$commentaire = htmlspecialchars($_POST['commentaire']);
     
     
    $requete = $bdd->prepare('INSERT INTO essai_commentaire(nom, prenom,commentaire) VALUES(?,?,?)'); // insertion des donnees dans la base de donnes
    $requete->execute(array($nom,$prenom,$commentaire)); // execution de la requete preparer
     
    	while ($donnees = $requete->fetch()){
    				echo '<tr><td>Commentaire de '.$donnees['nom'].' '.$donnees['prenom'].'</td></tr>'.'<tr><td>'.$donnees['commentaire'].'</td></tr>';
    			}
    			{
    				echo '</table>';
    			}
     $requete->closecursor();
    }
    ?>

    //CODE HTML :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    <!doctype html>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<link rel="stylesheet" type="text/css" href="Design.css">
    	</head>
     
    	<header>
    	</header>
     
    	<body>
    		<section class="commentaire">
    			<table>
    				<tr>
    					<td>Nom et Prenom</td>
    				</tr>
    				<tr>
    					<td>Commentaires...</td>
    				</tr>
    			</table>
    		</section>
     
    		<section class="zoneR">
    			<form method="POST" action="index.php">
    				<fieldset>
    					<legend>Inscrivez un commentaire : </legend>
    						<label>Nom</label><br><input type="text" name="nom" size="40"/><br>
    						<label>Prenom</label><br><input type="text" name="prenom" size="40"/><br>
    						<label>Commentaire: </label><br><textarea placeholder="Commentaire" size="80"></textarea> <br>
    						<button type="submit">Envoyer</button><button type="reset" name="renitialiser">Renitialiser</button>
    				</fieldset>
    			</form>
    		</section>
    	</body>
     
    	<footer>
    	</footer>
    </html>

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Une chose déjà. Tu fais un INSERT et juste en dessous tu fais un fetch. Un fetch ne se fait que si on a fait un SELECT au préalable.
    Je vois un </table> mais pas le <table> et le fait que ton code ne soit pas indenté en rend la lecture difficile.

    Il faut utiliser les balises de code => voir le bouton [#] qui est au-dessus de l'éditeur de messages. Ensuite pour que le code soit colorisé pour php il faut ajouter =php entre le E de CODE et le ].
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour badaze, D'abord merci pour ta réponse. J'ai modifier mon message j’espère que c'est plus clair.
    Ensuite pour fetch que faut t'il que je mette a la place alors ?

    voici ce que ca me donne sur le navigateur :

    Nom : Screenshot_2019-01-14 Screenshot.png
Affichages : 111
Taille : 7,9 Ko

    En gros je veux que ce qui est rentrer dans le formulaire s'affiche en dessous du tableau : nom prenom et commentaire .


    et voici la base de donnee :

    Nom : CAPTURE BASE DONNEE.png
Affichages : 149
Taille : 56,7 Ko

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Ton textarea n'a pas d'attribut name (="commentaire"), du coup $_POST['commentaire'] est toujours null.

    A+.

  5. #5
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    Ton textarea n'a pas d'attribut name (="commentaire"), du coup $_POST['commentaire'] est toujours null.

    A+.
    Bonjour andry.aime

    Jai modifier ca mais ca na rien changer

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par dms-mrk Voir le message
    Jai modifier ca mais ca na rien changer
    Les données ne sont pas insérées dans la table?
    L'affichage des données ne se fait pas? Parce que dans ce cas, tu n'as pas une requête select pour récupérer les données de la base avant le fetch.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd= new PDO('mysql:host=localhost;dbname=essai;charset=utf8','root','');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd= new PDO('mysql:host=localhost;dbname=essai;charset=utf8','root','', array(PDO::ATTR_ERRMODE => ERRMODE_EXCEPTION));
    Ensuite fait un echo pour voir si ça rentre dans la condition if.

    A+.

  7. #7
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Les données ne sont pas insérées dans la table?
    L'affichage des données ne se fait pas? Parce que dans ce cas, tu n'as pas une requête select pour récupérer les données de la base avant le fetch.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd= new PDO('mysql:host=localhost;dbname=essai;charset=utf8','root','', array(PDO::ATTR_ERRMODE => ERRMODE_EXCEPTION));
    Ensuite fait un echo pour voir si ça rentre dans la condition if.

    A+.
    Oui il ne se passe absolument rien dans la base de donnee c'est comme si côter php rien ne se faisait...

    J'ai modifier mon code avec les remarques, mais sa fonctionne toujours pas, :

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<link rel="stylesheet" type="text/css" href="Design.css">
    	</head>
     
    	<header>
    	</header>
     
    	<body>
    		<section class="commentaire">
    			<table>
    				<tr>
    					<td>Commentaires:</td>
    				</tr>
    			</table>
    	</body>
    </html>
     
    <?php
     
    try {
    $bdd= new PDO('mysql:host=localhost;dbname=essai;charset=utf8','root','');// connexion
    }
    catch(exception $e){
    	die('Erreur : '.$e->getMessage()); // renvoie un message derreur sil en existe
    }
    if (isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['commentaire'])){ //condition
     
     
    	$nom = htmlspecialchars($_POST['nom']);
    	$prenom = htmlspecialchars($_POST['prenom']);
    	$commentaire = htmlspecialchars($_POST['commentaire']);
     
     
    $requete = $bdd->prepare('INSERT INTO essai_commentaire(nom, prenom,commentaire) VALUES(?,?,?)');// insertion des donnees dans la base de donnes
    $requete->execute(array($nom,$prenom,$commentaire)); // execution de la requete preparer
    }
    $requete = $bdd-> query('SELECT nom,prenom,commentaire FROM essai_commentaire');
     
    	while ($donnees = $requete->fetch()){
    				echo '<table><tr><td>'.'commentaire de '.$donnees['nom'].'</td>'.' '.'<td>'.$donnees['prenom'].'</td></tr>'.'<tr><td>'.$donnees['commentaire'].'</td></tr>';
    			}
    			{
    				echo '</table>';
    			}
     $requete->closecursor();
     
    ?>
    <!doctype html>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<link rel="stylesheet" type="text/css" href="Design.css">
    	</head>
    	<body>
     
    		<section class="zoneR">
    			<form method="post" action="index.php">
    				<fieldset>
    					<legend>Inscrivez un commentaire : </legend>
    						<label>Nom</label><br><input type="text" name="nom" size="40"/><br>
    						<label>Prenom</label><br><input type="text" name="prenom" size="40"/><br>
    						<label>Commentaire: </label><br><textarea name="Commentaire" size="80"></textarea> <br>
    						<button type="submit">Envoyer</button><button type="reset" name="renitialiser">Renitialiser</button>
    				</fieldset>
    			</form>
    		</section>
    	</body>
     
    	<footer>
    	</footer>
    </html>
    en image sa donne ca :

    Nom : Screenshot_2019-01-15 Screenshot.png
Affichages : 107
Taille : 9,7 Ko

    le but reste le meme c'est dafficher les commentaires sous le tableau.

  8. #8
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Problème résolu il s'agissait d'un problème de majuscule a "commentaire" ce qui a déjoué la requête. Merci pour l'aide

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Attention, tu ne dois rien mettre avant la balise html sauf le doctype. Là tu as deux balises html, met le tableau dans le body du second et supprime le premier.

    A+.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécution d'une requête à partir d'un shell
    Par Spyco dans le forum Oracle
    Réponses: 3
    Dernier message: 15/03/2006, 10h58
  2. [MySQL] Message d'erreur à l'exécution d'une requête
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 28/02/2006, 14h06
  3. Réponses: 1
    Dernier message: 05/12/2005, 23h24
  4. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11
  5. Affichage du temps d'exécution d'une requête
    Par milka dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/03/2004, 17h48

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