Impossible de mettre a jour enregistrement dans ma base

cs_Fic Messages postés 11 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 13 juillet 2005 - 3 juin 2005 à 16:04
vince1415 Messages postés 88 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006 - 3 juin 2005 à 20:34
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

vince1415 Messages postés 88 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
3 juin 2005 à 20:34
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());
0
Rejoignez-nous