IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème avec UPDATE


Sujet :

PHP & Base de données

  1. #1
    oim
    oim est déconnecté
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 118
    Points : 50
    Points
    50
    Par défaut Problème avec UPDATE
    Bonjour, j'essaye de faire une page qui permet de créer et gérer des catégories ; la création et la suppression fonctionnent mais je n'arrive pas pour la fonction "editcategorie" (modifier la catégorie). La table est composée de 3 champs : id - auteur_id - titre.
    Lorsque je clique sur valider pour que le changement se fasse, il n'y a aucun message d'erreur, la redirection fonctionne mais ca n'ecrit rien dans la table. Ce que je ne comprend pas c'est que dans "editcategorie" lorsque je met $tilte ca montre bien le titre mais si je met $id ou $auteur_id ca ne marque rien ; je pense que l'erreur doit être par là.
    C'est la premère fois que j'essaye de faire un script et je tourne en rond parce que je ne comprend pas ; si quelqu'un pouvait m'aider, merci !

    function categorie() {
    //DEBUT AJOUT DE CATEGORIE//
    global $ModPath, $ModStart, $NPDS_Prefix, $ThisFile, $cookie;
    opentable();
    $rowcolor=tablos();
    echo "<table width=\"60%\" align=\"center\"><tr align=\"center\">\n";
    echo "<form action=\"".$ThisFile."&subop=catcreer\" method=\"post\" name=\"catcreer\">";
    echo "<td class=\"TITRE\" colspan=\"3\">Ajouter une catégorie</td></tr>\n";
    echo "<tr><td width=\"10%\">Titre</td>\n";
    echo "<td width=\"70%\"><input type=\"text\" name=\"titre\" size=\"50\" /></td>\n";
    echo "<td width=\"70%\" align=\"center\"><input CLASS=\"BOUTON_STANDARD\" type=\"submit\" name=\"mettre a jour\" VALUE=\"Valider\" /></td></tr>\n";
    echo "</form></table>\n";
    closetable();
    //FIN AJOUT DE CATEGORIE//


    //DEBUT LISTE DE CATEGORIE//
    opentable();
    echo "<table width=\"top\" align=\"center\"><tr align=\"center\">\n";
    echo "<td class=\"TITRE\" colspan=\"3\">Gérer vos Catégories</td></tr>\n";;
    echo "<tr $rowcolor><td align=\"center\" width=\"30%\">Categorie</td>\n";
    echo "<td align=\"center\" width=\"10%\">Editer</td>\n";
    echo "<td align=\"center\" width=\"10%\">Supprimer</td></tr>\n";
    $query = mysql_query("SELECT * FROM ".$NPDS_Prefix."blog_cat WHERE auteur_id='$cookie[1]'");
    while ($row = mysql_fetch_row($query)) {
    echo "<tr><td width=\"30%\">$row[2]</td>\n";
    echo "<td align=\"center\" width=\"10%\"><a href=".$ThisFile."&subop=editcategorie&amp;titre=$row[2]><img src=modules/blogue/images/editer.gif></a></td>\n";
    echo "<td align=\"center\" width=\"10%\"><a href=".$ThisFile."&subop=supprimer&amp;id=$row[0]><img src=modules/blogue/images/delete.gif></a></td></tr>\n";
    }
    echo "<tr $rowcolor><td colspan=\"3\" align=\"center\"><input CLASS=\"BOUTON_STANDARD\" type=\"submit\" name=\"mettre a jour\" VALUE=\"Mettre à jour\" /></td></tr>\n";
    echo "</table>\n";
    closetable();
    //FIN LISTE DE CATEGORIE//
    }

    function editcategorie($id,$auteur_id,$titre) {
    //DEBUT EDITER CATEGORIE//
    global $ModPath, $ModStart, $NPDS_Prefix, $ThisFile, $cookie;
    opentable();
    $rowcolor=tablos();
    echo "<table width=\"60%\" align=\"center\"><tr align=\"center\">\n";
    echo "<form action=\"".$ThisFile."&subop=changetitre\" method=\"post\" name=\"changetitre\">";
    echo "<td class=\"TITRE\" colspan=\"3\">Modifier cette catégorie</td></tr>\n";
    echo "<tr><td width=\"20%\">Nom actuel-$id</td>\n";
    echo "<td width=\"80%\"><input type=\"text\" name=\"nom\" value=\"".$titre."\" disabled=\"true\" size=\"20\" /></td></tr>\n";
    echo "<tr><td width=\"20%\">newnom</td>\n";
    echo "<td width=\"80%\"><input type=\"text\" name=\"newnom\" value=\"".$newtitre."\" size=\"20\" /></td></tr>\n";
    echo "<tr $rowcolor><td colspan=\"3\" align=\"center\"><input CLASS=\"BOUTON_STANDARD\" type=\"submit\" name=\"mettre a jour\" VALUE=\"Valider\" /></td></tr>\n";
    echo "</form></table>\n";
    closetable();
    //FIN EDITER CATEGORIE//
    }

    switch($subop) {

    case "categorie" :
    categorie();
    break;

    case "editcategorie" :
    editcategorie($id,$auteur_id,$titre);
    break;

    case "changetitre" :
    $query="UPDATE blog_cat SET titre='".$newtitre."' WHERE id='".$id."' and auteur_id='".$cookie[1]."'";
    $succes=mysql_query($query) or die ("erreur : ".mysql_error());
    if ($succes)
    redirect_url("".$ThisRedo."&subop=categorie");
    break;

    case "supprimer" :
    $query="delete from blog_cat where id='$id'";
    $succes=mysql_query($query);
    if ($succes)
    redirect_url ("".$ThisRedo."&subop=categorie");
    break;

    case "catcreer" :
    $update = "INSERT INTO blog_cat VALUES ('$id', '".$cookie[1]."', '".$titre."')";
    mysql_query($update) or die(mysql_error());
    if ($update)
    redirect_url("".$ThisRedo."&subop=categorie");
    break;
    }

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Fais des "echo" de tes requêtes pour voir ce qui est réellement exécuté.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    oim
    oim est déconnecté
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 118
    Points : 50
    Points
    50
    Par défaut
    Slt, comment ca ?
    J'ai mis des echo dans les switch " if ($succes) {echo"réussie";} else {echo "erreur";};" : c'est ca ?
    Pour les 3 ca me marque réussie : créer - supprimer - modifier.

  4. #4
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    $requete = "SELECT * FROM ".$NPDS_Prefix."blog_cat WHERE auteur_id='$cookie[1]'";
    echo $requete;

    $query = mysql_query ($requete)
    ...

  5. #5
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par oceane751
    $requete = "SELECT * FROM ".$NPDS_Prefix."blog_cat WHERE auteur_id='$cookie[1]'";
    echo $requete;

    $query = mysql_query ($requete)
    ...
    Voilà c'est ça, comme ça tu sais ce qui est vraiment exécuté...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  6. #6
    oim
    oim est déconnecté
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 118
    Points : 50
    Points
    50
    Par défaut
    J'ai rajouté dans la fonction editcategorie et tous s'affichent bien :
    $query = mysql_query("SELECT * FROM ".$NPDS_Prefix."blog_cat WHERE titre='$titre' AND auteur_id='$cookie[1]'");
    while ($row = mysql_fetch_row($query)) {
    Par contre ca n'ecrit toujours pas dans la table, dans la fonction editcategorie l'"ACTION" va chercher le switch changetitre :
    case "changetitre" :
    $query = "UPDATE blog_cat SET titre='".$titre."' WHERE id='".$id."'";
    $succes=mysql_query($query) or die ("erreur : ".mysql_error());
    if ($succes) {echo"réussie";} else {echo "erreur";};
    break;
    Par contre si j'enlève WHERE id='".$id."' sa vide tous les champs de la table !

  7. #7
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    $query = "UPDATE blog_cat SET titre='".$titre."' WHERE id='".$id."'";
    $succes=mysql_query($query) or die ("erreur : ".mysql_error());
    $bloup = mysql_affected_rows ();

  8. #8
    oim
    oim est déconnecté
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 118
    Points : 50
    Points
    50
    Par défaut
    Le nombre est de 3.

  9. #9
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    ???

  10. #10
    oim
    oim est déconnecté
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 118
    Points : 50
    Points
    50
    Par défaut
    Si je fait ca :
    case "changetitre" :
    $query = "UPDATE blog_cat SET titre='".$titre."' WHERE id='".$id."'";
    $bloup = mysql_affected_rows ();
    echo"$bloup";
    break;
    Ca me marque : 3 ; ca retourne le nombre de lignes affectées lors de la dernière requête SQL, non ?

  11. #11
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    $query = "UPDATE blog_cat SET titre='".$titre."' WHERE id='".$id."'";
    $requete = mysql_query ($query);
    $bloup = mysql_affected_rows ();

  12. #12
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    $query = "UPDATE blog_cat SET titre='yopyop' WHERE id='1' ";
    $requete = mysql_query ($query) or die (mysql_error());
    $bloup = mysql_affected_rows ();
    if ($bloup)
    {
    echo "insertion reussie";
    }
    else
    {
    echo "oulalala ya une erreur !! insertion non effectuee";
    }

  13. #13
    oim
    oim est déconnecté
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 118
    Points : 50
    Points
    50
    Par défaut
    Ca ne fait pas le changement également, quand je valide ca me met aucune erreur, ca a l'aire de fonctionner sauf que ca n'ecrit pas dans la table.

  14. #14
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    ta essayer de l'executer dans phpmyadmin?
    ça s'insere bien ou aps?

  15. #15
    oim
    oim est déconnecté
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 118
    Points : 50
    Points
    50
    Par défaut
    Oui, la fonction pour creer et celle qui supprime fonctionne bien c'est juste celle pour la modification.
    J'espère etre pas trop lourd

  16. #16
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    $titre = $_POST['titre'] ?
    $id = $_POST['id'] ?

  17. #17
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    est ce que en 1er lieu, tu selectionnes des données, et ensuite tu les modifie dans des zones texte (<input type='text'...> ) ?

  18. #18
    oim
    oim est déconnecté
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 118
    Points : 50
    Points
    50
    Par défaut
    Bouh, c'est la déprime, toujours rien !

  19. #19
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    parce que ce que tu peux faire c'est une requete de selection, tu mets les résultats dans un tableau, tu creé un boutton.
    puis quand tu clike sur ce bouton, tu appelles la requete de mise à jour, du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    sql = "SELECT * FROM ta_table...
    $res = mysql_query($sql) or die(mysql_error()); 
     
    while($data = mysql_fetch_assoc($res)) {
     
       echo "<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">"; 
     
    echo "<table border =\"4\" cellpadding=\"1\" cellspacing=\"0\" bordercolor=\"\">";
       echo "<input type=\"hidden\" name=\"id\" value=\"".$data['num_cli']."\" />";
       echo "<tr><td>1er champs</td><td><input type=\"text\" name=\"1ercamps\" size ='20' value=\"".$data['1erchamps']."\" /></td></tr>";
       echo "<tr><td>2eme champs</td><td><input type=\"text\" name=\"2emechamps\" value=\"".$data['2emechamps']."\" /></td></tr>\n";
     
    .....
     
    echo "<tr><td><input type=\"submit\" name=\"sub_form\" value=\"modifier\" /></td></tr>";
     
    if(isset($_POST['sub_form'])) { 
     
     
       // si modification 
       if($_POST['sub_form']=="modifier") {
          $sql = "UPDATE `tatable` SET ".
                "`1erchamps` = '".    $_POST['1erchamps']."',
    .......
     
    $res = mysql_query($sql) or die (mysql_error()); 
       } 
    }

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Citation Envoyé par oim
    Ca ne fait pas le changement également, quand je valide ca me met aucune erreur, ca a l'aire de fonctionner sauf que ca n'ecrit pas dans la table.
    As-tu fait un echo de ta requête d'UPDATE pour l'executer dans phpmyadmin . Je sais que je ne fais que répéter ce que les autres t'on dit mais si l'update ne fait rien (ni résultat ni erreur) ca veut pê dire que $id ne correspond à aucun Id des enregistrements de ta table.

Discussions similaires

  1. [RCP] Problème avec Update Manager
    Par Robiwan59 dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 07/03/2007, 16h23
  2. [Access2003] Problème avec UPDATE
    Par PhRey dans le forum Langage SQL
    Réponses: 12
    Dernier message: 15/01/2007, 15h22
  3. Problème avec "update" du code ASP
    Par ocean_prince11 dans le forum ASP
    Réponses: 14
    Dernier message: 24/11/2006, 18h56
  4. problème avec update dans h:datatable
    Par rarrou dans le forum JSF
    Réponses: 1
    Dernier message: 03/11/2006, 15h22
  5. problème avec update
    Par chingo dans le forum Requêtes
    Réponses: 7
    Dernier message: 14/10/2006, 23h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo