Keilen
Messages postés4Date d'inscriptionmardi 21 novembre 2006StatutMembreDernière intervention24 avril 2007
-
23 avril 2007 à 17:29
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 2015
-
24 avril 2007 à 18:25
Bonjour à tous !
Voilà j'ai un énorme problème de code. En effet je suis en train de créer un forum pour l'entreprise où je suis en stage, et j'ai un formulaire dans lequel je récupère 2 zones de texte, et je n'arrive aps à mettre à jour les informations correspondantes dans la base de données ... Ce qui est très étrange ...
En fait j'ai 2 champs : nomcateg et disposition.
Si je ne modifie que disposition, la mise à jour s'effectue bien.
Si je modifie les 2 aucune mise à jour ne s'effectue.
Si je modifie uniquement nomcateg aucune mise à jour ne s'effectue ...
Voici mon code :
Le formulaire :
$reqcated="select cat_nom, disposition from forum_categs order by disposition";
$tcated=mysql_query($reqcated, $conn);
while ($cated=mysql_fetch_array($tcated))
{
echo '
<form method="post" action="franchises-admin-categ.php?action=modifie" class="lienforum">
----
,
,
,
</form>';
}
Donc pour chaque catégorie dans ma base j'affiche 2 champs nom et disposition modifiables, et un bouton modifier qui envoie vers ma page.
Et pour la mise à jour :
// Si on a bien un message
if (isset($_POST['nomcateg']))
{
// Si le message n'est pas nul
if ($_POST['nomcateg'] != NULL)
{
// Notation des données récupérées
$nom=$_POST['nomcateg'];
if (isset($_POST['disposition']))
$dispo=$_POST['disposition'];
else
$dispo=0;
// Récupération de l'id de la catégorie
$reqidca="select id from forum_categs where cat_nom='".$_POST['nomcateg']."'";
$idc=recupdonnee($reqidca, $conn);
// Mise à jour des informations sur la catégorie
$reqmajca="UPDATE forum_categs SET cat_nom='$nom' WHERE id=$idc";
mysql_query($reqmajca, $conn);
$reqmajca2="update forum_categs set disposition='$dispo' where id=$idc";
mysql_query($reqmajca2, $conn);
Hors la mise à jour ne se fait que si je ne modifie que disposition. J'ai vérifié $nom est bien égal à la valeur entrée .... Donc je ne vois pas où est mon erreur ... je ne vois que la requete de fausse ... Mais je trouve pas l'erreur à ce moment là ...
Keilen
Messages postés4Date d'inscriptionmardi 21 novembre 2006StatutMembreDernière intervention24 avril 2007 24 avril 2007 à 10:27
Héhé merci de ta proposition alex1025, mais j'avais déjà tenté en mettais des echos partout ... Et toutes les variables étaient bonnes ... Mais j'ai trouvé mon problème : lors de ma requête :
$reqidca="select id from forum_categs where cat_nom='".$_POST['nomcateg']."'";
$idc=recupdonnee($reqidca, $conn);
j'utilisais non pas l'ancien nom de la catégorie, mais bien le nouveau nom saisi par l'utilisateur .. donc ma requête ne pouvait renvoyer d'id convenable dès que je touchait au nom de la catégorie, puisque une catégorie de ce nom la n'existe pas.
Au cas où celà peut aider quelqu'un je post ma correction :
Déjà le formulaire dans lequel j'ai inséré un input hidden pour passer le nom d'origine de ma catégorie :
$reqcated="select cat_nom, disposition from forum_categs order by disposition";
$tcated=mysql_query($reqcated, $conn);
while ($cated=mysql_fetch_array($tcated))
{
echo '
<form method="post" action="franchises-admin-categ.php?action=modifie" class="lienforum">
----
,
,
,
</form>';
}
Et ma partie mise à jour des données :
// Si on a bien un message
if (isset($_POST['nomcateg']))
{
// Si le message n'est pas nul
if ($_POST['nomcateg'] != NULL)
{
// Notation des données récupérées
$nom=$_POST['nomcateg'];
if (isset($_POST['disposition']))
$dispo=$_POST['disposition'];
else
$dispo=0;
// Récupération de l'id de la catégorie
$reqidca="select id from forum_categs where cat_nom='".$_POST['nomorigine']."'";
$idc=recupdonnee($reqidca, $conn);
// Mise à jour des informations sur la catégorie
$reqmajca="UPDATE forum_categs SET cat_nom='$nom', disposition='$dispo' WHERE id=$idc";
mysql_query($reqmajca, $conn);
}
}
Merci pour votre aide dans tous les cas, à bientot !
alex1025
Messages postés104Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention 8 décembre 2007 23 avril 2007 à 17:36
Salut moi je changerais par
if (isset($_POST['Modifier']))
{
// Si le message n'est pas nul
if ($_POST['nomcateg'] != NULL)
{
// Notation des données récupérées
$nom=$_POST['nomcateg'];
if (isset($_POST['disposition']))
$dispo=$_POST['disposition'];
else
$dispo=0;
// Récupération de l'id de la catégorie
$reqidca="select id from forum_categs where cat_nom='".$_POST['nomcateg']."'";
$idc=recupdonnee($reqidca, $conn);
// Mise à jour des informations sur la catégorie
$reqmajca="UPDATE forum_categs SET cat_nom='$nom',disposition='$dispo' WHERE id=$idc";
mysql_query($reqmajca, $conn);
}
}
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 23 avril 2007 à 18:56
$reqmajca="UPDATE forum_categs SET cat_nom='$nom' WHERE id=$idc";
La requète est bonne... quoi que.
Il faut vérifier que $idc est bien un entier. Pour ce faire, on transtype :$r 'UPDATE .... SET .... '.$nom.' WHERE id = '. (int) $idc;
On force donc $idc à être en entier, car dans ta DB, tu as donnés au champ id un type INT. (normalement)
Maintenant, d'où vient $idc ?
De la : $idc=recupdonnee($reqidca, $conn);
As tu vérifiés qu'ici tu as bien un entier ?
Parce que... recupdonnee(), je sais pas ce qu'elle fait :s
Keilen
Messages postés4Date d'inscriptionmardi 21 novembre 2006StatutMembreDernière intervention24 avril 2007 24 avril 2007 à 09:45
Bonjour à tous, et déjà merci de vos réponses :)
Je vais regarder tout ca et essayer de corriger mon code.
Pour FhX, $idc est bien un entier, dans ma table c'est un int10 en auto_increment, qui correspond à l'id de ma catégorie, et recupdonne() envoie tout simplement le résultat unique d'une requête dans une variable ... De ce coté là je suis sur qu'il n'y a aucun problème, puisque j'arrive à modifier la disposition quand je ne change que ça ... Donc ça vient d'autre chose je pense.
Quant à alex1025 je ne vois pas ce que le fait de mettre 'modifier' plutot que isset 'nomcateg' changera ... de plus que je suis certain de passer dans la boucle ... Donc voilà je suis à nouveau coincé ... A l'aide !!! Si ça continue je vais passer les paramètres en GET !! ..
Vous n’avez pas trouvé la réponse que vous recherchez ?