Page 1 sur 1

Probleme pour Modifier mon formulaire

Posté : 26 mars 2006, 22:54
par Ludoo
Bonjour à tous,
alors voila je souhaite pouvoir modifier mon forumaire de news dans mon administration.

Pour cela, j'ai 2 pages :
news_modif.php & 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 probleme est le suivant : lorsque je valide ma modification, rien ne s'affiche, enfait la requête n'est pas executée :/

Le code de la page news_modif.php :

<link href="style.css" rel="stylesheet" type="text/css">

<script language="javascript" type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "textareas"
});
</script>
<?
require "secret/connect.php";


$id  = $_GET['id'] ;


$sql = mysql_query ("SELECT id,titre,texte, DATE_FORMAT(news.date, '%d/%m/%Y') AS date_formattee FROM news WHERE id = $id ");
	     
     while ($ze_news = mysql_fetch_array ($sql))

        {

            $titre = $ze_news["titre"];
          
            $texte = $ze_news["texte"];

            $id    = $ze_news["id"];
  
  ?> 
  <form name="insertion" action="index.php?p=news_modif2" method="POST">
  <input type="hidden" name="id" value="<?php echo($id) ;?>">
  <table border="0" align="center" cellspacing="2" cellpadding="2">
    <tr align="center">
      <td>Titre</td>
      <td><input type="text" name="Titre" size="60" value="<? echo $titre; ?>"></td>
    </tr>
      
    <tr align="center">
 <td>Texte</td>
       <td><textarea name="texte"  cols="60" rows="25"><? echo $texte; ?></textarea></td> 
    </tr>
    <tr align="center">
      <td colspan="2"><input type="submit" value="modifier"></td>
    </tr>
  </table>
  
</form>
  <?php
  }

  ?>
page news_modif2.php :
<?
require "secret/connect.php";
//connection au serveur


  //récupération des valeurs des champs:

if ( isset($_POST['titre']) && isset($_POST['texte']) && isset($_POST['id'])) 
{ 

     
  $titre = $_POST['titre'] ;
  
  $texte = $_POST['texte'] ;
 
  $id    = $_POST['id'] ;
  
  //création de la requête SQL:
  $sql = mysql_query("UPDATE news SET titre = $titre, texte = $texte WHERE id = $id ") or die( mysql_error());
  

 
  
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
    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>");

  }
  else
  {
    echo("La modification à échouée") ;
    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>");

  }
  
  }
  else
  {
  echo("<div align=center>Echec de la requête</div>") ;
}
?>
Merci d'avance pour votre aide !

Posté : 27 mars 2006, 00:59
par Ryle
Un petit loupé dans ton code non ? tu colles dans "$sql" le résultat du mysql_query et tu testes ensuite la valeur de "$requete" variable qui n'a pas été déclaré jusque là, et qui à priori doit te retourner faux à chaque fois... :)

Par ailleurs, ta requête n'est à priori pas bonne et doit générer une erreur (à moins que $titre et $texte ne soient dse nombres) car les champs textes doivent être entourés d'apostrophe pour être distingués des mots clés sql :
mysql_query("UPDATE news SET titre = '$titre', texte = '$texte' WHERE id = $id ")  or die( mysql_error()); 
il y a peut être d'autres soucis, mais je ne suis pour l'instant pas allé voir plus loin :)

Posté : 27 mars 2006, 10:42
par Ludoo
Merci de ton aide !
En effet, quelques erreurs d'inattention ...

voici code corrigé :
<?
require "secret/connect.php";
//connection au serveur


  //récupération des valeurs des champs:

if ( isset($_POST['titre']) && isset($_POST['texte']) && isset($_POST['id'])) 
{ 

     
  $titre = $_POST['titre'] ;
  
  $texte = $_POST['texte'] ;
 
  $id    = $_POST['id'] ;
  
  //création de la requête SQL:
  $sql = mysql_query("UPDATE news SET titre = '$titre', texte = '$texte' WHERE id = $id ")  or die( mysql_error());
  

  
  //affichage des résultats, pour savoir si la modification a marchée:
  if($sql)
  {
    echo("La modification à été correctement effectuée") ;
    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>");

  }
  else
  {
    echo("La modification à échouée") ;
    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>");

  }
  
  }
  else
  {
  echo("<div align=center>Echec de la requête</div>") ;
}
?>
Il m'affiche toujours "Echec de le requête" c'est à dire qu'il n'execute même pas la requête :/

Posté : 27 mars 2006, 12:43
par Truc
ça veut donc doire que tu n'entres pas dans le 1er test d'existence des variables...

Tu as un champ < name="Titre" > et testes le retour avec < $_POST['titre'] >
Majuscule / minuscule

Posté : 28 mars 2006, 11:48
par Ludoo
Merci c'est nickel :)