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 :

PHP-MySQL: Insertion de donnée dans une table vide


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut PHP-MySQL: Insertion de donnée dans une table vide
    Bonjour

    J'ai rédigé un script php (à partit du tutoriel sur un "minichat") pour l'insertion de message dans une base de données. Mon script marche uniquement lorsqu'il y a préalablement un message dans ma table "minichat".

    J'ai géré la non insertion des doublons pour un même utilisateur. J'ai déjà procédé à des vérifications de mon code et d'autres recherches. Mais je n'arrive pas à résoudre ce problème.

    Je fournis le code entier du fichier minichat.php
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    	  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
       <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
         <!-- link rel="stylesheet" type="text/css" href="style_div.css"/> -->
        <title>Minichat </title>
        <style type="text/css">
       body
       {
    	background-color: gray;
    	text-align :center;
       }
       p
      {
            background-color:green;
    	text-align :center;
      }
      </style>
      </head>
     <!-- 1) Création du formulaire :  -->
     <body>
    	<h3> Espace de communication instantanné </h3>  
    	<form action="minichat.php" method="post">
    	   <fieldset>
    		 <legend>Formulaire pour le livre dor </legend>
    		<label for="pseudo"> Pseudo </label>: 
    		<input type="text" id="pseudo" name="pseudo" size="10" maxlength="15" />  
    		<br /><br />
    		<label for="message"> Message </label>: 
    		<textarea rows="7" cols="35" id="message" size="200" name="message" maxlength="255"> 
    		</textarea>
    		<br />
    		<input type="submit" value="Envoyer" />
    		</fieldset>
    		</form>
      		<p class="page">
    	<?php
    		/* Connexion à MySQL  */
     
    	     /* 2) Enregistrement d'un message envoyé :  // Si les variables existent */
    	if(isset($_POST['pseudo']) AND isset($_POST['message']))
    	{
            	if (($pseudo != NULL AND $message != NULL)
    						AND ($doublon['pseudo'] != $pseudo OR $doublon['message'] != $message))
    	       {
    			// et qu'on a quelque chose à enregistrer	alors on se connecte à MySQL		
    	mysql_connect("localhost", "usernonroot", "passwdfordb");
    	mysql_select_db("dbname");
    	$pseudo = $_POST['pseudo'];
    	$message = $_POST['message'];
    	$message = nl2br($message);
    	$old_message = mysql_query("SELECT pseudo, message FROM minichat ORDER BY id DESC LIMIT 0, 1");
    	while ($doublon = mysql_fetch_array($old_message))
    	// Ecriture du message si, les champs ne sont ni vides ni des doublons
    	mysql_query("INSERT INTO minichat (pseudo, message) VALUES ('$pseudo', '$message')") 												or die('Problème de connexion à la base' . mysql_error());
    	echo '<p><strong> Un message a été ajouté à la table ! </strong></p>'
              }
      }
    	// Comptage des messages : 
    	mysql_connect("localhost", "usernonroot", "passwdfordb");
    	mysql_select_db("dbname");
    	$message_number = mysql_query("SELECT COUNT(*) As nbr_msg FROM minichat ");
    	$messages = mysql_fetch_array($message_number);
     
    	// Fermeture de la connexion à MySQL
    	mysql_close();	
    	?>
    	<p><strong> Il y a <?php echo $messages['nbr_msg']; ?> dans la base de données </strong></p>
    	<br />
    <?php
          /* 3) Lecture dans une table pour l'affichage des messages : */
    	mysql_connect("localhost", "usernonroot", "passwdfordb");
    	mysql_select_db("dbname");	
    	$req = mysql_query("SELECT pseudo, message FROM minichat ORDER BY id DESC LIMIT 0, 10") or die('Problème d\'accèse aux données' . mysql_error());
    	mysql_close();
    	while($messages = mysql_fetch_array($req))
    	{
    ?>
      <p>
    	<strong>
    	<?php echo $messages['pseudo']; ?> 
    	</strong>  a dit :  
    	<?php echo $messages['message']; ?>
     </p>
    <?php
    	}
    ?>				
      </body>
    </html>
    Merci pour la contribution de chacun.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Je n'ai pas épluché le code, mais mettre ces lignes une seule fois dans la page est suffisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	mysql_connect("localhost", "usernonroot", "passwdfordb");
    	mysql_select_db("dbname");

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Bonjour,

    Il manque un point virgule ligne 58

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<p><strong> Un message a été ajouté à la table ! </strong></p>';
    de plus le code suivant suivant ne sert à rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      if(isset($_POST['pseudo']) AND isset($_POST['message']))
            {
                if (($pseudo != NULL AND $message != NULL)
                    AND ($doublon['pseudo'] != $pseudo OR $doublon['message'] != $message))
                {
    Etant donnée que tu ne définis pas las variables $pseudo et $message, ils seront dans ce cas à NULL.

    J'imagine que tu penses, que comme tu as déjà envoyer les infos, les variables sont instancié, mais ce n'est pas le cas, a chaque fois que tu clic sur ton bouton les variables sont vide, donc NULL

    Préfère également le && a AND et le || a OR

    Pour garder des infos d'une page à l'autres je te conseilles de te diriger vers les variables de sessions.

    Bon courage.

    MaitrePylos

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut PHP-MySQL: Insertion de donnée dans une table vide- Le problème persisite.
    Bonjour,

    Merci pour votre indication. En fait j'ai l'impression que gérer ce problème de doublon est plus compliqué que je ne m'y attendais. J'ai utilisé les variables de session. J'ai veillé à définir les variables $pseudo et $message avant tout traitement(Je ne sais pas si la manière de faire est bonne c'est à dire garder $_POST['pseudo'] alors que j'ai créée une session ?) .

    Toujours est-il que je n'arrive pas obtenir ce que je veux(En rechargeant la page que le dernier message ne soit pas dupliqué et/ ou que le même utilisateur ne stocke deux fois le même message).Voici en effet un résultat de l'éxécution de mon script: Tout est OK sauf la résolution des doublons et insertion de message vide :
    messageMinichat
    C'est pourtant ce que je traite dans ma condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (($pseudo != NULL && $message != NULL) && ($doublon['pseudo'] != $pseudo || $doublon['message'] != $message))
    Voici le code retouché :
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    <?php
    	// Démarrage de la sesion : 
    	session_start();
    	$_SESSION['pseudo'] = $_POST['pseudo'];
    	// $_SESSION['message'] = $_POST['message'];	
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    					  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    	<!-- link rel="stylesheet" type="text/css" href="style_div.css"/> -->
    	<title>Minichat </title>
    	<style type="text/css">
    	body
    	{
    		background-color: gray;
    		text-align :center;
    	}
    	p
    	{
    		background-color:green;
    		text-align :center;
    	}
    	</style>
    	</head>
    	<!-- 1) Création du formulaire :  -->
    	<body>
    	<h3> Espace de communication instantanné </h3>  
    	<form action="minichat.php" method="post">
    		<fieldset>
    			<legend>Formulaire pour le minichat </legend>
    			<label for="pseudo"> Pseudo </label>: 
    			<!-- <input type="text" name="pseudo" value="?php echo $_POST['pseudo']; ?>" /> -->
    		       <input type="text" id="pseudo" name="pseudo" value="<?php echo $_SESSION['pseudo']; ?>" />
    			<br /><br />
    			<label for="message"> Message </label>: 
    			<textarea rows="7" cols="35" id="message" size="200" name="message" maxlength="255"> 
    			</textarea>
    			<br />
    			<input type="submit" value="Envoyer" />
    		</fieldset>
    	</form>
    	<p class="page">
    	<?php
    		mysql_connect("localhost", "usernonroot", "passwdfordb");		
                    /* Connexion à MySQL  */
    		mysql_select_db("dbname");
    		if(isset($_POST['pseudo']) && isset($_POST['message']))
    		{	// Utilisation des fonctions PHP pour la sécurité			
    		$pseudo = $_POST['pseudo'];
    		$message = $_POST['message'];
    		$message = nl2br($message);
    		$old_message = mysql_query("SELECT pseudo, message FROM minichat ORDER BY id DESC LIMIT 0, 1");
    		while ($doublon = mysql_fetch_array($old_message))
    		{
    			/* 2) Enregistrement d'un message envoyé :  // Si les variables existent */
    			// Vérification du dernier message pour eviter un doublon
    			if (($pseudo != NULL AND $message != NULL)
    					&& ($doublon['pseudo'] != $pseudo || $doublon['message'] != $message))
    			{
    				// Ecriture du message si, les champs ne sont ni vides ni des doublons
    				mysql_query("INSERT INTO minichat (pseudo, message) VALUES ('$pseudo', '$message')") or die('Problème de connexion à la base' . mysql_error());
    				echo '<p><strong> Un message a été ajouté à la table ! </strong></p>';
    			}
    		}
    	}	
    	// Comptage des messages : 
    		$message_number = mysql_query("SELECT COUNT(*) As nbr_msg FROM minichat ");
    		$messages = mysql_fetch_array($message_number);
     
    	?>
    	<p><strong> Il y a <?php echo $messages['nbr_msg']; ?> dans la base de données </strong></p>
    	<br />
    	<?php
    		/* 3) Lecture dans une table pour l'affichage des messages : */
    		$req = mysql_query("SELECT pseudo, message FROM minichat ORDER BY id DESC LIMIT 0, 10") 	or die('Problème d\'accèse aux données' . mysql_error());
    		mysql_close();
    		while($messages = mysql_fetch_array($req))
    		{
    	?>
    	<p>
    	<strong>
    		<?php echo $messages['pseudo']; ?> 
    	</strong>  a dit :  
    		<?php echo $messages['message']; ?>
    	</p>
    	<?php
    		}
    	?>				
    	</body>
    </html>
    Pensez vous que mon code comme tel est adapté pour ce que je veux faire?

    Merci pour la disponibilité que vous accordez à la résolution de mon problème.

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Citation Envoyé par jrosenzw Voir le message
    C'est pourtant ce que je traite dans ma condition :
    Pas vraiment, la gestion des doublons dans votre cas est quelque chose d'assez difficile à gérer, voir impossible, mais on va essayer malgré le peu de probabilité que cela fonctionne correctement.

    Alors imaginons les trois messages suivant

    MaitrePylos : je suis beau

    MaitrePylos : je suis vraiment beau

    MaitrePylos : je suis beau

    Avec votre requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $old_message = mysql_query("SELECT pseudo, message FROM minichat ORDER BY id DESC LIMIT 0, 1");
    Vous ne traiterez que le dernier message, donc si je remet 'je suis vraiment beau', on obtiendra un doublon.

    De même si vous écrivez ceci directement 'je suis beau.', cela passera, puisque j'ai ajouter un nouveau caractère qui est le point.

    Deuxième point :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (($pseudo != NULL AND $message != NULL)
    les variables seront toujours différent de NULL, puisque vous ne traitez pas les variables, en effet puisque vous faites un submit de votre formulaire, dans le cas où le user(par exemple), ne serais pas rempli, vous récupérez un champ vide '""' , mais pas NULL, dans ce cas il faut traiter les variables avant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     if(isset($_POST['pseudo']) && isset($_POST['message']))
            {	// Utilisation des fonctions PHP pour la sécurité
     
                ($_POST['pseudo']!="")?$pseudo = $_POST['pseudo']:$pseudo = NULL;
                ($_POST['message']!="")?$message = nl2br($_POST['message']):$message = NULL;
               // $pseudo = $_POST['pseudo'];
                //$message = $_POST['message'];
                //$message = nl2br($message);
                $old_message = mysql_query("SELECT pseudo, message FROM minichat ORDER BY id DESC LIMIT 0, 1");

    ensuite, pour être sur que c'est bien le même auteur et le même message, il faut faire ceci.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (($pseudo != NULL AND $message != NULL)
    					&& ($doublon['pseudo'] != $pseudo && $doublon['message'] != $message))
    Avec c'est quelques éléments vous pouvez déjà avancer .

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut PHP-MySQL: Insertion de données dans une table vide
    Bonjour à tous.

    (Merci à MaitrePylos)

    Vos indications m'ont clarifié bien des détails. Cependant il persiste deux petits problèmes :
    1) Si la table est vide aucun nouvel enregistrement n'est possible.(J'arrive à contourner ce problème par le fait que j'ai un autre script PHP non optimisé à travers lequel j'accède à la même table. Mais avec la version finale donnée ci-dessous je n'y parviens pas; si je vide la dite table à travers PHPMYADMIN...)
    2) Si le champs pseudo est non nul, il arrive qu'un message vide puisse être envoyé
    J'ai effectué un test avec la fonction empty() tout au début de mon script. Mais ça ne change pas le résultat : Exemple de résultat.

    Le code complet est indiqué ci-dessous:
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    			  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <!-- link rel="stylesheet" type="text/css" href="style_div.css"/> -->
    <title>Ma page de minichat </title>
    <style type="text/css">
    	body
    	{
    		background-color: white;
    		text-align :center;
    	}
    	p
    	{
    		background-color:inherit;
    		text-align :center;
    	}
    </style>
    </head>
    <!-- 1) Création du formulaire :  -->
    <body>
    <h3> Chat en mini chat </h3>  
    <form action="minichat.php" method="post">
    <fieldset>
    	<legend>Formulaire pour le minichat </legend>
    	<label for="pseudo"> Pseudo </label>: 
    	<!-- <input type="text" name="pseudo" value="?php echo $_POST['pseudo']; ?>" /> -->
    	 <!-- <input type="text" id="pseudo" name="pseudo" value="?php echo $_SESSION['pseudo']; ?>" /> -->
    	<input type="text" id="pseudo" name="pseudo" size="10" maxlength="15" />  
    	<br /><br />
    	<label for="message"> Message </label>: 
    	<textarea rows="7" cols="35" id="message" size="200" name="message" maxlength="255"> 
    	</textarea>
    	<br />
    	<input type="submit" value="Envoyer" />
    </fieldset>
    </form>
    <p class="page">
    <?php
    mysql_connect("localhost", "usernonroot", "passwdfordb");		
    /* Connexion à MySQL  */
    mysql_select_db("dbname");
    if(isset($_POST['pseudo']) && isset($_POST['message'])) 
    {					
    if((!empty($_POST['pseudo'])) || (!empty($_POST['message'])))
    {
    	($_POST['pseudo'])!=""? $pseudo = $_POST['pseudo']:$pseudo = NULL;
    	($_POST['message'])!=""? $message = nl2br($_POST['message']):$message = NULL;
    	/*$old_message = mysql_query("SELECT pseudo, 
    	message FROM minichat ORDER BY id DESC LIMIT 0, 1");*/
    	$old_message = mysql_query("SELECT pseudo, message FROM minichat ");
    	while ($doublon = mysql_fetch_array($old_message))
    	{
    		/* 2) Enregistrement d'un message envoyé :  // Si les variables existent */
    		// Vérification du dernier message pour eviter un doublon
    		   if (($pseudo != NULL && $message != NULL)
    				&& ($doublon['pseudo'] != $pseudo && $doublon['message'] != $message))
    		  {
    				// Ecriture du message si, les champs ne sont ni vides ni des doublons
    			 mysql_query("INSERT INTO minichat (pseudo, message) VALUES ('$pseudo',
    			 '$message')") or die('Problème de connexion à la base' . mysql_error());
    		 }
    	}
    	echo '<p><strong> Un message a été ajouté à la table ! </strong></p>';
    }
    else
    	echo '<p><strong> Aucuns message ajouté à la table !
    						 Vérifiez les champs nuls </strong></p>';
    }	
    // Comptage des messages : 
    	$message_number = mysql_query("SELECT COUNT(*) As nbr_msg FROM minichat ");
    	$messages = mysql_fetch_array($message_number);
     
    	// Fermeture de la connexion à MySQL
    	// mysql_close();	
    	?>
    	<p><strong> Il y a <?php echo $messages['nbr_msg']; ?> dans la base de données </strong></p>
    	<br />
    	<?php
    		/* 3) Lecture dans la table pour l'affichage des messages : */
    		$req = mysql_query("SELECT pseudo, message FROM minichat ORDER BY id DESC LIMIT 0, 10") 
    					or die('Problème d\'accèse aux données' . mysql_error());
    		mysql_close();
    		while($messages = mysql_fetch_array($req))
    		{
    	?>
    	<p>
    		<strong>
    			<?php echo $messages['pseudo']; ?> 
    		</strong>  a dit :  
    			<?php echo $messages['message']; ?>
    	</p>
    	<?php
    		}
    	?>				
    </body>
    </html>
    Merci pour votre disponibilité de même qu'à toutes les têtes bien pensantes qui s'investissant à communiquer leur savoir sans condition matérielle.

  7. #7
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Bonsoir ! Pour moi c'est logique vu que ta condition test : soit login n'est pas vide soit message n'est pas vide, donc si login n'est pas vide on enregistre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if((!empty($_POST['pseudo'])) || (!empty($_POST['message'])))

    Ca doit être ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if((!empty($_POST['pseudo'])) && (!empty($_POST['message'])))
    Ainsi les deux ne doivent pas être vide !

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut PHP-MySQL: Insertion de donnée dans une table vide - dernières tentatives
    Merci Obito

    Mais même en corrigeant la condition, le problème persiste. C'est à bizarre! C'est peut être ma dernière tentative de recherche de solution à ce problème . Je crois que vais avancer dans l'apprentissage de PHP. Quand je découvrirai les rouages du langage la solution me viendra probablement par expérience.

    extrait du 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
    28
    29
    30
    31
    32
    33
    34
    35
    ..
    <?php
    	mysql_connect("localhost", "usernonroot", "paswdfordb");		
    	/* Connexion à MySQL  */
    	mysql_select_db("dbname");
    	if((isset($_POST['pseudo']) && isset($_POST['message'])) && 
    (!empty($_POST['pseudo'])) && (!empty($_POST['message']))) 
    	{					
    					
    	// Utilisation des fonctions PHP pour la sécurité			
    	($_POST['pseudo']!="")? $pseudo = $_POST['pseudo']:$pseudo = NULL;
    	($_POST['message']!="")? $message = nl2br($_POST['message']):$message = NULL;
    $message = nl2br($message);
    $old_message = mysql_query("SELECT pseudo, message FROM minichat ");
    while ($doublon = mysql_fetch_array($old_message))
    {
    /* 2) Enregistrement d'un message envoyé :  // Si les variables existent */
    // Vérification du dernier message pour eviter un doublon
       if (($pseudo != NULL && $message != NULL) && ($doublon['pseudo'] != $pseudo && $doublon['message'] != $message))
     {
    // Ecriture du message si, les champs ne sont ni vides ni des doublons
    										mysql_query("INSERT INTO minichat (pseudo, message) VALUES ('$pseudo', '$message')") or die('Problème de connexion à la base' . mysql_error());
    	echo '<p><strong> Un message a été ajouté à la table ! </strong></p>';
    	 }
       }
    	
    }	
    // Comptage des messages : 
    	$message_number = mysql_query("SELECT COUNT(*) As nbr_msg FROM minichat ");
    	$messages = mysql_fetch_array($message_number);
    					
    
    ?>
    ...
    Affichage obtenu : PseudoNonVideMaisMessageVide
    Contenu minchat Sous PHPMYADMIN

    Merci à tous ceux qui bien voulu m'aider et ceux qui seraient prêts à un dernier effort pour que mon code produise le résultat attendu.

Discussions similaires

  1. Insertion des données dans une table mysql
    Par joulive dans le forum ASP
    Réponses: 6
    Dernier message: 15/04/2010, 20h55
  2. [MySQL] Insertion de donnée dans une table
    Par cheik_koita dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/04/2009, 00h16
  3. insertion de donnée dans une table (2 bd)
    Par robert_trudel dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/01/2007, 17h41
  4. Réponses: 5
    Dernier message: 26/01/2007, 08h11
  5. Réponses: 26
    Dernier message: 01/07/2006, 13h14

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