Votre question

Php Update d'information

Tags :
  • Cellspacing
  • Programmation
Dernière réponse : dans Programmation
25 Octobre 2009 01:29:55

Bonjour,
j'ai donc un probleme dans mon code php visant à faire une modification dans ma BDD avec un formulaire.

form.php:

<?php
include('connexion.php');

if(isset($_GET['modifier']))
{
$sql = 'SELECT * FROM article WHERE id='.$_GET['modifier'].'';
$resultat = mysql_query($sql);
$donnees = mysql_fetch_array($resultat);
{
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
<form method="post" action="liste_article.php">
<input type="hidden" name="action" value="modifier" />
<input type="hidden" name="id" value="'.$donnees['id'].'">
<tr>
<td colspan="3"><center>Titre: <input name="titre" type="text" value="'; echo $donnees['titre']; echo '"/></center><br /></td>
</tr>
<tr>
<td colspan="3"><center><textarea name="contenu" rows="30" cols="150">'; echo $donnees['contenu']; echo '</textarea></center><br /></td>
</tr>
<tr>
<td><center>Image: <input name="image" type="text" value="'; echo $donnees['image']; echo '"/></center></td>
<td><center>Auteur: <input name="auteur" type="text" value="'; echo $donnees['auteur']; echo '" /></center></td>
<td><center>Catégorie: <select name="categ">
<option value="'; echo $donnees['categ']; echo '">'; echo $donnees['categ']; echo '</option>
<option value="internet">Internet</option>
<option value="high-tech">High-Tech</option>
</select></center></td>
</tr>
<tr>
<td colspan="3"><br /><center><input type="submit" value="Modifier" /></center></td>
</tr>
</form>
</table>
';
}
}

A ce niveau la normalement il n'y a pas de probleme mais je vous le met au cas où ca vous aiderai.
Puis liste.php:

<?php
include('connexion.php');

if(isset($_POST['titre']) AND isset($_POST['contenu']) AND isset($_POST['image']) AND isset($_POST['auteur']) AND isset($_POST['categ']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
$image = addslashes($_POST['image']);
$auteur = addslashes($_POST['auteur']);
$categ = addslashes($_POST['categ']);

if($_POST['action'] == "ajouter")
{
//Cette partie fonctionne bien.
$sql = "INSERT INTO article VALUES('', '" . $titre . "', '" . $contenu . "', '" . $image . "', '" . $auteur . "', '" . $categ . "','" . time() . "')";
mysql_query($sql);
}
elseif($_POST['action'] == "modifier")
{
//Cette partie ne fonctionne pas. Pourtant lorsque j'écris echo $titre par exemple apres l'avoir modifier ca m'affiche bien la valeur modifier mais au niveau de la requete ca n'est pas pris en compte.

$_POST['id'] = addslashes($_POST['id']);
$titre = $_POST['titre'];
$contenu = $_POST['contenu'];
$image = $_POST['image'];
$auteur = $_POST['auteur'];
$categ = $_POST['categ'];

mysql_query("UPDATE article SET titre = '" . $titre . "', contenu = '" . $contenu . "', image = '" . $image . "', auteur = '" . $auteur . "', categ = '" . $categ . "' WHERE id = '".$_POST['id']."'");
}
}

if(isset($_GET['supprimer_article']))
{

$suppr_article = addslashes($_GET['supprimer_article']);
$sql = 'DELETE FROM article WHERE id=\'' . $suppr_article . '\'';
mysql_query($sql);

}

?>

Donc si vous pouviez m'aider ca m'arrangerai beaucoup. Tout ce que je peux vous dire, c'est que d'apres moi il y a le probleme au niveau du UPDATE mais Quoi ? Ceci est encore un mystere pour moi.

Merci d'avance.

Autres pages sur : php update information

25 Octobre 2009 11:52:14

Bonjour,
je pense que c'est bien cette ligne qui ne va pas : mysql_query("UPDATE article SET titre = '" . $titre . "', contenu = '" . $contenu . "', image = '" . $image . "', auteur = '" . $auteur . "', categ = '" . $categ . "' WHERE id = '".$_POST['id']."'" );

Essai plutôt celle ci :
mysql_query("UPDATE article SET titre='$titre', contenu='$contenu', image='$image', auteur='$auteur', categ='$categ' WHERE id='$_POST['id']'");

Il n'est pas nécessaire de concaténer dans une requête mysql.
m
0
l
25 Octobre 2009 11:54:55

Bonjour merci d'avoir répondu mais j'ai finalement trouvé la solution.
En plus de ça, j'ai oublié de mettre addslashes devant $_POST['..'] ce qui me provoquer une autre erreur quand je mettais des apostrophes.

Merci quand meme DivX_666
m
0
l
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