Urgent :enregistrer un input couleur dans mysql et afficher le

SADIK21 Messages postés 4 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 12 août 2015 - Modifié par jordane45 le 12/08/2015 à 14:58
SADIK21 Messages postés 4 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 12 août 2015 - 12 août 2015 à 18:17
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

jordane45 Messages postés 38182 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 mai 2024 344
Modifié par jordane45 le 12/08/2015 à 15:16
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
0
SADIK21 Messages postés 4 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 12 août 2015
12 août 2015 à 18:17
merci bcp et désolé pour le dérangement .
0
Rejoignez-nous