Probleme pour Modifier mon formulaire

Probleme pour Modifier mon formulaire - PHP - Programmation

Marsh Posté le 25-03-2006 à 12:52:42    

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 :)


---------------
Make Portraits, Not War!  
Reply

Marsh Posté le 25-03-2006 à 12:52:42   

Reply

Marsh Posté le 25-03-2006 à 13:16:26    

problème 1 :

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


 
problème 2 :
l'erreur arrive lorsque ta variable n'a jamais été déclarée ou initialisée
pour le résoudre tu peux faire :

Code :
  1. if(isset($_POST['titre']))
  2. {
  3.       ...
  4. }


mais la vraie résolution serait de se poser la question : "pourquoi je n'ai rien dans ma variable $titre ? est-ce tout simplement parce que je n'ai pas transmis cette variable depuis mon formulaire ?"


Message édité par couak le 25-03-2006 à 13:17:09
Reply

Marsh Posté le 25-03-2006 à 17:48:11    

Merci bcp pour le probleme 1 :)
Pour le 2e, voici le code modifié de la page "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']) AND !isset($_POST['texte']) AND !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 = $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. ?>


 
cette fois, aucun message d'erreur, page blanche, mais toujours pas de modification :/


Message édité par ludo2604 le 26-03-2006 à 23:18:58

---------------
Make Portraits, Not War!  
Reply

Marsh Posté le 25-03-2006 à 19:52:41    

moi je ferais plutôt ca :

Code :
  1. if ( isset($_POST['titre']) && isset($_POST['texte']) && isset($_POST['id']))

Reply

Marsh Posté le 26-03-2006 à 14:55:54    

Toujours rien du tout :/
La requête ne s'execute même pas.
 
Voici le code de news_modif.php, l'erreur doit venir de cette page ?
 

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


Message édité par ludo2604 le 26-03-2006 à 23:19:19

---------------
Make Portraits, Not War!  
Reply

Marsh Posté le 26-03-2006 à 23:19:59    

up


---------------
Make Portraits, Not War!  
Reply

Marsh Posté le 27-03-2006 à 01:07:54    

t'as essayé de débogguer ? moi je la vois d'ici ton erreur :) suffit de faire qques "print" bien placés, de trapper les erreurs de MySQL et tu verras

Reply

Marsh Posté le 27-03-2006 à 12:52:29    

Merci j'ai trouvé


Message édité par ludo2604 le 28-03-2006 à 11:20:01

---------------
Make Portraits, Not War!  
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed