Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Achat - Vente Divers : Oouata et 15 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Probleme pour Modifier un formulaire

 
n°16150
nikeman
Profil : Membre
Posté le 25-03-2006 à 12:42:58  profilanswer
 

Bonjour à tous,
alors voila je souahaite pouvoir modifier mon forumaire de news dans mon administration.
 
Pour cela, j'ai 2 pages :
news_modif.php et news_modif2.php
sur la 1e page, il y a le formulaire et le contenu de ce formulaire, faisant appel à la 2e page qui va mettre à jour la base de donnée.
 
Mon premier probleme intervient dans le formulaire :
J'ai un champ "titre" et un champ "texte", j'aimerai mettre un <textarea> pour "texte" et non un simple <input type> mais lorsque je mets <textearea> il n'affiche plus rien dans ce champ :
 
Ici ça fonctionne :

Code :
  1. <td>Texte</td>
  2.       <td><input type="text" name="texte"  cols="50" rows="15" value="<? echo $texte; ?>"></td>


 
Mais pas ici :

Code :
  1. <td>Texte</td>
  2.       <td><textarea name="texte"  cols="50" rows="15" value="<? echo $texte; ?>"</textarea></td>


 
Pourquoi ?
 
Mon 2e probleme se situe sans doute dans la 2e page :
lorsque je valide ma modification, voici l'erreur que j'ai :
 

Citation :

Notice: Undefined index: titre in f:\easyphp1-8\www\bts\admin\news_modif2.php on line 8
Erreur de syntaxe près de ' TEST WHEN id = 18' à la ligne 1


 
voici le php :
 

Code :
  1. <?
  2. require "secret/connect.php";
  3. //connection au serveur
  4.   //récupération des valeurs des champs:
  5.  
  6.   $titre = $_POST['titre'] ;
  7.  
  8.   $texte = $_POST['texte'] ;
  9.   $id    = $_POST['id'] ;
  10.  
  11.   //création de la requête SQL:
  12.   $sql = "UPDATE news SET titre = $titre, $texte  WHEN id = $id ";
  13.  
  14.   //exécution de la requête SQL:
  15.   $requete = mysql_query($sql) or die( mysql_error() ) ;
  16.  
  17.   //affichage des résultats, pour savoir si la modification a marchée:
  18.   if($requete)
  19.   {
  20.     echo("La modification à été correctement effectuée" ) ;
  21.     echo ("<p><txt2><a href=index.php?p=new_del>Retour Gestion des News</a> | <a href=index.php?p=news>Ajouter News</a> | <a href=index.php?p=news_del>Retour Gestion News</a></div></txt2>" );
  22.   }
  23.   else
  24.   {
  25.     echo("La modification à échouée" ) ;
  26.     echo ("<p><txt2><a href=index.php?p=new_del>Retour Gestion des News</a> | <a href=index.php?p=news>Ajouter News</a> | <a href=index.php?p=news_del>Retour Gestion News</a></div></txt2>" );
  27.   }
  28. ?>


 
Merci d'avance pour votre aide :)

n°16151
Tastito
So lost in love
Profil : Dinosaure
Posté le 25-03-2006 à 13:04:42  profilanswer
 

Alors à l'oeil j'ai pas testé mais bon pour la première erreur remplace par :  
 

Code :
  1. <td>Texte</td>
  2.       <td><textarea cols="50" rows="15" value="<? echo $texte; ?>"/></td>


 
Pour la deuxième, titre n'est pas envoyer par la page precedente(en gros le tableau $_POST ne connaît pas l'indice 'titre' et donc ne peux pas retourner de valeur), donc si tu ne verifie pas que tes champs sont bien remplies fait ca :

Code :
  1. @$titre = $_POST['titre'] ;


 
à la place de  
 

Code :
  1. $titre = $_POST['titre'] ;


 
Le @ 'supprime' les messages d'erreurs
 
 
 
 


---------------
"Oh, that girl, you know she really, blows my, head apart,  
And the sky and the stars, all, synkronized...  
Eh no.... No no no, now me and her,  
We are in love... "  
n°16154
nikeman
Profil : Membre
Posté le 26-03-2006 à 15:42:27  profilanswer
 

Merci pour le probleme 1 :)
pour le prob², j'ai rajouté isset() mais ça ne fonctionne toujours pas, enfait il n'execute meme pas la requete :/
 
page news_modif.php :
 

Code :
  1. <link href="style.css" rel="stylesheet" type="text/css">
  2. <?
  3. require "secret/connect.php";
  4. $id  = $_GET['id'] ;
  5. $sql = mysql_query ("SELECT id,titre,texte, DATE_FORMAT(news.date, '%d/%m/%Y') AS date_formattee FROM news WHERE id = $id " );
  6.    
  7.      while ($ze_news = mysql_fetch_array ($sql))
  8.         {
  9.             $titre = $ze_news["titre"];
  10.          
  11.             $texte = $ze_news["texte"];
  12.             $id    = $ze_news["id"];
  13.  
  14.   ?>
  15.   <form name="insertion" action="index.php?p=news_modif2" method="POST">
  16.   <input type="hidden" name="id" value="<?php echo($id) ;?>">
  17.   <table border="0" align="center" cellspacing="2" cellpadding="2">
  18.     <tr align="center">
  19.       <td>Titre</td>
  20.       <td><input type="text" name="Titre" size="60" value="<? echo $titre; ?>"></td>
  21.     </tr>
  22.      
  23.     <tr align="center">
  24. <td>Texte</td>
  25.        <td><textarea name="texte"  cols="60" rows="25"><? echo $texte; ?></textarea></td>
  26.     </tr>
  27.     <tr align="center">
  28.       <td colspan="2"><input type="submit" value="modifier"></td>
  29.     </tr>
  30.   </table>
  31.  
  32. </form>
  33.   <?php
  34.   }
  35.   ?>


 
news_modif2.php :  
 

Code :
  1. <?
  2. require "secret/connect.php";
  3. //connection au serveur
  4.   //récupération des valeurs des champs:
  5. if ( isset($_POST['titre']) && isset($_POST['texte']) && isset($_POST['id']))
  6. {
  7.    
  8.   @$titre = $_POST['titre'] ;
  9.  
  10.   @$texte = $_POST['texte'] ;
  11.   @$id    = $_POST['id'] ;
  12.  
  13.   //création de la requête SQL:
  14.   $sql = "UPDATE news SET titre = $titre, $texte WHEN id = $id ";
  15.  
  16.   //exécution de la requête SQL:
  17.   $requete = mysql_query($sql) or die( mysql_error()) ;
  18.  
  19.   //affichage des résultats, pour savoir si la modification a marchée:
  20.   if($requete)
  21.   {
  22.     echo("La modification à été correctement effectuée" ) ;
  23.     echo ("<p><txt2><a href=index.php?p=new_del>Retour Gestion des News</a> | <a href=index.php?p=news>Ajouter News</a> | <a href=index.php?p=news_del>Retour Gestion News</a></div></txt2>" );
  24.   }
  25.   else
  26.   {
  27.     echo("La modification à échouée" ) ;
  28.     echo ("<p><txt2><a href=index.php?p=new_del>Retour Gestion des News</a> | <a href=index.php?p=news>Ajouter News</a> | <a href=index.php?p=news_del>Retour Gestion News</a></div></txt2>" );
  29.   }
  30.  
  31.   }
  32.   else
  33.   {
  34.   echo("<div align=center>Echec de la requête</div>" ) ;
  35. }
  36. ?>


 
 
 

n°16157
Tastito
So lost in love
Profil : Dinosaure
Posté le 26-03-2006 à 23:01:29  profilanswer
 

est--ce que les valeurs des variables s'affiche dans le form?  
Si oui essaie de faire :  
 

Code :
  1. while ($row = mysql_fetch_assoc($sql)) {
  2.  $titre = $row ['titre'];
  3.                 ......
  4.         }


Message édité par Tastito le 26-03-2006 à 23:02:09

---------------
"Oh, that girl, you know she really, blows my, head apart,  
And the sky and the stars, all, synkronized...  
Eh no.... No no no, now me and her,  
We are in love... "  
n°16160
nikeman
Profil : Membre
Posté le 27-03-2006 à 10:33:37  profilanswer
 

Tu parles de la page news_modif.php ?
Oui, les valeurs des variables s'affichent correctement dans le form.
 
Tu veux que je remplace
 

Code :
  1. while ($ze_news = mysql_fetch_array ($sql))
  2. {
  3. $titre = $ze_news["titre"];
  4. $texte = $ze_news["texte"];
  5. $id    = $ze_news["id"];


 
 
par  
 

Code :
  1. while ($row = mysql_fetch_assoc($sql))
  2. $titre = $row ['titre'];
  3. $texte = $row ['texte'];
  4. $id = $row ['id'];


 
je viens d'essayer et ça ne change rien :/

n°16165
nayluge
c le plu bo jour de ma vie ...
Profil : Habitué
Posté le 27-03-2006 à 18:49:06  profilanswer
 

Titre avec une majuscule dans la page 1 mais pas la 2 ... enfin  à part ça je vois pas

n°16169
nikeman
Profil : Membre
Posté le 27-03-2006 à 23:26:31  profilanswer
 

Non ce n'est pas ça.
Bon il y a du progres, j'ai enlévé la ligne isset... qui etait enfait un peu inutile.
L'update fonctionne, mais uniquement pour texte, pas pour titre :/

n°16171
nikeman
Profil : Membre
Posté le 28-03-2006 à 12:00:06  profilanswer
 

c'est reglé merci quand meme :)
c'etait titre en maj en effet ;)


Aller à :
Ajouter une réponse