Bonjour, j'aimerais généré un fichier xml avec la date du jour pour chaque validation et certaine information vienne de phpmyadmin voici le code html et php suivi du code xml:
html et php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Description de la conference </title>
<link rel="stylesheet" href="">
</head><body>
<form action="recupdonee.php" method="post" >
<fieldset>
<legend>Description de la conference</legend>
<center><p><label for="Titre">Titre : <input name="Titre" type="text"></label></P>
<p><label for="Sujet">Sujet : <input name="Sujet"type="text"></label></p></center>
</fieldset><fieldset>
<legend>Niveaux</legend>
<center>
<?php
$bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
$req = $bdd-> query ("SELECT * FROM niveau");
while($resultatNiv = $req->fetch())
{
echo "<input type='radio' value='".$resultatNiv['NIVEAU']."' name='niveau'>".$resultatNiv['NIVEAU']."   ";
}
?>
</center></fieldset><fieldset>
<legend>Outils et Technologie Utilise</legend>
<center>
<?php
$bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
$req = $bdd-> query ("SELECT * FROM technologie");
while($resultatTech = $req->fetch())
{
echo "<input type='checkbox' value='".$resultatTech['NOMTECHNO']."' name='niveau'>".$resultatTech['NOMTECHNO']."   ";
}
?>
</center></fieldset><fieldset>
<legend>A destination</legend>
<center>
<?php
$bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
$req = $bdd-> query ("SELECT * FROM metier");
while($resultatMetier = $req->fetch())
{
echo "<input type='checkbox' value='".$resultatMetier['LIBELLEMETIER']."' name='niveau'>".$resultatMetier['LIBELLEMETIER']."   ";
}
?>
</center></fieldset><fieldset>
<legend>Vos Coordonnees</legend>
<center><p><label for="Nom">Nom :<input name="Nom" type="text" </label></P>
<p><label for="Prenom">Prenom :<input name="Prenom" type="text"></label></p>
<p><label for="Mail">Mail :<input name="Mail" type="text"></label></P>
<p><label for="Twitter">Twitter :<input name="Twitter" type="text"></label></p>
<p><label for="Facebook">Facebook :<input name="Facebook" type="text"></label></P>
<p><label for="Entreprise">Entreprise :<input name="Entreprise" type="text"></label></p></center>
</fieldset><fieldset>
<legend>Entreprise</legend>
<center><p><label for="Entreprise_c">Entreprise :<input name="Entreprise_c" type="text"></label>
<input type="radio" name="Microsoft" value="PM" > Partenaire Microsoft<br></P></center>
</fieldset>
<center><input type="Submit" value="Envoyer" name="Envoyer"/>
<input type="reset" value="Annuler">
</center>
</form>
</body>
</html>
xml:
<?php
$today = date("m.d.y");
$Titre = $_POST['Titre'];
$Sujet = $_POST['Sujet'];
$Niveaux = $_POST['Niveaux'];
$Outils_et_techn = $_POST['Outils_et_techn'];
$A_destination = $_POST['A_destination'];
$Preciser = $_POST['Preciser'];
$Nom = $_POST['Nom'];
$Prenom = $_POST['Prenom'];
$Mail = $_POST['Mail'];
$Twitter = $_POST['Twitter'];
$Facebook = $_POST['Facebook'];
$Entreprise = $_POST['Entreprise'];
$Entreprise_c = $_POST['Entreprise_c'];
$Microsoft = $_POST['Microsoft'];
echo $Titre; echo "<br>";
echo $Sujet; echo "<br>";
echo $Niveaux; echo "<br>";
echo $Outils_et_techn; echo "<br>";
echo $A_destination; echo "<br>";
echo $Preciser; echo "<br>";
echo $Nom; echo "<br>";
echo $Prenom; echo "<br>";
echo $Mail; echo "<br>";
echo $Twitter; echo "<br>";
echo $Facebook; echo "<br>";
echo $Entreprise; echo "<br>";
echo $Entreprise_c; echo "<br>";
echo $Microsoft;
$record-fopen("$today, $Titre.xml", "a+");
fwrite($record, "<titre>".$Titre."<Sujet>".$Sujet."<Niveaux>".$Niveaux."<Outils_et_techn".$Outils_et_techn."<A_destination>"
.$A_destination."<Preciser".$Preciser."<Nom>".$Nom."<Prenom>".$Prenom."<Mail>".$Mail."<Twitter>"
.$Twitter."<Facebook>".$Facebook."<Entreprise>".$Entreprise."<Entreprise>".$Entreprise_c
);
fclose($record);
?>
le soucis c'est que je n'y arrive pas affiché les donnée récupéré depuis phpmyadmin
la chose étrange c'est qu'il récupère "a destination" et non les deux autres
je ne trouve pas mon ou mes erreurs
Merci
Cordialement
Par ou commencer...
$bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
ca sert a rien d'initialiser la connexion mysql a chaque requette. fait le une fois tout en haut de ton fichier et re-sert toi du $bdd tout le temps...
$_POST ca n'est que pour récupérer de la donnée envoyé par ton formulaire.
"Preciser" par exemple n'est pas présent dans ton fomulaire... donc pas dans ton $_POST
NOMTECHNO et NIVEAU s'appelle tous les 2 "niveau" (champ name de ton input) alors que toi tu attend un "Niveaux"
<label for="Nom">Nom :<input name="Nom" type="text" </label>
tes inputs sont pas fermés...
ta tripotée de echo dnas ton xml.php ne sert a rien si ce n'est du débug.
$record-fopen("$today, $Titre.xml", "a+");
a transformer en
$record = fopen("$today, $Titre.xml", "a+");
le XML est un langage de balise. comme le HTML, et il y a une règle... rien qu'une seule... toute balise ouverte doit etre fermée et dans le bon ordre. je vois que t'en ferme aucune. ca marcheras jamais ton XML autant faire un fichier txt alors...
bref... un grand coup de relecture ca fait pas de mal
un xml ca s'ecrit comme ca :
<?xml version="1.0" encoding="UTF-8"?>
<data>
<titre>Mon super Titre</titre>
<sujet>Mon Sujet</sujet>
</data>
et surement pas comme ca
<titre>Mon super Titre
<sujet>Mon Sujet
j'arrive a affiché les labels mais sa coince au niveau du php depuis la base de donnée via phpmyadmin
Bonsoir.
j'arrive a affiché les labels mais sa coince au niveau du php depuis la base de donnée via phpmyadmin
PhpMyAdmin n'est rien d'autre qu'une interface visuelle pour gérer les bases de données, lorsque tu exécutes des requêtes SQL via PHP, tu ne passes pas par PhpMyAdmin, ne mélanges donc pas tout si possible.
en faite c'est les checkpoint qui pose problème je sait pas comment faire
De quel checkpoint parles-tu ?
Au passage, tu pourrais par exemple nous dire si tu as apporté les modifications qui t'ont été signalé et si c'est bien le cas, nous montrer ton code actuel.
désolé les checkbox de technologie, niveau et de a destination
voici les codes:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Description de la conference </title>
<link rel="stylesheet" href="">
</head><body>
<form action="recupdonee.php" method="post" >
<fieldset>
<legend>Description de la conference</legend>
<center><p><label for="Titre">Titre : <input name="Titre" type="text"></label></P>
<p><label for="Sujet">Sujet : <input name="Sujet"type="text"></label></p></center>
</fieldset><fieldset>
<legend>Niveaux</legend>
<center>
<?php
$bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
$req = $bdd-> query ("SELECT * FROM niveau");
while($resultatNiv = $req->fetch())
{
echo "<input type='radio' value='".$resultatNiv['NIVEAU']."' name='niveau'>".$resultatNiv['NIVEAU']."   ";
}
?>
</center></fieldset><fieldset>
<legend>Technologie</legend>
<center>
<?php
$bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
$req = $bdd-> query ("SELECT * FROM technologie");
while($resultatTech = $req->fetch())
{
echo "<input type='checkbox' value='".$resultatTech['NOMTECHNO']."' name='technologie'>".$resultatTech['NOMTECHNO']."   ";
}
?>
</center></fieldset><fieldset>
<legend>A destination</legend>
<center>
<?php
$bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
$req = $bdd-> query ("SELECT * FROM metier");
while($resultatMetier = $req->fetch())
{
echo "<input type='checkbox' value='".$resultatMetier['LIBELLEMETIER']."' name='metier'>".$resultatMetier['LIBELLEMETIER']."   ";
}
?>
</center></fieldset><fieldset>
<legend>Vos Coordonnees</legend>
<center><p><label for="Nom">Nom :<input name="Nom" type="text"></label></P>
<p><label for="Prenom">Prenom :<input name="Prenom" type="text"></label></p>
<p><label for="Mail">Mail :<input name="Mail" type="text"></label></P>
<p><label for="Twitter">Twitter :<input name="Twitter" type="text"></label></p>
<p><label for="Facebook">Facebook :<input name="Facebook" type="text"></label></P>
<p><label for="Entreprise">Entreprise :<input name="Entreprise" type="text"></label></p></center>
</fieldset><fieldset>
<legend>Entreprise</legend>
<center><p><label for="Entreprise_c">Entreprise :<input name="Entreprise_c" type="text"></label>
<input type="radio" name="Microsoft" value="PM" > Partenaire Microsoft<br></P></center>
</fieldset>
<center><input type="Submit" value="Envoyer" name="Envoyer"/>
<input type="reset" value="Annuler">
</center>
</form>
</body>
</html>
<?php
$today = date("m.d.y");
$Titre = $_POST['Titre'];
$Sujet = $_POST['Sujet'];
$niveau = $_POST['niveau'];
$technologie = $_POST["technologie"];
$metier = $_POST['metier'];
$Nom = $_POST['Nom'];
$Prenom = $_POST['Prenom'];
$Mail = $_POST['Mail'];
$Twitter = $_POST['Twitter'];
$Facebook = $_POST['Facebook'];
$Entreprise = $_POST['Entreprise'];
$Entreprise_c = $_POST['Entreprise_c'];
$Microsoft = $_POST['Microsoft'];
echo $Titre; echo "<br>";
echo $Sujet; echo "<br>";
echo $niveau; echo "<br>";
echo $technologie; echo "<br>";
echo $metier; echo "<br>";
echo $Nom; echo "<br>";
echo $Prenom; echo "<br>";
echo $Mail; echo "<br>";
echo $Twitter; echo "<br>";
echo $Facebook; echo "<br>";
echo $Entreprise; echo "<br>";
echo $Entreprise_c; echo "<br>";
echo $Microsoft;
$record=fopen("$today, $Titre.xml", "a+");
fwrite($record,
"<Titre>".$Titre."</Titre>",
"<Sujet>".$Sujet."</Sujet>",
"<niveau>".$niveau."</niveau>",
"<technologie>".$technologie."</technologie>",
"<metier>".$metier."</metier>",
"<Nom>".$Nom."</Nom>",
"<Prenom>".$Prenom."</Prenom>",
"<Mail>".$Mail."</Mail>",
"<Twitter>".$Twitter."</Twitter>",
"<Facebook>".$Facebook."</Facebook>",
"<Entreprise>".$Entreprise."</Entreprise>",
"<Entreprise_c>".$Entreprise_c."</Entreprise_c>",
);
fclose($record);
?>
Première chose, tu n'as aucunement tenu compte de la remarque concernant l'inaitialisation de la connexion avec la base de données avec PDO, il te faut par exemple faire :
<?php
$bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
?>
// du code HTML ...
<?php
$reqTechno = $bdd->query("SELECT * FROM technologie"); // une requête SQL
while ($resultTechno = $reqTechno->fetch()) {
// etc ...
$reqMetier = $bdd->query("SELECT * FROM metier"); // une autre requête SQL
while ($resultMetier = $reqMetier->fetch()) {
// etc ...
Sauf que si tu veux récupérer plusieurs enregistrements, utilises plutôt fetchAll
au lieu de fetch
.
Ensuite, tu devrais remplacer  
par
, soit dans ton code
après tes inputs de type checkbox.
echo "<input type='checkbox' value='".$resultatTech['NOMTECHNO']."' name='technologie'>"
ici tu utilise des checkbox, ce qui sous entend que tu peux en cocher plusieurs. donc il te faut envoyer un tableau d'element coché
echo "<input type='checkbox' value='".$resultatTech['NOMTECHNO']."' name='technologies[]'>"
<input type="radio" name="Microsoft" value="PM" > Partenaire Microsoft
ici tu laisse pas le choix ? si tu veux en faire une case à cocher non obligatoire, il te faut une checkbox
<input type="checkbox" name="partner" value="microsoft" > Partenaire Microsoft
commente tout ton bloc de
/*echo $Titre; echo "<br>";
echo $Sujet; echo "<br>";
echo $niveau; echo "<br>";
echo $technologie; echo "<br>";
echo $metier; echo "<br>";
echo $Nom; echo "<br>";
echo $Prenom; echo "<br>";
echo $Mail; echo "<br>";
echo $Twitter; echo "<br>";
echo $Facebook; echo "<br>";
echo $Entreprise; echo "<br>";
echo $Entreprise_c; echo "<br>";
echo $Microsoft;*/
ensuite ton write est pas bon du tout...
fwrite($record,
'<?xml version="1.0" encoding="UTF-8"?>'.
"<data>".
"<Titre>$Titre</Titre>".
"<Sujet>$Sujet</Sujet>".
"<niveau>$niveau</niveau>".
"<technologie>$technologie</technologie>".
"<metier>$metier</metier>".
"</data>"
);
et reessaie de debugger petit a petit