Urgent :enregistrer un input couleur dans mysql et afficher le

Signaler
Messages postés
4
Date d'inscription
mercredi 22 juillet 2015
Statut
Membre
Dernière intervention
12 août 2015
-
Messages postés
4
Date d'inscription
mercredi 22 juillet 2015
Statut
Membre
Dernière intervention
12 août 2015
-
Bonjour,
les utilisateurs doivent remplir chaque case d'un tableau par 3 couleurs ,après le choix des couleurs ,leur choix s'nregistre et s'affiche dans le tableau .j'ai mis ces 2 codes,mais ils ne marchent plus .d'autre part comment peut on choisir le type de données de colonnes dans php myadmin ..tous les types ne permattent pas d'afficher le couleur ==> affiche un texte #f000 ou un numero etc
  <form action="surveillance_post.php" method="post">//page d'enregistement
        <p>
        <label for="a">a</label> : <input type="color" name="a" id="a" /><br />    
     <input type="submit" value="Envoyer" />
 </p>
    </form>
 

<?php
// Connexion à la base de données
try
{
 $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

// Récupération des 10 derniers messages
$reponse = $bdd->query('SELECT a, message FROM surveillance');

// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
       while ($donnees = $reponse->fetch())
{
 echo '  ($donnees['a']) ';//c'est le nom de la colonne enregistré dans la table surveillance 
}

$reponse->closeCursor();

?>
    </body>
</html>
//et ici la page d'enregistrement des information entrés 
?php
// Connexion à la base de données
try
{
 $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO surveillance (a) VALUES(?)');
$req->execute(array($_POST['a']);

// Redirection du visiteur vers la page du principale
header('Location: surveillance.php');
?>



Merci d'avance pour votre aide


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.

2 réponses

Messages postés
33136
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 juillet 2021
351
Bonjour,

comment peut on choisir le type de données de colonnes dans php myadmin ..tous les types ne permattent pas d'afficher le couleur ==> affiche un texte #f000 ou un numero etc

Tu prends un VARCHAR ... car la couleur se traduit par un code héxadécimal de la forme "#FF00CC"


Pour ce qui est de l'appel à ton code PHP ... si il se trouve dans la même page que ton formulaire.. il faut mettre l'attribut ACTION à vide :
 <form action="" method="post">//page d'enregistement


De plus.. par "convention" .. on met le code PHP ... AU DESSUS .. du code HTML.

Voici en gros comment, en mettant tout sur la même page (hormis la connexion qu'il est préférable de mettre dans un fichier externe qu'on inclus lorsqu'on en a besoin...)

<?php
/* Page cnxBDD.php */

//------------------------------------------------------//
// Connexion à la base de données
//------------------------------------------------------//
try{
 $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}catch(Exception $e){
  die('Erreur : '.$e->getMessage());
}




<?php /* Page surveillance.php */

//------------------------------------------------------//
//Connexion à la BDD (import du fichier de connexion)
//------------------------------------------------------//
require_once 'cnxBDD.php';

//------------------------------------------------------//
// Récupération "propre" des variables POST
//------------------------------------------------------//

$a = !empty($_POST['a'])?$_POST['a'] : NULL;

//------------------------------------------------------//
//traitement du submit
//------------------------------------------------------//
if($a){
  // Insertion du message à l'aide d'une requête préparée
  try{
   $sql = "INSERT INTO surveillance (a) VALUES(:a)";
    $params = array(":a"=>$a);
    $req = $bdd->prepare($sql);
    $req->execute($params);
  }catch(Exception $e){
    echo 'Erreur : '.$e->getMessage();
  }
}

//------------------------------------------------------//
// Récupération des 10 derniers messages
//------------------------------------------------------//
try{
  $sql = "SELECT a, message FROM surveillance";
  $prepare = $bdd->prepare($sql);
  $prepare->execute();
  $arrayMessages = $prepare->fetchAll(); //on stocke le résultat de la requete dans un array !
}catch(Exception $e){
    echo 'Erreur : '.$e->getMessage();
}

//-----  FIN du code PHP ----------------//
?>
<!-- Ensuite tu mets ton code html ....-->
<html>
<head>
<!-- etc ... -->


<!-- Puis ton formulaire :  -->
  <form action="" method="post">//page d'enregistement
    <p>
      <label for="a">a</label> : <input type="color" name="a" id="a" /><br />    
      <input type="submit" value="Envoyer" />
   </p>
  </form>
 
 <?php
 // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
  foreach( $arrayMessages as $msg){
    echo $msg['a'];//c'est le nom de la colonne enregistré dans la table surveillance 
  } 
 ?>

  </body>
</html>







Cordialement,
Jordane
Messages postés
4
Date d'inscription
mercredi 22 juillet 2015
Statut
Membre
Dernière intervention
12 août 2015

merci bcp et désolé pour le dérangement .