La fonction UPDATE ne fonctionne pas
Résolu
killianwebmaster
-
killianwebmaster -
killianwebmaster -
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.
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:
- La fonction UPDATE ne fonctionne pas
- Fonction si et - Guide
- Windows update ne fonctionne pas - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Fonction miroir - Guide
6 réponses
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.
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.
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
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; } ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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)
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)