begin process at 2010 02 10 03:22:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Problème de mise à jour


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de mise à jour

lundi 23 avril 2007 à 17:29:42 | Problème de mise à jour

Keilen

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">
                    <table border="0" width="100%">
                        <tr>
                            <td align="left" width="25%">
                                <input type="text" name="nomcateg" value="'.$cated['cat_nom'].'" size="30" />
                            </td>
                            <td align="left" width="14%">
                                <input type="text" name="disposition" value="'.$cated['disposition'].'" size="10" />
                            </td>
                            <td align="left" width="61">
                                <input type="submit" value="Modifier">
                            </td>
                        </tr>
                    </table>
                    </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 :

[quote]// 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);
                    [/quote]

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à ...

Si qq1 voit la solution .. Merci :)


AIDEZ MOOOOI ! (:


lundi 23 avril 2007 à 17:36:23 | Re : Problème de mise à jour

alex1025

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);
}
}
lundi 23 avril 2007 à 18:56:08 | Re : Problème de mise à jour

FhX

$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
mardi 24 avril 2007 à 09:45:58 | Re : Problème de mise à jour

Keilen

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 !! ..
mardi 24 avril 2007 à 10:19:50 | Re : Problème de mise à jour

alex1025

Hello,

Tu devrais faire des echo en milieu de route pour essayer de trouver d'ou vient le probleme et si tes variables contiennent toujours les données.

A++
mardi 24 avril 2007 à 10:27:27 | Re : Problème de mise à jour

Keilen

Réponse acceptée !
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">
                    <table border="0" width="100%">
                        <tr>
                            <td align="left" width="25%">
                                <input type="text" name="nomcateg" value="'.$cated['cat_nom'].'" size="30" />
                                <input type="hidden" name="nomorigine" value="'.$cated['cat_nom'].'" />
                            </td>
                            <td align="left" width="14%">
                                <input type="text" name="disposition" value="'.$cated['disposition'].'" size="10" />
                            </td>
                            <td align="left" width="61">
                                <input type="submit" value="Modifier">
                            </td>
                        </tr>
                    </table>
                    </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 !
mardi 24 avril 2007 à 18:25:24 | Re : Problème de mise à jour

FhX

Dans tous les cas, tu as un problème de conception.

Tes catégories doivent se trouver sur une table à part... et faire le lien via l'ID de la catégorie en utilisant une jointure.


Cette discussion est classée dans : forum, jour, post, disposition, nomcateg


Répondre à ce message

Sujets en rapport avec ce message

système de saisie de post du forum [ par durand2504 ] Bonjour,3ème post d'affiler, oui, j'ai des questions et le Week-end a été studieu.je trouve le système pour écrire les postes sur ce forum très intére Comment présenter le texte un post sur ce forum [ par Fic ] Bonjour, il faut commencer par le début. Première intervention sur le forum et première catass. Mon texte s'affiche en tas sans retour chariot. Je sa Requetes sur un forum pour IRC [ par BiGOuF ] Bonjour, Tout d'abord,je voudrais vous dire que je ne vaux rien en PHP, ce qui pourrait expliquer que la question que je vais poser est peut-être simp la sécurité de ce forum [ par true ] Je ne voudrais pas paraitre rabajoie, mais pour un site de développeur où je cherchais des informations pour la sécurité de mon site je suis grandemen comment peut on modifier code source d'une page web! [ par bluever ] salut tout le monde.. Bon voilà, j'ai un petit soucis avec un petit malin sur un forum, qui arrive à publier des posts avec mon pseudo !  Tout d'a conseils pour un forum [ par regisgb17 ] Salut,J'ai fais un site dans lequel il y a un forum, mais je souhaite le refaire complètement.Je souhaite le faire comme on en voit de partout, chacun Mise a jour [ par dabiz59 ] Bonjour étant asser assez novice en mysql j'aurai besoin de votre aide pour changer ce INSERT INTO en UPDATEmerci pour votre aide$sql = 'INSERT INTO a oh misére o desespoir , bleme de requette [ par CCJ ] bonjour alors que j'etait sur le point de finir le forum sur mon site , un bleme aparut. voici mon code: session_start(); if(isset($_SESSION['Pseudo' debutant cher pourquoi ca va pas :) [ par phenix88be ] bonjour à tous, je tient avant tout a présiser que je ne suis qu'un amateur, je debut et j'ai un problème qui ne ce posait pas avant : voici un code Probleme lors de selection de champ d'une base [ par moumourourou ] Bonjour, j'ai un problème lors de la sélection des champs de ma table dans ma base de données voici mon code: $res = mysql_query("SELECT * FROM jos_it


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales