En continuant mon chat php

voila j'ai continué un peu mon forum(merci kij_82) et ici je suis entrain d'essayer qu'a l'affichage ca change de couleur selon le sexe sauvegarder dans ma base et ca sauvegarde bien le sexe mais il n'affiche pas a la couleur.
si quelqu'un peu m'aider. un enorme merci
<?php
$connexion = mysql_connect("localhost","root","") OR die("pb connexion mysql");
mysql_select_db("rencontre",$connexion) OR die("pb selection base");
$req = "SELECT * FROM chat ORDER BY ID DESC LIMIT 0,40";
$result = mysql_query($req, $connexion);

$req2 = "SELECT sexe FROM chat ORDER BY ID DESC LIMIT 0,40";
$sexe = mysql_query($req2, $connexion);
$sexe2 = mysql_fetch_array($sexe);
$message='message';

if($sexe2='Masuculin')
{$message='<FONT COLOR="#FF0000">';
}
while ($val = mysql_fetch_array($result))
{
echo "<b>". $val['pseudo']."</b> : ".$val['message']."<BR>";

echo "$sexe2 <br>";
}
?>

34 réponses

Résumé de la discussion

Affichage du pseudonyme et du message en fonction du sexe enregistré dans la base pose problème, les messages s'affichent sans couleur alors que le sexe est bien sauvegardé. Des corrections mentionnées dans le code PHP incluent d'utiliser la comparaison '==' au lieu de l'affectation '=' dans les tests, et d'appliquer la couleur conditionnellement pour chaque ligne du résultat. D'autres propositions consistent à récupérer la valeur 'sexe' directement lors du parcours des résultats (val['sexe']), puis à choisir le code couleur avant d'afficher chaque message. En pratique, l'utilisation d'un seul foreach sur $result et l'application d'un balisage couleur conditionnel par ligne évite les erreurs et assure un affichage clair et cohérent.

Bobot (l’IA à votre service)
  1. Modérateur
    C'est pas plutôt:

    if($sexe2=='Masuculin') (faire attention entre comparaison et affectation)....
    1. ca change rien
      par contre j'ai remarqué quand changeant la ligne
      echo "<b>". $val['pseudo']."</b> : ".$val['message']."<BR>";
      par
      echo "<b>". $val['pseudo']."</b> : ".$val[$message]."<BR>";
      les message apparraissent en rouge mais tout les message (meme si le sexe et feminin
      1. Contributeur
        Tu connais pas ?!!

        olala le gars !! bouh y connais pas c'que ca veut dire !!!

        moi non plus... :)
        1. bon desoler tite faute de frappe (on va dire ca)
          mais ca ne s'affiche pas en couleur. :-(
          j'ai bien mis les deux egales pourtant
          et $sexe2 me retourne array lorsque je fait echo "$sexe2"
          1. Contributeur
            Voui, il faut faire :
            if( $sexe2['sexe'] == "masuculin" ) {
              ..
            }
            
            ;)
            
            1. Contributeur
              Tu as quoi comme table ?
              Tu enregistre ou le sexe des personne de ton chat ?
              1. dans la table chat
                mais ici mais msg sont en rouge (les pseudo en noir) donc impecable sauf lorsque c'est des femme il faudrais que ca soit en noir du fait que j'ai rien definie.
                je vais coler tout mon code comme ca vous verrez a quoi ca ressemble (dans la table chat j'ai id pseudo msg et sexe)
                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
                <html>
                <head>
                <title>Bienvenu dans le chat</title>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                </head>
                <body>
                <?php
                if (isset($_POST['pseudo']) && isset($_POST['message']))
                {
                if ($_POST['pseudo'] !=null && $_POST['message'] !=null)
                {
                $connexion=mysql_connect("localhost","root","");
                $testbase=mysql_select_db("rencontre");
                $pseudo=htmlentities($_POST['pseudo'],ENT_QUOTES);
                $msg=htmlentities($_POST['message'],ENT_QUOTES);
                $sexe=htmlentities($_POST['cmbsexe']);
                $req="INSERT INTO chat (pseudo,message,sexe) VALUES('$pseudo','$msg','$sexe')";
                $result=mysql_query($req);
                mysql_close();
                }
                else
                {
                echo "PSEUDO manquant ou probléme d'ajout";
                }
                }
                ?>
                <form name="form1" id="form1" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
                <table width="80%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                <td width="18%" height="24"> PSEUDO </td>
                <td widht="82%">
                <input name="pseudo" type="text" id="pseudo" /></td>
                </tr>
                <tr>
                <td> Message </td>
                <td><input name="message" type="text" id="message" size="100" /></td>
                </tr>
                <tr>
                <td>Sexe:</td>
                <td><select name="cmbsexe" id="cmbsexe">
                <option>Masculin</option>
                <option selected>Femninin</option>
                <option>Anonyme</option>
                </select></td>
                </tr>
                </table>
                <p>
                <input type="submit" name="cmdok" value="Ajouter?"/>
                </p>
                </form>
                <?php
                $connexion = mysql_connect("localhost","root","") OR die("pb connexion mysql");
                mysql_select_db("rencontre",$connexion) OR die("pb selection base");
                $req = "SELECT * FROM chat ORDER BY ID DESC LIMIT 0,40";
                $result = mysql_query($req, $connexion);

                $req2 = "SELECT sexe FROM chat ORDER BY ID DESC LIMIT 0,40";
                $sexe = mysql_query($req2, $connexion);
                $sexe2 = mysql_fetch_array($sexe);
                $message='message';

                if( $sexe2['sexe'] = "Masculin" )
                {$message='<FONT COLOR="#FF0000">';
                }
                while ($val = mysql_fetch_array($result))
                {
                echo "<b>". $val['pseudo']."</b> : ".$message.$val['message']."</font><BR>";
                //echo "<b>". $val['pseudo']."</b> : ".$val[$message]."<BR>";

                echo "$sexe2 <br>";
                }
                ?>

                </body>
                </html>
                1. le probleme je pense vient du fait que tout mes enregistrement se mete en masculin automatiquement
                  1. Contributeur
                    Oui mais tu as refait la même faute !

                    il faut mettre ' == ' et non ' = ' dans :
                    if( $sexe2['sexe'] = "Masculin" )
                    {$message='<FONT COLOR="#FF0000">';
                    } 
                    

                    Sinon ton test est toujours vrai, et donc masculin ou féminin, il te le met en rouge.
                    1. non dans ma base il sont bien feminin mais je vois pas pq il retourne masculin
                      1. Contributeur
                        Bon, donne moi le nom du champ qsui renseigne le sexe dans ta base de donnée.
                        1. un champs sexe de type varchar 10
                          et dans mon formulaire une liste deroulante avec masculin feminin et anonyme
                          1. Contributeur
                            Bon ben met juste :
                            if( $sexe2 == "Masculin" ) {
                            $message = "<FONT COLOR=\"#FF0000\">";
                            }

                            Met il faut mettre les double égal sinon, il se passe la chose suivante :
                            $sexe2 = "Masculin" : tu dit que ta variable $sexe2 vaut "masculin" : ce qui est fait et qui est toujours vrai, donc suite à cela, ton message prend la valeur "<FONT COLOR=\"#FF0000\">" dans tous les cas, ce que tu ne veut pas !
                            1. ok j'ai compris pour les double=; mais bon ca marche pas; je reflechirrais a ca plus demain. j'arrive pas a lui faire comprendre quand l'enregistrement vaut masculine et quand il vaut autre chose
                              MERCI
                              et surement a plus tard ;-)
                              • 1
                              • 2