La fonction UPDATE ne fonctionne pas

Résolu/Fermé
killianwebmaster - 30 juil. 2013 à 15:34
 killianwebmaster - 3 août 2013 à 21:37
Bonjour, je suis en train de créer un site, et quand je veux modifier un article, je ne peux pas car ça me renvoi l'erreur suivante : Parse error: syntax error, unexpected ')', expecting '&' or T_VARIABLE in C:\Program Files (x86)\wamp\www\superminegold\admin\functions\update.php on line 4
Voici le code de la page edit

<?php
include('includes/connect.php');
include('includes/header.php');
?>
<div class='container'>
<h3>Editer l'article</h3>
<?php
include('functions/update.php');

if(isset($_POST['submit'])){

$titre = mysql_real_escape_string(htmlentities(trim($_POST['titre'])));
$auteur = mysql_real_escape_string(htmlentities(trim($_POST['auteur'])));
$contenu = mysql_real_escape_string(htmlentities(trim($_POST['contenu'])));

if(strlen($titre)<4)
{
$errors[] = "Veuillez saisir un nom d'article";
}
if(strlen($auteur)<3)
{
$errors[] = "Veuillez saisir votre nom";
}
if(strlen($contenu)<30)
{
$errors[] = "Veuillez saisir un contenu de minimum 30 caractères";
}
if(!empty($errors))
{
foreach($errors as $error)
{
echo "<div style='color:red'>".$error."</div>";
}
}else{
changer_article($titre,$auteur,$contenu);
die('<div style="color:green; font-size:20px;">Votre article a bien été modifier.</div><a href="blog.php" style="font-size:19px;">Retourner à la page blog</a>');
}
}
include('functions/blog.func.php');
$articles = recup_articles();
foreach($articles as $article){
?>
<form method="POST" action="">
<input type="text" name="titre" maxlength="100" placeholder="Titre" class='span4' value='<?php echo $article['nom_article']; ?>'><br/>
<input type="text" name="auteur" maxlength="50" placeholder="Nom de l'auteur" class='span4' value='<?php echo $article['auteur_article']; ?>'><br/>
<textarea name="contenu" class='span4' placeholder="Contenu" style="height:100px"><?php echo $article['contenu_article']; ?></textarea><br/><br/>
<input type="submit" name="submit" value="Poster" class='btn btn-success'>
</form>
</div>
<?php
}
?>

Et voici le code de la page update (ou il y a la fonction et l'erreur)

<?php
//la function qui va se charger d'éditer l'article
function changer_article($titre,$auteur,contenu){
$query= mysql_query("UPDATE articles SET nom_article='$titre', auteur_article='$auteur', contenu_article='$contenu'
WHERE id_article={$_GET['id']}
") or die(mysql_error());
}
?>

Voila les codes, et si quelqu'un peut m'aider, je le remercie beaucoup.
Merci, au revoir.
A voir également:

6 réponses

oraceLaLimace Messages postés 35 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 15 novembre 2013 8
Modifié par oraceLaLimace le 3/08/2013 à 12:14
Salut,

Dans les deux solutions, pour la méthode changer_article il manque un $ sur le troisième paramètre :

function changer_article($titre,$auteur,contenu){

function changer_article($titre,$auteur,$contenu){

C'est ce qu'indique le code d'erreur que tu as copier ici.
1
Stanislas Poisson Messages postés 423 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 66
30 juil. 2013 à 15:45
pourquoi id_article={$_GET['id']} et pas id_article='$_GET['id']'?
0
killianwebmaster
31 juil. 2013 à 15:57
C la même chose.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 30/07/2013 à 17:45
je ne vois pas comment tu peux avoir un GET en postant un formulaire en POST
mets l'id en champ caché hidden dans le formulaire

<?php
include('includes/connect.php');
include('includes/header.php');
?>
<div class='container'>
<h3>Editer l'article</h3>
<?php
include('functions/update.php');

if(isset($_POST['submit'])){

	$titre = mysql_real_escape_string(htmlentities(trim($_POST['titre'])));
	$auteur = mysql_real_escape_string(htmlentities(trim($_POST['auteur'])));
	$contenu = mysql_real_escape_string(htmlentities(trim($_POST['contenu'])));

	if(strlen($titre)<4)
	{
		$errors[] = "Veuillez saisir un nom d'article";
	}
	if(strlen($auteur)<3)
	{
		$errors[] = "Veuillez saisir votre nom";
	}
	if(strlen($contenu)<30)
	{
		$errors[] = "Veuillez saisir un contenu de minimum 30 caractères";
	}
	if(!empty($errors))
	{
		foreach($errors as $error)
		{
			echo "<div style='color:red'>".$error."</div>";
		}
	}else{
		if(changer_article($titre,$auteur,$contenu)){
			//on ne met le message OK qui si fonction UPDATE renvoie true
			die('<div style="color:green; font-size:20px;">Votre article a bien été modifier.</div><a href="blog.php" style="font-size:19px;">Retourner à la page blog</a>');
		}
	}
}
include('functions/blog.func.php');
$articles = recup_articles();
foreach($articles as $article){
?>
	<form method="POST" action="">
	<input type="text" name="titre" maxlength="100" placeholder="Titre" class='span4' value='<?php echo $article['nom_article']; ?>'><br/>
	<input type="text" name="auteur" maxlength="50" placeholder="Nom de l'auteur" class='span4' value='<?php echo $article['auteur_article']; ?>'><br/>
	<textarea name="contenu" class='span4' placeholder="Contenu" style="height:100px"><?php echo $article['contenu_article']; ?></textarea><br/><br/>
	<input type="hidden" name="id" value="<?php echo $article['id']; ?>" />
	<input type="submit" name="submit" value="Poster" class='btn btn-success'>
	</form>
	
<?php
}
?>
</div> <!-- ce /div etait mal placé dans la boucle -->

Et voici le code de la page update (ou il y a la fonction et l'erreur)

<?php
//la function qui va se charger d'éditer l'article
function changer_article($titre,$auteur,contenu){
$query= mysql_query("UPDATE articles SET nom_article='$titre', auteur_article='$auteur', contenu_article='$contenu'
WHERE id_article='".$_POST."'") or die(mysql_error());
//si ok on renvoie true
if($query) return true;
}
?>



0
killianwebmaster
31 juil. 2013 à 15:57
merci pour votre réponse, mais ça ne marche toujours pas même comme vous me l'avez dit et même en mettant un champs caché. Sinon merci pour votre réponse.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 31/07/2013 à 17:06
quels sont tes nouveaux codes ?

les messages d'erreur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RobinZS Messages postés 5 Date d'inscription samedi 3 août 2013 Statut Membre Dernière intervention 3 août 2013
Modifié par RobinZS le 3/08/2013 à 11:52
Bonjour,
Il faudrait que tu revois une bonne partie de ton PHP là lol
La concaténation ça te dit quelque chose ?
Franchement, revoit les bases.
De plus, mysql_ est obsolète depuis un moment, il n'est plus sécurisé, tourne toi vers PDO, ou mysqli
Loin le but d'être désagréable, je ne peux que te dire ça, ou corriger tout ton code (le refaire...donc non)
0
killianwebmaster
3 août 2013 à 21:37
bonjour, merci pour toute vos réponses, et j'ai trouvé l'erreur. merci pour vos réponses.
0