Impossible de mettre a jour enregistrement dans ma base

Signaler
Messages postés
11
Date d'inscription
vendredi 1 avril 2005
Statut
Membre
Dernière intervention
13 juillet 2005
-
Messages postés
88
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
24 janvier 2006
-
Bonjour,

je vais tenté de poser ma question plus lisiblement (depuis un browser PC).



Mon projet : une
administration basique de site dynamique avec lecture des articles contenus
dans une base, affichage, creation, modification et suppression. Je suis
arrivé a mes fins sur tous les points sauf un. Impossible de faire
marcher la mise a jour d'un article.



Au premier passage mon script se
connecte, lit bien la table, affiche le contenu de l'article dans un
formulaire.

Ca se corse à la validation : le script n'Update rien du
tout dans la base et retourne le message suivant alors même qu'il l'a lu déjà une première fois :

Erreur lors de la
lecture de la table : You have an error in your SQL syntax. Check the
manual that corresponds to your MySQL server version for the right
syntax to use near '' at line 1.



Ma config locale = Apache/1.3.33 -
PHP/4.3.10 - MySQL 3.23.49. Quoique je coupe ou change, rien ne marche.
Qlq1 a-t-il le temps de lire mon code de novice pour me conseiller? Merci.



/* connection */

require_once('../config/connect.php');

$mysql['table'] = "articles";

mysql_connect($mysql['serveur'],$mysql['login'],$mysql['password'])

or die("Erreur lors de la connexion à la base MySQL : ".mysql_error());



mysql_select_db($mysql['database'])

or die("Erreur lors du choix de la table MySQL : ".mysql_error());



/* test de soumission: variable $soumettre = true alors update de la base */

if(isset($soumettre))

mysql_query("UPDATE ".$mysql['table']." SET titre=".$_POST['titre'].","

."texte=".$_POST['texte'].","

."jour=".$_POST['jour'].","

."mois=".$_POST['mois'].","

."annee=".$_POST['annee'].","

."etat=".$_POST['etat'].") WHERE id_num=".$_get['id']." LIMIT 1"

) or die("Erreur lors de l'enregistrement : ".mysql_error());



/* Sinon variable $soumettre = false (vide) alors affichage formulaire */

/* recuperation du contenu de l'article dans la base pour remplir les champs */

?>

<html><head><title>Administration des artcies archives</title>

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

</head>

[index.php Retour &agrave;
l'accueil]&nbsp;[artonline.php Articles en
ligne]

&nbsp;[artarchiv.php Articles
archiv&eacute;s]&nbsp;[artadd.php Ajouter un
article]
Modifier le contenu d'un
article




<!-- Debut tableau - formulaire de saisie -->

Libell&eacute; |Contenu |Actions |




<!-- requete dans la base -->

<!-- recuperation du contenu de l'article -->

<!-- fin du tableau avec champs remplis -->

<?php

$r = mysql_query("SELECT * FROM ".$mysql['table']." WHERE id_num=".$_GET['id'])

or die("Erreur lors de la lecture de la table : ".mysql_error());

$row = mysql_fetch_assoc($r);

do { ?>

<form method=\"post\" id=\"fliste\" name=\"fliste\" action=\"<?php echo $_SERVER['PHP_SELF']; ?>\">

----
Titre&nbsp;:&nbsp;,

<textarea cols=70 rows=3 name="titre"
id="titre"><?php echo $row['titre'];
?></textarea>,

&nbsp;, ----
Texte&nbsp;:&nbsp;,

<textarea cols=70 rows=20 name="texte"
id="texte"><?php echo $row['texte'];
?></textarea>,

&nbsp;, ----
Date&nbsp;:&nbsp;,

Jour :

<select name="jour" size="1" id="jour"><option value="<?php
echo $row['jour']; ?>" selected="selected"><?php echo
$row['jour']; ?></option><option
value="1">1</option><option
value="2">2</option><option
value="3">3</option></select>

Mois :

<select name="mois" size="1" id="mois"><option value="<?php
echo $row['mois']; ?>" selected="selected"><?php echo
$row['mois']; ?></option><option
value="1">1</option><option
value="2">2</option><option
value="3">3</option></select>

Ann&eacute;e :

<select name="annee" size="1" id="annee">

<option value="<?php echo $row['annee']; ?>"
selected="selected"><?php echo $row['annee'];
?></option><option
value="2005">2005</option><option
value="2006">2006</option></select>, &nbsp;,

----
Etat&nbsp;:&nbsp;, ;

<!-- etat de l'article (en ligne ou archive) sous forme de bouton radio -->

<?php

if ($row['etat'] ==1){echo " En
ligne&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Archiv&eacute;&nbsp;, \n\";

}else{echo \" En ligne&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Archiv&eacute;&nbsp;</td>\n\"; }} while ($row =
mysql_fetch_assoc($r));

?>

&nbsp;, ----
&nbsp;, &nbsp;, Annuler&nbsp;&nbsp;|&nbsp;&nbsp;, </form>
</html>

1 réponse

Messages postés
88
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
24 janvier 2006

Salut,

Deja pour ta requéte il faut que les champs avec du texte soit entre simple ou double quote donc pour ta mise a jour tu met :



$query = "UPDATE $mysql[table] SET

titre='$_POST[titre]',
texte='$_POST[texte]',
jour=$_POST[jour],
mois='$_POST[mois]',
annee='$_POST[annee]',
etat='$_POST[etat]'

WHERE id_num=$_get[id]

LIMIT 1";



mysql_query ($query) or die("Erreur lors de l'enregistrement : ".mysql_error());