Vous n'êtes pas identifié(e).
Bonjour à tous, alors voilà je débute en PHP et malgré avoir mangé pas mal de "cours" sur le net j'ai un peu de mal avec l'envoi des données....
Alors voici mon code coté "récolte des données" :
<?php
$host = "xxx.mysql.db";
$user = "xxxx";
$pass = "xxxx";
$bdd = "xxxx";
// connexion
$cnx = mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
$db = mysql_select_db("$bdd") or die("Impossible de se connecter");
if (mysql_connect ($host,$user,$pass))
{
echo 'Connexion réussie'; echo '<br>';
}
else
{
echo 'Connexion impossible...'.mysql_error(); echo '<br>';
}
$requete2="SELECT id_eta,etat FROM `ny6dh_man_etat`";
$result2=mysql_query($requete2);
while ($ligne=mysql_fetch_array($result2))
{
$chaine .= '<OPTION NAME= "id_etat" VALUE="'.$ligne["id_eta"].'">'.$ligne["etat"].'</OPTION>';
}
$requete2="SELECT id_grp,groupe FROM `ny6dh_man_groupe`";
$result2=mysql_query($requete2);
while ($ligne=mysql_fetch_array($result2))
{
$chaine2 .= '<OPTION NAME= "id_groupe" VALUE="'.$ligne["id_grp"].'">'.$ligne["groupe"].'</OPTION>';
}
?>
</div><!-- /.box-header -->
<div class="box-body">
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>Genre</th>
<th>Nom</th>
<th>Prénom</th>
<th>Age</th>
<th>Ville</th>
<th>Enregistré</th>
<th>Groupe</th>
</tr>
</thead> <tbody>
<?php
$sql = "SELECT id,id_etat,genre,nom,prenom,id_eta,etat,age,tel1,ville,mod_souhaite1,id_grp,groupe,id_groupe
FROM `ny6dh_man_eleve` A, `ny6dh_man_groupe` B , `ny6dh_man_etat` C
WHERE A.id_etat = 0
AND A.mod_souhaite1 = 1
AND B.id_grp = A.id_groupe
AND A.id_etat = C.id_eta";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$id .= '. $row["id"].';
echo " <tr><td>". $row["genre"]."</td>
<td>". $row["nom"]."</td>
<td>". $row["prenom"]."</td>
<td>". $row["age"]."</td>
<td>". $row["ville"]."</td>
<td><form method='post' action='traitement.php'><select name='".$id."' onChange='this.form.submit()' class='form-control'>". $chaine."</select></td>
<td><select name='".$row["id"]."' onChange='this.form.submit()' class='form-control'>".$chaine2."</select></form></td>
</tr> ";
}
} else {
echo "0 results";
}
$conn->close();
?>
Donc comme on peut voir il s'agit d'un tableau dynamique avec deux menus déroulant dynamique et sans bouton valider, lorsque l'on selectionne un choix l'action vers le fichier traitement.php s'effectue....
le fichier traitement.php est comme ceci (je n'effectue pour ce premier test que l'envoi de l'enregistrement) :
<?php
// on se connecte à notre base
$base = mysql_connect ('xxxx.mysql.db', 'xxxx', 'xxxx');
mysql_select_db ('testdevffrtest', $base) ;
?>
<html>
<head>
<title>Modification de l'adresse d'un propriétaire</title>
</head>
<body>
<?php
// on teste si les variables du formulaire sont déclarées
if (isset($_POST["id_etat"]) && isset($_POST["id"])) {
// lancement de la requête
$sql = 'UPDATE ny6dh_man_eleve SET id_etat="'.$_POST["id_etat"].'" WHERE id="'.$_POST["id"].'"';
// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base
mysql_close();
// un petit message permettant de se rendre compte de la modification effectuée
echo 'La nouvelle adresse de '.$_POST["id"].' est : '.$_POST["id_etat"];
}
else {
echo 'Les variables du formulaire ne sont pas déclarées';
}
?>
</body>
</html>
Le problème est que rien ne se passe....et franchement je suis vraiment perdu car il s'agirait d'un pb d'écriture et je n'ai aucune idée d'où cela peut provenir.....merci de votre aide
Dernière modification par owenn59 (08-08-2015 11:30:03)
Hors ligne
if (isset($_POST["id_etat"]) && isset($_POST["id"])) {
tu ne rentres jamais dans ce if, vu que tu n'as qu'un seul champ dans ton formulaire, ce champ ne peut pas avoir 2 noms différents.
ensuite, je doute que ce champ s'appelle "id" ou "id_etat" vu que dans ton code tu y mets la valeur du champ id de la table.
echo $_POST;
dans ta page traitement pour voir ce que tu reçois selon la liste déroulante à la sélection modifiée.
Hors ligne
Merci pour cette réponse, lorsque je fais cet echo post il me mets "Array"
Pour le if (isset($_POST["id_etat"]) && isset($_POST["id"])) {
je l'ai mis mais ne sais pas si c'est juste....ce que je souhaite c'est récupérer l'id dans la ligne et la valeur du champ...comment faire alors?
Hors ligne
Donc quand je met print_r($_POST); , il me mets ceci :
Array ( [__$row] => Array ( ["id"] => 1 ) [218] => 0 )
Par contre pour "remplace dans un premier temps ton if par
if(1){"
je remets la totalité du code?
Hors ligne
Saluton,
Tu devrais vérifier dans le source HTML de ton formulaire comment sont nommés tes <select> parce que le résultat du print_r($_POST) est assez curieux, [_$row] ne me dit rien qui vaille.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Merci mais j'ai beau y jetter un oeil je ne vois pas où cela cloche....
Hors ligne