Probleme avec fonction update

Petit nouveau ! | 4 Messages

26 mai 2005, 11:29

Hello à tous :)

Voilà, je ne sais pas pourquoi, mais la fonction update et moi , on s'aime pas... ^^
Afin de modifier le nom d'une catégorie dans la zone admin d'un site, j'ai procédé de la maniere suivante:

Formulaire:

Code : Tout sélectionner

<form method="POST"> <font class='a1'><strong>Modifier une catégorie:</font></strong> <TABLE class=design bgColor=#ffffff cellPadding=1 cellSpacing=0 width=600 border='1' BORDERCOLOR="#C0C0C0" STYLE="border-collapse: collapse"> <TR> <TD class='a1' width=80><strong>ID: <INPUT maxLength=2 size=2 name=idcat></font></strong></td> <TD class='a1'><b>Nouveau nom:</b> <INPUT maxLength=50 size=30 name=newnom></font>&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" alt="submit2" value="Valider la modification" width="66" height="20" hspace="5" vspace="5" border="0"></td></font> </tr> </table> </form>
Code PHP:
       if(isset($_POST['idcat'])){

               $sql2 = 'UPDATE catz SET nomcat='.$_POST['newnom'].' WHERE id='.$_POST['idcat'].'';
                $result2 = mysql_query($sql2) or die( mysql_error() );
                if ($result2){
                          echo "<font color=red>Catégorie correctement modifiée dans la base de données ! :)</font><br>";
                }
                        }
Sachant que j'affiche un listing des categories avec leur ID.
Ainsi, pour faire la modification, il suffit d'entrer l'ID de la categorie que l'on souhaite modifier, ainsi que le nouveau nom désiré.
Malheureusement, à la validation, j'obtient un "Unknown column 'Nouveau nom de categorie' in 'field list'
Il croit donc que je tape un nom de champs, et j'avoue que je comprend pas du tout quelle est mon erreur... :'(

Si quelqu un avait une idée ^^
Merci !

kjb

Mammouth du PHP | 19672 Messages

26 mai 2005, 11:45

Salut,
indente correctement ton code et aère-le aussi, ça évite bien des surprises:
<?php
if(isset($_POST['idcat']))
{
    $sql2 = "UPDATE catz SET nomcat = ". $_POST['newnom']." WHERE id = ".$_POST['idcat'];
    $result2 = mysql_query($sql2) or die( mysql_error() );
    if ($result2)
    {
        echo "<font color=red>Catégorie correctement modifiée dans la base de données ! :)</font><br>";
    }
}
?>
Attention aussi aux mélanges de " et de '
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 46 Messages

26 mai 2005, 11:48

La valeur de la propriété action de la form c'est koi ?? ou bien c'est deux codes se trouve ds le mm fichier si c le cas est ce que tu peut nous extraire tout le fichier ?
L'informatique c'est ma vie

Petit nouveau ! | 4 Messages

26 mai 2005, 12:05

Effectivement, mon côté "bordélique" se retrouve meme dans mon code ^^
J'ai pas mis de valeur action dans le form, c est vrai, mais sur la meme page il y a egalement l ajout de catégorie qui fonctionne tres bien.

Sinon, voici le code entier de la page:
<?
        chdir("..");
        include("./include/common.php");
        include("accesscontrol.php");
        include("header.php");
        if(isset($_POST['ajoutcat'])){

                $sql = 'INSERT INTO catz (nomcat) VALUES ("'.$_POST['ajoutcat'].'")';
                $result = mysql_query($sql) or die( mysql_error() );
                if ($result){
                          echo "<font color=red>Catégorie correctement ajoutée dans la base de données ! :)</font><br>";
                }
                        }

       if(isset($_POST['idcat'])){

               $sql2 = 'UPDATE catz SET nomcat='.$_POST['newnom'].' WHERE id='.$_POST['idcat'].'';
                $result2 = mysql_query($sql2) or die( mysql_error() );
                if ($result2){
                          echo "<font color=red>Catégorie correctement modifiée dans la base de données ! :)</font><br>";
                }
                        }

              $listcats = mysql_query('SELECT * FROM catz');
?>
<form method="POST">
<TABLE class=design bgColor=#ffffff cellPadding=1 cellSpacing=0 width=600 border='1' BORDERCOLOR="#C0C0C0" STYLE="border-collapse: collapse">
<TR>
<TD class='a1' width=200><strong>Ajouter une catégorie:</font></strong></td>
<TD class='a1'><INPUT maxLength=200 size=25 name=ajoutcat>&nbsp;&nbsp;&nbsp;&nbsp;<font size="1" face="Verdana, Arial, Helvetica, sans-serif"><input type="submit" alt="submit" value="Ajouter" width="66" height="20" hspace="5" vspace="5" border="0"></font>
</tr>
</table>
</form>

<form method="POST">
<font class='a1'><strong>Modifier une catégorie:</font></strong>
<TABLE class=design bgColor=#ffffff cellPadding=1 cellSpacing=0 width=600 border='1' BORDERCOLOR="#C0C0C0" STYLE="border-collapse: collapse">
<TR>
<TD class='a1' width=80><strong>ID: <INPUT maxLength=2 size=2 name=idcat></font></strong></td>
<TD class='a1'><b>Nouveau nom:</b> <INPUT maxLength=50 size=30 name=newnom></font>&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" alt="submit2" value="Valider la modification" width="66" height="20" hspace="5" vspace="5" border="0"></td></font>
</tr>
</table>
</form>

<font class='a1'><strong>Liste des catégories:</font></strong>
<? while ($donnees = mysql_fetch_array($listcats) )
{ ?>
<TABLE class=design bgColor=#ffffff cellPadding=1 cellSpacing=0 width=600 border='1' BORDERCOLOR="#C0C0C0" STYLE="border-collapse: collapse">
<TR>
<TD class='a1' width=50><strong>ID: <font color=#0000FF><? echo $donnees['id']; ?></font></font></strong></td>
<TD class='a1'><b>Nom:</b> <font color=#0000FF><? echo $donnees['nomcat']; ?></font></td></font>
</tr>
</table>
<?
  }      include("footer.php");
?>

Eléphant du PHP | 155 Messages

26 mai 2005, 12:10

<font class='a1'><strong>Modifier une catégorie:</font></strong>
ferme </strong> avant </font>.

Petit nouveau ! | 4 Messages

26 mai 2005, 12:18

Grossiere erreur nocturne de code pas propre, en effet.
Ca et d'autres </font> inutiles.
Merci.

Petit nouveau ! | 4 Messages

26 mai 2005, 15:04

Euh...Petit up car mon probleme n est pas résolu...
J'ai beau essayer quelques variantes dans le if ou de reunis les 2 <form> en un seul , j'ai toujours le meme resultat: "Unknown column 'Nouveau nom de categorie' in 'field list' "

Merki...