Urgent :enregistrer un input couleur dans mysql et afficher le
SADIK21
Messages postés4Date d'inscriptionmercredi 22 juillet 2015StatutMembreDernière intervention12 août 2015
-
Modifié par jordane45 le 12/08/2015 à 14:58
SADIK21
Messages postés4Date d'inscriptionmercredi 22 juillet 2015StatutMembreDernière intervention12 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');
?>
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 :
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>