Probleme de tableau php
Résolu/Fermé
mamourfm
Messages postés
21
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
14 août 2009
-
13 août 2009 à 13:46
voyageur59 Messages postés 1112 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 10 novembre 2009 - 14 août 2009 à 11:21
voyageur59 Messages postés 1112 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 10 novembre 2009 - 14 août 2009 à 11:21
A voir également:
- Probleme de tableau php
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Easy php - Télécharger - Divers Web & Internet
19 réponses
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
13 août 2009 à 14:00
13 août 2009 à 14:00
Dans ta boucle il suffit que tu modifie le nom de ton bouton avec l'id correspondant à la ligne :
<input type='submit' value="*" name="admin<?php echo $donnees['ID']; ?>" />
Comme ça ton bouton aura comme nom admin + l'id de la ligne lui correspondant.
En récupérant cet id tu sauras quelle ligne est associée à ce bouton
<input type='submit' value="*" name="admin<?php echo $donnees['ID']; ?>" />
Comme ça ton bouton aura comme nom admin + l'id de la ligne lui correspondant.
En récupérant cet id tu sauras quelle ligne est associée à ce bouton
fred_bgt
Messages postés
153
Date d'inscription
mercredi 31 décembre 2008
Statut
Membre
Dernière intervention
12 septembre 2009
22
13 août 2009 à 14:05
13 août 2009 à 14:05
il faut que tu indexes le nom des boutons (puisqu'il y en a plusieurs)
Si tu utilises toujours le même nom dans ton tableau, c'est comme si tu déclarais N fois le même bouton en HTML ... Ca ne peut pas marcher.
ex :
echo "<input type=submit name='bouton".$i."'>
$i étant par exemple le numéro de ligne
Le probème c'est que tu devras tester quel bouton a été cliqué en POST ...
Il y a mieux :
Tu déclares un bouton de type button et une variable de type hidden (qui sera ton numéro de ligne)
$i : numéro de la ligne dans ton tableau
Hors de la boucle :
<input type=hidden name=no id=no>
Dans la boucle (lignes du tableau) :
<input type=submit name=BoutonSubmit onclick=\" document.getElementById('no').value='".$i."' \"> ";
Ce n'est peut-être pas le code exact, mais cette méthode fonctionne, je l'ai déjà utilisée plusieurs fois.
Si tu utilises toujours le même nom dans ton tableau, c'est comme si tu déclarais N fois le même bouton en HTML ... Ca ne peut pas marcher.
ex :
echo "<input type=submit name='bouton".$i."'>
$i étant par exemple le numéro de ligne
Le probème c'est que tu devras tester quel bouton a été cliqué en POST ...
Il y a mieux :
Tu déclares un bouton de type button et une variable de type hidden (qui sera ton numéro de ligne)
$i : numéro de la ligne dans ton tableau
Hors de la boucle :
<input type=hidden name=no id=no>
Dans la boucle (lignes du tableau) :
<input type=submit name=BoutonSubmit onclick=\" document.getElementById('no').value='".$i."' \"> ";
Ce n'est peut-être pas le code exact, mais cette méthode fonctionne, je l'ai déjà utilisée plusieurs fois.
voyageur59
Messages postés
1112
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 novembre 2009
132
13 août 2009 à 14:07
13 août 2009 à 14:07
Bonjour,
Tu mets juste une variable qui change à chaque boucle:
un_ou_deux=0
while ($donnees = mysql_fetch_array($requete1) )
{
if (un_ou_deux!=1)
un_ou_deux=1;
else
un_ou_deux=2;
....
// ?> ==> tu supprimes ça
// la ligne suivante ajoute le submit avec comme nom admin1 et admin2 une fois/2
echo '<input type="submit" value="*" name="admin'. un_ou_deux .'" />'
//<?php ==> tu supprimes ça
...
}
J'ai mis en gras ce qui est à changer (j'ai résumé le contenu de la boucle par des "...").
Pour résumer:
- quand "un_ou_deux" est différent de "1" il passe à "1",
- quand "un_ou_deux" est egal "1" il passe à "2",
Donc à chaque passage de boucle il change de valeur (une fois 1 une fois 2).
Tu mets juste une variable qui change à chaque boucle:
un_ou_deux=0
while ($donnees = mysql_fetch_array($requete1) )
{
if (un_ou_deux!=1)
un_ou_deux=1;
else
un_ou_deux=2;
....
// ?> ==> tu supprimes ça
// la ligne suivante ajoute le submit avec comme nom admin1 et admin2 une fois/2
echo '<input type="submit" value="*" name="admin'. un_ou_deux .'" />'
//<?php ==> tu supprimes ça
...
}
J'ai mis en gras ce qui est à changer (j'ai résumé le contenu de la boucle par des "...").
Pour résumer:
- quand "un_ou_deux" est différent de "1" il passe à "1",
- quand "un_ou_deux" est egal "1" il passe à "2",
Donc à chaque passage de boucle il change de valeur (une fois 1 une fois 2).
mamourfm
Messages postés
21
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
14 août 2009
13 août 2009 à 14:15
13 août 2009 à 14:15
malheureusement aucune de vos réponses ne marche. Je veux pas faire par rapport au numéro de lignes mais pas rapport à l'ID. Merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mamourfm
Messages postés
21
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
14 août 2009
13 août 2009 à 14:32
13 août 2009 à 14:32
aucune autre suggestion ?? svp ??
fred_bgt
Messages postés
153
Date d'inscription
mercredi 31 décembre 2008
Statut
Membre
Dernière intervention
12 septembre 2009
22
13 août 2009 à 14:32
13 août 2009 à 14:32
j'ai pas bien compris ton pb en fait ...
un peu plus d'explications ?
un peu plus d'explications ?
mamourfm
Messages postés
21
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
14 août 2009
13 août 2009 à 14:43
13 août 2009 à 14:43
J'aimerai que lorsque je clique sur l'un des bouton submit(qui se trouve a chaque ligne de mon tableau), il aille récupérer l' Id correspondant a la ligne. Ensuite, qu'il vérifie si l'admin(qui correspond a l'ID) est a 1 ou a 0. et enfin le change en 0 si il est a 1 et vice versa.
en bref:
nom prenom mail... admin bouton
fff ggg jjh... 1 * si j'appuie sur le bouton *, il change l'admin en 1
hhh rrr resh... 0 * si j'appuie sur le bouton *, il change l'admin en 0
voila, merci
en bref:
nom prenom mail... admin bouton
fff ggg jjh... 1 * si j'appuie sur le bouton *, il change l'admin en 1
hhh rrr resh... 0 * si j'appuie sur le bouton *, il change l'admin en 0
voila, merci
voyageur59
Messages postés
1112
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 novembre 2009
132
13 août 2009 à 14:55
13 août 2009 à 14:55
Dans ce cas tu changes à chaque ligne la valeur de "admin":
<?php
include ("connectionBDD.php");
$requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
$numero=0;
while ($donnees = mysql_fetch_array($requete1) )
{
$numero++;
if (isset ($_POST['admin'.$numero]) )
{
$admin=$_POST['admin'.$numero];
$requete= mysql_query("SELECT ADMIN WHERE ID_USER = $admin");
$reponse= mysql_fetch_array($requete);
if ($reponse == '0')
{
$misajour=mysql_query("UPDATE user SET ADMIN='1' WHERE ID_USER=$admin");
$reponse2= mysql_fetch_array($misajour);
}
else
$misajour2=mysql_query("UPDATE user SET ADMIN='0' WHERE ID_USER=$admin");
$reponse3= mysql_fetch_array($misajour2);
}
}
/* selectionne le contenu de la BDD */
$requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
echo "<table>";
echo "<tr>";
echo "<td align='center' colspan='7' bgcolor='#CC99FF'> utilisateurs </td>";
echo "</tr>";
echo "<tr bgcolor=\"#ff3399\">";
echo "<td>NOM</td>";
echo "<td>PRENOM</td>";
echo "<td>MAIL</td>";
echo "<td>LOGIN</td>";
echo "<td>PASS</td>";
echo "<td>ADMIN</td>";
echo "<td>change</td>";
echo "</tr>";
/* affiche ce que contient la BDD */
$numero=0;
while ($donnees = mysql_fetch_array($requete1) )
{
$numero++;
echo "<tr>";
echo "<td>";
echo $donnees['NOM'];
echo "</td>";
echo "<td>";
echo $donnees['PRENOM'];
echo "</td>";
echo "<td>";
echo $donnees['MAIL'];
echo "</td>";
echo "<td>";
echo $donnees['LOGIN'];
echo "</td>";
echo "<td>";
echo $donnees['PASS'];
echo "</td>";
echo "<td>";
echo $donnees['ADMIN'];
echo "</td>";
echo "<td>";
echo "<input type='submit' value='*' name='admin". $numero ."' />";
echo "</td>";
echo "</tr>";
}
echo "</table>";
echo "<br/>";
?>
Tu as la récupération de la valeur envoyée avec la boucle.
<?php
include ("connectionBDD.php");
$requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
$numero=0;
while ($donnees = mysql_fetch_array($requete1) )
{
$numero++;
if (isset ($_POST['admin'.$numero]) )
{
$admin=$_POST['admin'.$numero];
$requete= mysql_query("SELECT ADMIN WHERE ID_USER = $admin");
$reponse= mysql_fetch_array($requete);
if ($reponse == '0')
{
$misajour=mysql_query("UPDATE user SET ADMIN='1' WHERE ID_USER=$admin");
$reponse2= mysql_fetch_array($misajour);
}
else
$misajour2=mysql_query("UPDATE user SET ADMIN='0' WHERE ID_USER=$admin");
$reponse3= mysql_fetch_array($misajour2);
}
}
/* selectionne le contenu de la BDD */
$requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
echo "<table>";
echo "<tr>";
echo "<td align='center' colspan='7' bgcolor='#CC99FF'> utilisateurs </td>";
echo "</tr>";
echo "<tr bgcolor=\"#ff3399\">";
echo "<td>NOM</td>";
echo "<td>PRENOM</td>";
echo "<td>MAIL</td>";
echo "<td>LOGIN</td>";
echo "<td>PASS</td>";
echo "<td>ADMIN</td>";
echo "<td>change</td>";
echo "</tr>";
/* affiche ce que contient la BDD */
$numero=0;
while ($donnees = mysql_fetch_array($requete1) )
{
$numero++;
echo "<tr>";
echo "<td>";
echo $donnees['NOM'];
echo "</td>";
echo "<td>";
echo $donnees['PRENOM'];
echo "</td>";
echo "<td>";
echo $donnees['MAIL'];
echo "</td>";
echo "<td>";
echo $donnees['LOGIN'];
echo "</td>";
echo "<td>";
echo $donnees['PASS'];
echo "</td>";
echo "<td>";
echo $donnees['ADMIN'];
echo "</td>";
echo "<td>";
echo "<input type='submit' value='*' name='admin". $numero ."' />";
echo "</td>";
echo "</tr>";
}
echo "</table>";
echo "<br/>";
?>
Tu as la récupération de la valeur envoyée avec la boucle.
mamourfm
Messages postés
21
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
14 août 2009
13 août 2009 à 15:21
13 août 2009 à 15:21
ca ne marche pas non plus
tes input doit être dans une balise FORM, dans ton cas, je te conseille ca:
<FORM method="POST" action="$_SERVER['PHP_SELF']"></FORM>
<FORM method="POST" action="$_SERVER['PHP_SELF']"></FORM>
voyageur59
Messages postés
1112
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 novembre 2009
132
13 août 2009 à 16:11
13 août 2009 à 16:11
Qu'est-ce qui marche pas?
Une erreur dans le code?
Ou le formulaire....
Parce que là si tu a mis le contenu complet de ta page, il manque effectivement quelque chose:
Une balise <form>...
Qui devrait ressembler à ça:
<form method="post" action="">
et la fin de ton formulaire avec la balise là:
</form>
Avec l'ouverture du formulaire en début de page (c'est pas le top à cet endroit) et la fermeture du formualire en fin de page!
Dans le doute je viens de faire l'essai.... bien sur en ajoutant les balises <form>... et sans tenir compte de l'exécution de ta requète... il n'y a aucun souci!
Si tu le veux je peux t'envoyer le code que j'ai mis pour mon essai....
Une erreur dans le code?
Ou le formulaire....
Parce que là si tu a mis le contenu complet de ta page, il manque effectivement quelque chose:
Une balise <form>...
Qui devrait ressembler à ça:
<form method="post" action="">
et la fin de ton formulaire avec la balise là:
</form>
Avec l'ouverture du formulaire en début de page (c'est pas le top à cet endroit) et la fermeture du formualire en fin de page!
Dans le doute je viens de faire l'essai.... bien sur en ajoutant les balises <form>... et sans tenir compte de l'exécution de ta requète... il n'y a aucun souci!
Si tu le veux je peux t'envoyer le code que j'ai mis pour mon essai....
mamourfm
Messages postés
21
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
14 août 2009
14 août 2009 à 08:24
14 août 2009 à 08:24
oui je veux bien voir ton code stp merci
mamourfm
Messages postés
21
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
14 août 2009
14 août 2009 à 10:20
14 août 2009 à 10:20
le probleme est a moitié resolu :
le probleme c'est que ca passe que dans notre else
if (isset($_GET['modif_admin']))
{
$admin=$_GET['modif_admin'];
$requetea= mysql_query("SELECT ADMIN FROM user WHERE ID_USER = $admin");
$reponse= mysql_fetch_array($requetea);
if ($reponse == '0')
{
mysql_query("UPDATE user SET ADMIN='1' WHERE ID_USER=$admin")or die(mysql_error());
}
else
{
mysql_query("UPDATE user SET ADMIN='0' WHERE ID_USER=$admin")or die(mysql_error());
}
}
?>
<a href="table_toopi.php?modif_admin=<?php echo $donnees ['ID_USER']; ?> "> <img src="image/cancel.png" border="none"> </a>
le probleme c'est que ca passe que dans notre else
if (isset($_GET['modif_admin']))
{
$admin=$_GET['modif_admin'];
$requetea= mysql_query("SELECT ADMIN FROM user WHERE ID_USER = $admin");
$reponse= mysql_fetch_array($requetea);
if ($reponse == '0')
{
mysql_query("UPDATE user SET ADMIN='1' WHERE ID_USER=$admin")or die(mysql_error());
}
else
{
mysql_query("UPDATE user SET ADMIN='0' WHERE ID_USER=$admin")or die(mysql_error());
}
}
?>
<a href="table_toopi.php?modif_admin=<?php echo $donnees ['ID_USER']; ?> "> <img src="image/cancel.png" border="none"> </a>
jeangilles
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
186
14 août 2009 à 10:22
14 août 2009 à 10:22
le probleme c'est que ca passe que dans notre else
pas vraiment étonnant :
ne te renverra jamais 0 quoi qu'il arrive, mais un tableau contenant les réponses à la requête
si tu veux connaître le nombre de réponses, c'est mysql_num_rows
pas vraiment étonnant :
$reponse= mysql_fetch_array($requetea);
ne te renverra jamais 0 quoi qu'il arrive, mais un tableau contenant les réponses à la requête
si tu veux connaître le nombre de réponses, c'est mysql_num_rows
mamourfm
Messages postés
21
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
14 août 2009
14 août 2009 à 10:27
14 août 2009 à 10:27
essai non concluant avec row, $requetea ne renvoie que 1 ou 0 dans la bdd. donc si c'est 0 ca update a 1 et vice versa.
jeangilles
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
186
14 août 2009 à 10:32
14 août 2009 à 10:32
ha pardon, je croyais que tu voulais voir si il y avait une personne présente ayant l'ID $admin
alors c'était comme t'avais fait, mais il te manquait une ligne :
remplacer
par
alors c'était comme t'avais fait, mais il te manquait une ligne :
remplacer
$reponse= mysql_fetch_array($requetea);
par
$ligne= mysql_fetch_array($requetea); $reponse= $ligne[0];
mamourfm
Messages postés
21
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
14 août 2009
14 août 2009 à 11:02
14 août 2009 à 11:02
Merci bcq ca marche enfin !!
tu nous as bien rendu service
tu nous as bien rendu service
voyageur59
Messages postés
1112
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 novembre 2009
132
14 août 2009 à 11:04
14 août 2009 à 11:04
Re-
J'avais déjà supprimé... mais ça m'a pas pris trop de temps:
<form method="post" action="">
<?php
//include ("connectionBDD.php");
// $requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
$numero=0;
// while ($donnees = mysql_fetch_array($requete1) )
for ($i=1;$i<11;$i++)
{
$numero++;
if (isset ($_POST['admin'.$numero]) )
{
// ....
echo "Mise à jour pour " . "admin".$numero;
}
}
/* selectionne le contenu de la BDD */
// $requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
echo "<table>";
echo "<tr>";
echo "<td align='center' colspan='7' bgcolor='#CC99FF'> utilisateurs </td>";
echo "</tr>";
echo "<tr bgcolor=\"#ff3399\">";
echo "<td>NOM</td>";
echo "<td>PRENOM</td>";
echo "<td>MAIL</td>";
echo "<td>LOGIN</td>";
echo "<td>PASS</td>";
echo "<td>ADMIN</td>";
echo "<td>change</td>";
echo "</tr>";
/* affiche ce que contient la BDD */
$numero=0;
// while ($donnees = mysql_fetch_array($requete1) )
for ($i=1;$i<11;$i++)
{
$numero++;
echo "<tr>";
echo "<td>";
echo 'NOM'.$numero;
echo "</td>";
echo "<td>";
echo 'PRENOM'.$numero;
echo "</td>";
echo "<td>";
echo 'MAIL'.$numero;
echo "</td>";
echo "<td>";
echo 'LOGIN'.$numero;
echo "</td>";
echo "<td>";
echo 'PASS'.$numero;
echo "</td>";
echo "<td>";
echo 'ADMIN'.$numero;
echo "</td>";
echo "<td>";
echo "<input type='submit' value='*' name='admin". $numero ."' />";
echo "</td>";
echo "</tr>";
}
echo "</table>";
echo "<br/>";
?>
</form>
Je n'ai pas ta base de données donc ce qui est requète j'ai modifié.... mais le principe de ce que tu veux y est.
Il y a aussi une erreur dans la requète lors de la récupération des données.
Tu mets ceci:
if (isset ($_POST['admin'. $numero]) )
{
$admin=$_POST['admin'. $numero];
$requete= mysql_query("SELECT ADMIN WHERE ID_USER = $admin");
$reponse= mysql_fetch_array($requete);
$admin=$_POST['admin'. $numero]; le bouton mis en fin de ligne de ton tableau retourne "*" ta mise à jour fonctionnera pas non plus puisque l'ID_USER n'est pas bon....
Au mieux tu changes le bonton de ton tableau:
echo "<input type='submit' value='*' name='admin". $numero ."' />";
comme ça:
echo "<input type='submit' value='".$donnees['ID_USER']."' name='admin". $numero ."' />";
Je n'ai pas tous les tenants et aboutissant de ta page, de la base de données...
Je me suis juste attaché à voir ce que tu veux faire dans le principe, je me suis pas penché sur la structure que doit avoir ta base de données...
Je te conseille donc de prendre mon petit bout de code tel quel. L'essayer pour voir ce que ça donne, voir comment il est fait.
Ensuite tu le réadaptes pour ta base de données.
============================
Après avoir pris un peu plus de temps pour voir les requètes....
Il y a pas mal d'erreurs:
$requete= mysql_query("SELECT ADMIN WHERE ID_USER = $admin");
Cette requète n'est pas bonne, il manque le "from" ça devrait donner quelque chose du genre là:
$requete= mysql_query("SELECT ADMIN FROM user WHERE ID_USER = $admin");
Ici c'est pareil:
$reponse= mysql_fetch_array($requete);
Tu utilises ensuite $reponse comme une donnée simple! En fait tu devrais avoir:
$reponse= mysql_fetch_array($requete)[ADMIN];
============================
En définitive tu devrais avoir quelque chose de ce genre (j'ai mis en gras les modifs):
<?php
include ("connectionBDD.php");
$requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
$numero=0;
while ($donnees = mysql_fetch_array($requete1) )
{
$numero++;
if (isset ($_POST['admin'.$numero]) )
{
$admin=$_POST['ID_USER'.$numero];
$requete= mysql_query("SELECT ADMIN from user WHERE ID_USER = $admin");
$reponse= mysql_fetch_array($requete)[ADMIN];
if ($reponse_admin== '0')
{
$misajour=mysql_query("UPDATE user SET ADMIN='1' WHERE ID_USER=$admin");
$reponse2= mysql_fetch_array($misajour);
}
else
$misajour2=mysql_query("UPDATE user SET ADMIN='0' WHERE ID_USER=$admin");
$reponse3= mysql_fetch_array($misajour2);
}
}
/* selectionne le contenu de la BDD */
$requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
echo "<table>";
echo '<form method="post" action="">';
echo "<tr>";
echo "<td align='center' colspan='7' bgcolor='#CC99FF'> utilisateurs </td>";
echo "</tr>";
echo "<tr bgcolor=\"#ff3399\">";
echo "<td>NOM</td>";
echo "<td>PRENOM</td>";
echo "<td>MAIL</td>";
echo "<td>LOGIN</td>";
echo "<td>PASS</td>";
echo "<td>ADMIN</td>";
echo "<td>change</td>";
echo "</tr>";
/* affiche ce que contient la BDD */
$numero=0;
while ($donnees = mysql_fetch_array($requete1) )
{
$numero++;
echo "<tr>";
echo "<td>";
echo $donnees['NOM'];
echo "</td>";
echo "<td>";
echo $donnees['PRENOM'];
echo "</td>";
echo "<td>";
echo $donnees['MAIL'];
echo "</td>";
echo "<td>";
echo $donnees['LOGIN'];
echo "</td>";
echo "<td>";
echo $donnees['PASS'];
echo "</td>";
echo "<td>";
echo $donnees['ADMIN'];
echo "</td>";
echo "<td>";
echo "<input type='hidden' value='".$donnees['ID_USER']."' name='ID_USER". $numero ."' />";
echo "<input type='submit' value='*' name='admin". $numero ."' />";
echo "</td>";
echo "</tr>";
}
echo "</form>";
echo "</table>";
echo "<br/>";
?>
Tu peux voir que j'ai ajouté un champ "hiddeen" dont le nom est ID_USER.
Pour la requète de mise à jour, sans ce champ tu n'as pas la référence (ID_USER) à changer...
Là, il faut reprendre chaque chose une par une. Sinon tu ne t'en sortiras pas.
J'avais déjà supprimé... mais ça m'a pas pris trop de temps:
<form method="post" action="">
<?php
//include ("connectionBDD.php");
// $requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
$numero=0;
// while ($donnees = mysql_fetch_array($requete1) )
for ($i=1;$i<11;$i++)
{
$numero++;
if (isset ($_POST['admin'.$numero]) )
{
// ....
echo "Mise à jour pour " . "admin".$numero;
}
}
/* selectionne le contenu de la BDD */
// $requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
echo "<table>";
echo "<tr>";
echo "<td align='center' colspan='7' bgcolor='#CC99FF'> utilisateurs </td>";
echo "</tr>";
echo "<tr bgcolor=\"#ff3399\">";
echo "<td>NOM</td>";
echo "<td>PRENOM</td>";
echo "<td>MAIL</td>";
echo "<td>LOGIN</td>";
echo "<td>PASS</td>";
echo "<td>ADMIN</td>";
echo "<td>change</td>";
echo "</tr>";
/* affiche ce que contient la BDD */
$numero=0;
// while ($donnees = mysql_fetch_array($requete1) )
for ($i=1;$i<11;$i++)
{
$numero++;
echo "<tr>";
echo "<td>";
echo 'NOM'.$numero;
echo "</td>";
echo "<td>";
echo 'PRENOM'.$numero;
echo "</td>";
echo "<td>";
echo 'MAIL'.$numero;
echo "</td>";
echo "<td>";
echo 'LOGIN'.$numero;
echo "</td>";
echo "<td>";
echo 'PASS'.$numero;
echo "</td>";
echo "<td>";
echo 'ADMIN'.$numero;
echo "</td>";
echo "<td>";
echo "<input type='submit' value='*' name='admin". $numero ."' />";
echo "</td>";
echo "</tr>";
}
echo "</table>";
echo "<br/>";
?>
</form>
Je n'ai pas ta base de données donc ce qui est requète j'ai modifié.... mais le principe de ce que tu veux y est.
Il y a aussi une erreur dans la requète lors de la récupération des données.
Tu mets ceci:
if (isset ($_POST['admin'. $numero]) )
{
$admin=$_POST['admin'. $numero];
$requete= mysql_query("SELECT ADMIN WHERE ID_USER = $admin");
$reponse= mysql_fetch_array($requete);
$admin=$_POST['admin'. $numero]; le bouton mis en fin de ligne de ton tableau retourne "*" ta mise à jour fonctionnera pas non plus puisque l'ID_USER n'est pas bon....
Au mieux tu changes le bonton de ton tableau:
echo "<input type='submit' value='*' name='admin". $numero ."' />";
comme ça:
echo "<input type='submit' value='".$donnees['ID_USER']."' name='admin". $numero ."' />";
Je n'ai pas tous les tenants et aboutissant de ta page, de la base de données...
Je me suis juste attaché à voir ce que tu veux faire dans le principe, je me suis pas penché sur la structure que doit avoir ta base de données...
Je te conseille donc de prendre mon petit bout de code tel quel. L'essayer pour voir ce que ça donne, voir comment il est fait.
Ensuite tu le réadaptes pour ta base de données.
============================
Après avoir pris un peu plus de temps pour voir les requètes....
Il y a pas mal d'erreurs:
$requete= mysql_query("SELECT ADMIN WHERE ID_USER = $admin");
Cette requète n'est pas bonne, il manque le "from" ça devrait donner quelque chose du genre là:
$requete= mysql_query("SELECT ADMIN FROM user WHERE ID_USER = $admin");
Ici c'est pareil:
$reponse= mysql_fetch_array($requete);
Tu utilises ensuite $reponse comme une donnée simple! En fait tu devrais avoir:
$reponse= mysql_fetch_array($requete)[ADMIN];
============================
En définitive tu devrais avoir quelque chose de ce genre (j'ai mis en gras les modifs):
<?php
include ("connectionBDD.php");
$requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
$numero=0;
while ($donnees = mysql_fetch_array($requete1) )
{
$numero++;
if (isset ($_POST['admin'.$numero]) )
{
$admin=$_POST['ID_USER'.$numero];
$requete= mysql_query("SELECT ADMIN from user WHERE ID_USER = $admin");
$reponse= mysql_fetch_array($requete)[ADMIN];
if ($reponse_admin== '0')
{
$misajour=mysql_query("UPDATE user SET ADMIN='1' WHERE ID_USER=$admin");
$reponse2= mysql_fetch_array($misajour);
}
else
$misajour2=mysql_query("UPDATE user SET ADMIN='0' WHERE ID_USER=$admin");
$reponse3= mysql_fetch_array($misajour2);
}
}
/* selectionne le contenu de la BDD */
$requete1= mysql_query("SELECT * FROM user") Or die ('Erreur : '.mysql_error());
echo "<table>";
echo '<form method="post" action="">';
echo "<tr>";
echo "<td align='center' colspan='7' bgcolor='#CC99FF'> utilisateurs </td>";
echo "</tr>";
echo "<tr bgcolor=\"#ff3399\">";
echo "<td>NOM</td>";
echo "<td>PRENOM</td>";
echo "<td>MAIL</td>";
echo "<td>LOGIN</td>";
echo "<td>PASS</td>";
echo "<td>ADMIN</td>";
echo "<td>change</td>";
echo "</tr>";
/* affiche ce que contient la BDD */
$numero=0;
while ($donnees = mysql_fetch_array($requete1) )
{
$numero++;
echo "<tr>";
echo "<td>";
echo $donnees['NOM'];
echo "</td>";
echo "<td>";
echo $donnees['PRENOM'];
echo "</td>";
echo "<td>";
echo $donnees['MAIL'];
echo "</td>";
echo "<td>";
echo $donnees['LOGIN'];
echo "</td>";
echo "<td>";
echo $donnees['PASS'];
echo "</td>";
echo "<td>";
echo $donnees['ADMIN'];
echo "</td>";
echo "<td>";
echo "<input type='hidden' value='".$donnees['ID_USER']."' name='ID_USER". $numero ."' />";
echo "<input type='submit' value='*' name='admin". $numero ."' />";
echo "</td>";
echo "</tr>";
}
echo "</form>";
echo "</table>";
echo "<br/>";
?>
Tu peux voir que j'ai ajouté un champ "hiddeen" dont le nom est ID_USER.
Pour la requète de mise à jour, sans ce champ tu n'as pas la référence (ID_USER) à changer...
Là, il faut reprendre chaque chose une par une. Sinon tu ne t'en sortiras pas.
mamourfm
Messages postés
21
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
14 août 2009
14 août 2009 à 11:12
14 août 2009 à 11:12
Tu as raison j'ai fais qq erreur de maladresse.
mon probleme est resolu
Merci a tous de votre aide
mon probleme est resolu
Merci a tous de votre aide
voyageur59
Messages postés
1112
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 novembre 2009
132
14 août 2009 à 11:21
14 août 2009 à 11:21
Re-
Pas des erreurs de maladresse.
En fait il faut procéder par étapes.
Créer ton tableau avec le formulaire.
Ensuite, créer ton affichage des utilisateurs.
Et enfin faire ta mise à jour.
Si tu te lances dans la création de ton formulaire avec les 5 étapes en même temps, s'il y a des erreurs c'est quasiment insurmontable car en définitive tu ne sais pas quelle étape n'est pas bonne.
Pour peu qu'il y ait quelques erreurs et c'est la galère assurée.
En définitive si tu prends le post du début à la fin, on retrouve les étapes: le tableau, le retour de données, le formulaire, la mise à jour... en passant étape par étape on fini par trouver.
Bon courage.
Pas des erreurs de maladresse.
En fait il faut procéder par étapes.
Créer ton tableau avec le formulaire.
Ensuite, créer ton affichage des utilisateurs.
Et enfin faire ta mise à jour.
Si tu te lances dans la création de ton formulaire avec les 5 étapes en même temps, s'il y a des erreurs c'est quasiment insurmontable car en définitive tu ne sais pas quelle étape n'est pas bonne.
Pour peu qu'il y ait quelques erreurs et c'est la galère assurée.
En définitive si tu prends le post du début à la fin, on retrouve les étapes: le tableau, le retour de données, le formulaire, la mise à jour... en passant étape par étape on fini par trouver.
Bon courage.
13 août 2009 à 14:34
if (isset ($_POST['admin1']) )
{
$admin=$_POST['admin1'];
$requete= mysql_query("SELECT ADMIN WHERE ID_USER = $admin");
$reponse= mysql_fetch_array($requete);
merci