Se connecter / S'enregistrer
Votre question

Script php modification news bug

Tags :
  • Echo
  • Programmation
Dernière réponse : dans Programmation
24 Juin 2006 14:15:29

Bonjour , alors voila :
sur mon site j'ai fait un systeme de news , je suis donc entrain de faire une zone administrable pour créer , modifier ou suprimer des news . Je peu en créer , en suprimer mais pas en modifier .
Voila mon script :
page 1 :
  1. <?
  2. $db = mysql_connect($dbhost, $dblogin, $dbpassword);
  3. mysql_select_db($dbname);
  4.  
  5. $sql= "SELECT * FROM `news`";
  6. $result = mysql_query($sql);
  7.  
  8. // tant qu'il y a des fiches
  9. while ($val = mysql_fetch_array($result)) { ?>
  10.  
  11. <? echo "-";?>
  12. <? echo $val["titre"] ; ?>
  13. <? echo " <a href='admin_newsmodif.php?id=$val[id]'>Modif</a>"?>
  14. <br>
  15. <? }
  16.  
  17. ?>
  18. <br>

Bon celui la marche .
La deuxieme page :
  1. <?
  2. $db = mysql_connect($dbhost, $dblogin, $dbpassword);
  3. mysql_select_db($dbname);
  4. // On place le titre et le contenu dans des variables simples
  5. // On récupère les infos de la correspondante
  6. $retour = mysql_query('SELECT * FROM news WHERE id=' . $_GET['id']);
  7. $donnees = mysql_fetch_array($retour);
  8.  
  9. // On place le titre et le contenu dans des variables simples
  10. $titre = $donnees['titre'];
  11. $contenu = $donnees['text'];
  12. $id_news = $donnees['id'];
  13. ?>
  14.  
  15. <form action="modif_news.php" method="post">
  16. <p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
  17.  
  18. <p>
  19. Contenu :
  20.  
  21. <textarea name="text" cols="50" rows="10">
  22. <?php echo $contenu; ?>
  23. </textarea>
  24.  
  25.  
  26. N°<input type="text" name="id_news" value="<?php echo $id_news; ?>"disabled='disabled' /><br/>
  27. <input type="submit" value="Envoyer" />

Celui la aussi marche.
Maintenant le troisieme , celui qui bug :
  1. <?
  2. $db = mysql_connect($dbhost, $dblogin, $dbpassword);
  3. mysql_select_db($dbname);
  4. // On place le titre et le contenu dans des variables simples
  5. // On récupère les infos de la correspondante
  6. $sql = mysql_query("UPDATE news SET titre='" . $_POST['titre'] . "', contenu='" . $_POST['text'] . "' WHERE id=" . $_GET['id']);
  7.  
  8. if($sql)
  9. echo "<br/>Modification réussie";
  10. else
  11. echo "<br/>Modifiaction échouée";
  12. ?>


Et j'obtient toujour le meme message :
Modifiaction échouée

Je croit que c'est par se que je n'arive pas a transmettre l'id de la news entre la 2ieme et la 3ieme page. Merci de votre aide

Autres pages sur : script php modification news bug

24 Juin 2006 15:22:03

J'ai réussi a transmettre l'id mais sa ne marche toujours pas ???
a c 232 L Programmation
24 Juin 2006 15:22:15

Salut,

Pour transmettre l'ID de la 2eme a la 3eme page, il faut le passer en paramètre à ta 3eme page, modifie ta balise <form> comme ceci :

  1. <form action="modif_news.php?id=$_GET['id']" method="post">


Et tu l'auras dans ton $_GET[] pour la 3eme page normalement.

Sinon, tu peux le passer en méthode POST par un <input ! type="hidden" ...> (sans !), mais faudra que tu modifies ta 3eme page pour avoir un $_POST[] plutôt qu'un $_GET[]
Contenus similaires
24 Juin 2006 15:27:47

Oui , j'ai essayer mais sa ne marche pas , donc j'ai fait un champ hidden qui contient l'id donc je transmet en $_POST mais je ne comprend pas , sa ne marche pas sa vien de ma requete ?
  1. $sql = mysql_query("UPDATE 'news' SET id='" . $_POST['id'] . "', titre='" . $_POST['titre'] . "', contenu='" . $_POST['text'] . "' WHERE id='" . $_POST['id']);


Juste pour verifier j'ai rajouter du code pour voir si les information était transmise entre la deuxieme et la troisieme page et oui elle sont transmise donc sa vien de ma requette je supose
24 Juin 2006 16:00:09

pour vérifier si sa vient de ta requete exécute comme ceci tes requete :



$req = mysql_query('ta_requete') or die(mysql_error());



tu verras si ton problème vien de ta requete ou pas !
24 Juin 2006 16:01:53

Ok merci moi j'ai fait comme sa :
  1. if($sql)
  2. echo "<br/>Modification réussie";
  3. else
  4. echo "<br/>Modifiaction échouée";
  5. ?>

24 Juin 2006 16:02:57

Et bien sa a marcher : Erreur de syntaxe près de 'règler, 'text'= Voila , je vien de règler le probleme de cara' à la ligne 1
et en supriman tout les caractere spécial :
Erreur de syntaxe près de 'WHERE `id` = 3' à la ligne 1
24 Juin 2006 16:36:48

Donc c'est une erreur de requete
aider moi svp :
  1. $sql = mysql_query("UPDATE `news` SET `id` = $_POST[id], `titre` = $_POST[titre], `text`= $_POST[text], WHERE titre='$_POST[titre]' ") or die(mysql_error());
24 Juin 2006 18:48:44

SVP aidez moi
  1. $sql = mysql_query("UPDATE `news` SET `id` = $_POST[id], `titre` = $_POST[titre], `text`= $_POST[text], WHERE titre='$_POST[titre]' ") or die(mysql_error());
25 Juin 2006 15:26:45

bonjour, pour transmettre l'id d'un page à l'autre j'utiliserai les sessions

tu mets <?php session_start(); ?> au tout début de chaque page, ensuite tu peut créer la variable $_SESSION['id'] = $_POST['id']; par exemple ce qui serais selon moi la meilleure méthode

en ce qui concerne ta requette sql, je ne l'ai pas testé mais j'aurais fait ça comme ceci :

$sql = mysql_query("UPDATE news SET id = ' . $_POST['id'] . ', titre = ' . $_POST['titre'] . ', text = ' . $_POST['text'] . ', WHERE titre=' . $_POST['titre'] . ' ") or die(mysql_error());


j'espère j'aurais pu t'aider.
25 Juin 2006 16:10:07

Merci , c'est bon j'ai trouver d'où venai mon erreur :
Un probleme dans la equete sql ( j'aivais mis une virgule avant le where alors qu'il falait pas)
Ensuite j'avai oublier de ferme mon formulair : </form>
Et ensuite pour prend en compte les virgule et tout les caraceter spéciaux il me falai mettre : stripslashes($val[text]) pour afficher les news et addslashes() pour pouvoir ecrire les news sans probleme de requete a cause de la ponctuation .
EN tout cas merci de votre aide .
  1. <?
  2. $db = mysql_connect($dbhost, $dblogin, $dbpassword);
  3. mysql_select_db($dbname);
  4.  
  5. $sql= "SELECT * FROM `news`";
  6. $result = mysql_query($sql);
  7.  
  8. // tant qu'il y a des fiches
  9. while ($val = mysql_fetch_array($result)) { ?>
  10.  
  11. <? echo "-";?>
  12. <? echo $val["titre"] ; ?>
  13. <? echo "  <a href='admin_newsmodif.php?id=$val[id]'>Modif</a>"?>
  14. <? echo "  <a href='admin_newssupr.php?id=$val[id]'>Supr</a>"?>
  15. <br>
  16. <? }
  17.  
  18. ?>

fichier 2 :
  1. <?
  2. $db = mysql_connect($dbhost, $dblogin, $dbpassword);
  3. mysql_select_db($dbname);
  4. // On place le titre et le contenu dans des variables simples
  5. // On récupère les infos de la correspondante
  6. $retour = mysql_query('SELECT * FROM news WHERE id=' . $_GET['id']);
  7. $donnees = mysql_fetch_array($retour);
  8.  
  9. // On place le titre et le contenu dans des variables simples
  10. $titre = addslashes($donnees['titre']);
  11. $contenu = addslashes($donnees['text']);
  12. $id_news = addslashes($donnees['id']);
  13. ?>
  14.  
  15. <form action="modif_news.php" method="post">
  16. <p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
  17.  
  18. <p>
  19. Contenu :
  20.  
  21. <textarea name="text" cols="50" rows="10">
  22. <?php echo $contenu; ?>
  23. </textarea>
  24.  
  25.  
  26. <input type="hidden" name="id" value="<?php echo $id_news; ?>" /><input type="hidden" name="titre2" value="<?php echo$titre; ?>"/><br/>
  27. <input type="submit" value="Envoyer" /></form>

fichier 3
  1. <?
  2. $db = mysql_connect($dbhost, $dblogin, $dbpassword);
  3. mysql_select_db($dbname);
  4. // On place le titre et le contenu dans des variables simples
  5. $titre = addslashes($_POST['titre']);
  6. $contenu = addslashes($_POST['text']);
  7. $id_news = addslashes($_POST['id']);
  8. // On récupère les infos de la correspondante
  9. $sql = mysql_query("UPDATE `news` SET `id` = $id_news, `titre` = '$titre', `text`= '$contenu' WHERE `id` = $id_news ") or die(mysql_error());
  10. if($sql)
  11. echo "<br/>Modification réussie";
  12. echo "<br/><a href='admin_news.php'>Retour</a>"
  13. else
  14. echo "<br/>Modifiaction échouée";
  15. echo "<br/><a href='admin_news.php'>Retour</a>"
  16. ?>


ps:je vais surement utiliser les session comme tu me l'a expliquer.
25 Juin 2006 16:24:22

Je pense que tu devrais utiliser une variable GET dans l'url d'action du formulaire ça serait plus simple.

J'ai lu que tu avais déja essayé mais je pense que ça marcherait si tu ecrivais ça dans le HTML :

<form action="page.php?id=<?php echo $_GET['id']; ?>">

Ou ça dans le php :

echo "<form action \"page.php?id=".$_GET['id']."\">";
25 Juin 2006 17:39:49

Ok merci je vais voir sa
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS