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 à 14:00
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 4 juin 2005 à 22:57
Bonjour,
Je suis en pleine auto-formation PHP/MySQL.
Mon projet : une administration basique de site dynamique.
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. A 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 :

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.

Toute ma compétence(?) me vient de la lecture des scripts de phpcs et de la lecture de vos posts. Qlq1 a-t-il le temps de lire mon code pour me conseiller ?
Merci
*************
<?php

/* 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 */
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitionnal//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="fr" />
<title>Administration des artcies archives</title>
<link href="css/styles.css" rel="stylesheet" type="text/css" />
</head>


<!-- Menu et titre -->

[index.php Retour à l'accueil]
   |   
[artonline.php Articles en ligne]
   |   
[artarchiv.php Articles archivés]
   |   
[artadd.php Ajouter un article]


Modifier le contenu d'un article


<!-- Debut tableau - formulaire de saisie -->
Libellé |
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 { ?>
<table width=800 align="center">
<tr>
<form method="post" id="fliste" name="fliste" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<tr class="gris">
<td width=100 align="right" valign="top">
Titre :  </td>
<td valign ="top"><textarea cols=70 rows=3 name="titre" id="titre"><?php echo $row['titre']; ?>

6 réponses

cs_Fic Messages postés 11 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 13 juillet 2005
3 juin 2005 à 14:24
Bonjour. Je repose ma question plus proprement

Mon projet : une administration basique de site dynamique.
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 :

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.

Quoi qu je coupe ou change, rien ne marche. Qlq1 a-t-il le temps de lire mon code pour me conseiller? Merci.

<?php
/* 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 */
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitionnal//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="fr" />
<title>Administration des artcies archives</title>
<link href="css/styles.css" rel="stylesheet" type="text/css" />
</head>


<!-- Menu et titre -->

[index.php Retour à l'accueil]
|
[artonline.php Articles en ligne]
|
[artarchiv.php Articles archivés]
|
[artadd.php Ajouter un article]


Modifier le contenu d'un article


<!-- Debut tableau - formulaire de saisie -->
Libellé |
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 : ,
<textarea cols=70 rows=3 name="titre" id="titre"><?php echo $row['titre']; ?></textarea>,
,

----

Texte : ,
<textarea cols=70 rows=20 name="texte" id="texte"><?php echo $row['texte']; ?></textarea>,
Aide à la saisie et

à l'enrichissement
des textes, cliquez ici,

----

Date : ,
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>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</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>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
Anné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>,
,

----

Etat : ,
;

<!-- etat de l'article (en ligne ou archive) sous forme de bouton radio -->
<?php
if ($row['etat'] ==1)
{
echo " En ligne

Archivé , \n\";
}
else
{
echo \" En ligne

Archivé </td>\n\";
}
} while ($row = mysql_fetch_assoc($r)); ?>

,

----

,
,
Annuler |
,

</form>



</html>
0
p3x Messages postés 214 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 9 janvier 2019
3 juin 2005 à 14:38
erf c aussi propre ke la premiere foi

ca me donne pas envi de lire =)

p3x
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
4 juin 2005 à 16:23
Salut,



effectivement ton code est aussi propre que l'écriture de p3x (lol)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
p3x Messages postés 214 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 9 janvier 2019
4 juin 2005 à 22:35
enfoiré (lol)
0

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

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
4 juin 2005 à 22:57
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
4 juin 2005 à 22:57
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous