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
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
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

Messages postés
11
Date d'inscription
vendredi 1 avril 2005
Statut
Membre
Dernière intervention
13 juillet 2005

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>
Messages postés
214
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
9 janvier 2019

erf c aussi propre ke la premiere foi

ca me donne pas envi de lire =)

p3x
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
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>
Messages postés
214
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
9 janvier 2019

enfoiré (lol)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
<hr size="2" width="100%">




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




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