[PHP] Modifier et enregistrer des données
Slylia
Messages postés
64
Statut
Membre
-
Slylia Messages postés 64 Statut Membre -
Slylia Messages postés 64 Statut Membre -
Bonjour à tous,
Je rencontre des soucis pour enregistrer des modifications dans ma base de données. En effet j'ai réalisé une page web listant des analyses. Cette liste commençant à devenir longue, j'ai mis les critères de tri. Lorsque l'on choisis un critère de tri, la nouvelle liste des analyses s'ouvre dans une nouvelle page web.
Chaque ligne d'analyse a un bouton "modifier" qui permet d'enregistrer les modifications faites à cette ligne.
Lorsque je modifie une analyse triée et que je clique sur modifier, j'ai un message "Analyse modifiée" qui s'affiche et quand je regarde dans ma base de données il n'y a pas eu les modifications.
Voilà ma page d'affichage de tri :
Et voilà le code de ma page qui doit modifier :
Pouvez-vous m'aider ?
Je rencontre des soucis pour enregistrer des modifications dans ma base de données. En effet j'ai réalisé une page web listant des analyses. Cette liste commençant à devenir longue, j'ai mis les critères de tri. Lorsque l'on choisis un critère de tri, la nouvelle liste des analyses s'ouvre dans une nouvelle page web.
Chaque ligne d'analyse a un bouton "modifier" qui permet d'enregistrer les modifications faites à cette ligne.
Lorsque je modifie une analyse triée et que je clique sur modifier, j'ai un message "Analyse modifiée" qui s'affiche et quand je regarde dans ma base de données il n'y a pas eu les modifications.
Voilà ma page d'affichage de tri :
<?php
//Sélection et connexion à la base de données commande
include '../connexion.php';
session_start();
require('../control-session.php');
$tab_labo = $_GET["labo"];
//Longueur max du champ ANA_Intitule
$req_longANAIntitule = "SELECT MAX(LENGTH(ANA_Intitule)) FROM analyse";
$res_longANAIntitule = mysql_query($req_longANAIntitule);
$longANAIntitule = mysql_result($res_longANAIntitule, 0, "MAX(LENGTH(ANA_Intitule))") or die($req_longANAIntitule . " - " . mysql_error());
//Longueur max du champ ANA_Code
$req_longANACode = "SELECT MAX(OCTET_LENGTH(ANA_Code)) FROM analyse";
$res_longANACode = mysql_query($req_longANACode);
$longANACode = mysql_result($res_longANACode, 0, "MAX(OCTET_LENGTH(ANA_Code))") or die($req_longANACode . " - " . mysql_error());
//Longueur max du champ ANA_PrixAchat
$req_longANAPrixAchat = "SELECT MAX(LENGTH(ANA_PrixAchat)) FROM analyse";
$res_longANAPrixAchat = mysql_query($req_longANAPrixAchat);
$longANAPrixAchat = mysql_result($res_longANAPrixAchat, 0, "MAX(LENGTH(ANA_PrixAchat))") or die($req_longANAPrixAchat . " - " . mysql_error());
//Longueur max du champ ANA_PrixVente
$req_longANAPrixVente = "SELECT MAX(LENGTH(ANA_PrixVente)) FROM analyse";
$res_longANAPrixVente = mysql_query($req_longANAPrixVente);
$longANAPrixVente = mysql_result($res_longANAPrixVente, 0, "MAX(LENGTH(ANA_PrixVente))") or die($req_longANAPrixVente . " - " . mysql_error());
//Longueur max du champ ANA_Produit
$req_longANAProduit = "SELECT MAX(LENGTH(ANA_Produit)) FROM analyse";
$res_longANAProduit = mysql_query($req_longANAProduit);
$longANAProduit = mysql_result($res_longANAProduit, 0, "MAX(LENGTH(ANA_Produit))") or die($req_longANAProduit . " - " . mysql_error());
//Longueur max du champ ANA_Active
$req_longANAActive = "SELECT MAX(LENGTH(ANA_Active)) FROM analyse";
$res_longANAActive = mysql_query($req_longANAActive);
$longANAActive = mysql_result($res_longANAActive, 0, "MAX(LENGTH(ANA_Active))") or die($req_longANAActive . " - " . mysql_error());
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title> Gestion des analyses </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="../css/conso.css" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="../css/FRS_Analyse.css" />
<script type="text/javascript" src="../js/tritab.js"></script>
<a name="ancrehaut"></a>
</head>
<body>
<table style="width:100%;border:solid 1px black">
<tr>
<td>
<a href="../accueil.php"> <img src="../images/logo-capinov.JPG" name="logo_capinov"/> </a>
</td>
<td> </td>
<td style="background: url(../images/qui-fond.jpg) right top fixed no-repeat;">
<h1 class="titre_general"> Gestion des analyses </h1>
</td>
</tr>
</table>
<br />
<table>
<tr>
<input type="button" style="background:#4B3A9F; color:white; cursor:hand; border:solid 1px black;" value="Retour aux analyses" onclick="self.location.href='gestionanalyse.php'" />
</tr>
<td>
<a href="#ancrebas" type="button" style="background:#4B3A9F; color:white; cursor:hand; border:solid 1px black;">Aller en bas de page</a>
</td>
</table>
<br />
<table id="myTable" class="tablesorter" style="width:100%;border:solid 1px black">
<thead>
<tr>
<th style="text-align : center;"> <a href="#" onclick="sortTable(this,0); return false;"> INTITULE </a></th>
<th style="text-align : center;"> <a href="#" onclick="sortTable(this,1); return false;"> CODE </a></th>
<th style="text-align : center;"> <a href="#" onclick="sortTable(this,2); return false;"> PRIX ACHAT (€ HT) </a></th>
<th style="text-align : center;"> <a href="#" onclick="sortTable(this,3); return false;"> PRIX VENTE (€ HT) </a></th>
<th style="text-align : center;"> <a href="#" onclick="sortTable(this,4); return false;"> SOUS-TRAITANT </a></th>
<th style="text-align : center;"> <a href="#" onclick="sortTable(this,5); return false;"> PRODUIT </a></th>
<th style="text-align : center;"> <a href="#" onclick="sortTable(this,6); return false;"> ACTIVE (O/N) </a></th>
<th style="text-align : center;"> </th>
</tr>
</thead>
<tbody>
<?php
$req_tri_labo = "SELECT * FROM analyse WHERE ANA_Code LIKE '".implode("%' OR ANA_Code LIKE '", $_GET["labo"])."%' ORDER BY ANA_Code ASC, ANA_Intitule ASC";
$res_tri_labo=mysql_query($req_tri_labo, $connect) or die ($req_tri_labo . " - " . mysql_error());
while ($data = mysql_fetch_array($res_tri_labo)) {
// on affiche les résultats
if ($data['ANA_Active'] == "O" ) {
?>
<tr onmouseover="this.style.backgroundColor='red';" onmouseout="this.style.backgroundColor='white';">
<?php
}
if ($ANA_Active == "N") {
?>
<tr style="background-color: #CCCCCC;" onmouseover="this.style.backgroundColor='red';" onmouseout="this.style.backgroundColor=#CCCCCC;">
<?php
}
?>
<form method="get" action="update_val_analyse.php" name="update_val_analyse">
<input style="font-size:smaller" type="hidden" name="ANA_Id2" value="<?php echo $data['$ANA_Id'] ; ?>" />
<td>
<input style="font-size:smaller" type="text" size="<?php echo $longANAIntitule ;?>" name="ANA_Intitule2" value="<?php echo $data['ANA_Intitule'];?>"/>
</td>
<td align=center>
<textarea name="ANA_Code2" id="ANA_Code2" rows="1" cols="<?php echo $longANACode ;?>" style="font-size:smaller;overflow:auto;"><?php echo $data['ANA_Code'] ; ?></textarea>
</td>
</td>
<td align=center>
<input style="font-size:smaller;text-align:center;" type="text" size="<?php echo $longANAPrixAchat ;?>" name="ANA_PrixAchat2" value="<?php echo $data['ANA_PrixAchat'] ; ?>" />
</td>
<td align=center>
<input style="font-size:smaller;text-align:center;" type="text" size="<?php echo $longANAPrixVente ;?>" name="ANA_PrixVente2" value="<?php echo $data['ANA_PrixVente']; ?>" />
</td>
<td>
<?php
//Sélection de tous les fournisseurs
$req_fournisseur = "SELECT * FROM fournisseur ORDER BY FRS_Nom";
$fournisseur = mysql_query($req_fournisseur, $connect) or die($req_fournisseur . " - " . mysql_error());
?>
<select name="FRS_Analyse2" id="FRS_Analyse2" class="ctrDropDown" onBlur="this.className='ctrDropDown';" onMouseDown="this.className='ctrDropDownClick';" onChange="this.className='ctrDropDown';">
<!--<select name="FRS_Analyse" style="width=<?php echo $ANA_FRS_NomVille ;?>" style="font-size:smaller">-->
<option style="font-size:smaller"> Sélectionner ... </option>
<?php
// Boucle de tous les fournisseurs
while ($tabFRS = mysql_fetch_array($fournisseur)) {
$FRS_Id = $tabFRS['FRS_Id'];
$FRS_Nom = $tabFRS['FRS_Nom'];
$FRS_Ville = $tabFRS['FRS_Ville'];
$FRS_NomVille = $FRS_Nom . " - " .$FRS_Ville;
?>
<option title="<?php echo $FRS_Id ; ?>" style="font-size:smaller" value="<?php echo $FRS_Id ; ?>" > <?php echo $FRS_NomVille ; ?> </option>
<?php }
//Sélection du fournisseur correspondant à l'analyse
$req_analyse_FRS = "SELECT f.FRS_Nom, f.FRS_Ville FROM fournisseur f , analyse a WHERE a.ANA_FRS_Id = '".$data['ANA_FRS_Id']."' AND a.ANA_FRS_Id = f.FRS_Id
AND ANA_Code LIKE '".implode("%' OR ANA_Code LIKE '", $_GET["labo"])."%'";
$analyse_FRS = mysql_query($req_analyse_FRS, $connect) or die($req_analyse_FRS . " - " . mysql_error());
while ( $tab = mysql_fetch_array($analyse_FRS)) {
// Mise en variable
//$ANA_FRS_Id = $tab['ANA_FRS_Id'];
$ANA_FRS_Nom = $tab['FRS_Nom'];
$ANA_FRS_Ville = $tab['FRS_Ville'];
} // End while ($tab = mysql_fetch_array($analyse_FRS))
$ANA_FRS_NomVille = $ANA_FRS_Nom . " - " .$ANA_FRS_Ville;
?>
<!--<?php //echo $ANA_FRS_Nom ; ?> - <?php echo //$ANA_FRS_Ville ; ?> -->
<option value="<?php echo $ANA_FRS_Id ; ?>" selected> <?php echo $ANA_FRS_NomVille ; ?> </option>
</select>
</td>
<td>
<textarea name="ANA_Produit2" id="ANA_Produit2" rows="1" cols="<?php echo $longANAProduit ;?>" style="font-size:smaller;overflow:auto;"><?php echo $data['ANA_Produit'] ; ?></textarea>
</td>
<td align=center>
<input style="font-size:smaller;text-align:center;" type="text" size="<?php echo $longANAActive ;?> "maxlength="1" name="ANA_Active2" value="<?php echo $data['ANA_Active'] ; ?>"/>
</td>
<td>
<input type="image" size ="16px" name="modifier_analyse" src="../images/modifier.png"/>
</td>
</form>
</tr>
<?php } //End while ($data = mysql_fetch_array($res_tri_labo)) ?>
</tbody>
</table>
<table>
<td>
<a href="#ancrehaut" style="background:#4B3A9F; color:white; cursor:hand; border:solid 1px black;"> Aller en haut de page </a>
</td>
</table>
<a name="ancrebas"></a>
</body>
</html>
Et voilà le code de ma page qui doit modifier :
<?php
//Sélection et connexion à la base de données commande
include '../connexion.php';
session_start();
require('../control-session.php');
$ANA_Id = $_GET['ANA_Id2'];
$ANA_Intitule = addslashes($_GET['ANA_Intitule2']);
$ANA_Code = $_GET['ANA_Code2'];
$ANA_PrixAchat = $_GET['ANA_PrixAchat2'];
$ANA_PrixVente = $_GET['ANA_PrixVente2'];
$ANA_FRS_Id = $_GET['FRS_Analyse2'];
$ANA_Produit = addslashes($_GET['ANA_Produit2']);
$ANA_Active = $_GET['ANA_Active2'];
if ((empty($ANA_Intitule)) || (empty($ANA_Code)))
{
echo "L'intitulé et le code doivent être renseignés !";
include 'gestionanalyse.php';
}
elseif (!preg_match("'[0-9]{1,}[.]{0,1}[0-9]{0,2}'isU", $ANA_PrixAchat) || !preg_match("'[0-9]{1,}[.]{0,1}[0-9]{0,2}'isU", $ANA_PrixVente))
{
echo "Le prix d'achat et le prix de vente doivent être numérique et avoir seulement 2 chiffres après la virgule !";
include 'gestionanalyse.php';
}
elseif ($ANA_PrixAchat < 0 || $ANA_PrixVente < 0)
{
echo "Le prix doit être supérieur à 0 !";
include 'gestionanalyse.php';
}
elseif ($ANA_FRS_Id < 0 )
{
echo "Le fournisseur doit être renseigné !";
include 'gestionanalyse.php';
}
elseif ((($ANA_Active != "O") AND ($ANA_Active != "N")) || (empty ($ANA_Active)))
{
echo "Le champ Active O/N ne doit contenir que les valeurs O ou N et ne doit pas être vide !";
include 'gestionanalyse.php';
}
elseif ((empty($ANA_Produit) || (preg_match("/^([ a-zA-Z0-9])+$/", $ANA_Produit)))
|| (($ANA_Active = "O") || ($ANA_Active = "N")))
{
$req_updateanalyse = "UPDATE analyse SET ANA_Intitule = '$ANA_Intitule2',
ANA_Code = '$ANA_Code2',
ANA_PrixAchat = '$ANA_PrixAchat2',
ANA_PrixVente = '$ANA_PrixVente2',
ANA_FRS_Id = '$ANA_FRS_Id2',
ANA_Produit = '$ANA_Produit2',
ANA_Active = '$ANA_Active2'
WHERE ANA_Id = '$ANA_Id2'";
$updateanalyse = mysql_query($req_updateanalyse, $connect) or die($req_updateanalyse . " - " . mysql_error());
echo " /!\ Analyse modifiée /!\\" ;
?>
<META http-equiv="refresh" content="3; URL=gestionanalyse.php">
<?php
}
?>
Pouvez-vous m'aider ?
A voir également:
- [PHP] Modifier et enregistrer des données
- Fuite données maif - Guide
- Modifier dns - Guide
- Audacity enregistrer son pc - Guide
- Modifier liste déroulante excel - Guide
- Trier des données excel - Guide
4 réponses
Bonjour,
$req_updateanalyse = "UPDATE analyse SET ANA_Intitule = '$ANA_Intitule2',
Un espace en trop entre ANA_Intitule est le = ?
Snosky.
$req_updateanalyse = "UPDATE analyse SET ANA_Intitule = '$ANA_Intitule2',
Un espace en trop entre ANA_Intitule est le = ?
Snosky.
Les espaces n'ont rien à voir là dedans malheureusement car j'utilise le même code pour modifier des analyses dans ma première liste qui liste toutes les analyses.
Merci en tout cas de t'intéresser à mon problème
Merci en tout cas de t'intéresser à mon problème