[PHP] Modifier et enregistrer des données

Fermé
Slylia Messages postés 58 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 4 février 2011 - 27 janv. 2011 à 12:20
Slylia Messages postés 58 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 4 février 2011 - 27 janv. 2011 à 16:47
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 :
<?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:

4 réponses

snosky Messages postés 53 Date d'inscription lundi 24 janvier 2011 Statut Membre Dernière intervention 24 septembre 2013 7
27 janv. 2011 à 12:33
Bonjour,

$req_updateanalyse = "UPDATE analyse SET ANA_Intitule = '$ANA_Intitule2',

Un espace en trop entre ANA_Intitule est le = ?

Snosky.
0
Slylia Messages postés 58 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 4 février 2011 1
27 janv. 2011 à 13:45
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
0
snosky Messages postés 53 Date d'inscription lundi 24 janvier 2011 Statut Membre Dernière intervention 24 septembre 2013 7
27 janv. 2011 à 16:06
Voici un de mes code qui fonctionne parfaitement :

mysql_query("UPDATE 'intranet'.'info' SET 'adresse' = '$url','nom' = '$nom' WHERE 'info'.'id' =$id; ")

essaye :

$req_updateanalyse = "UPDATE analyse SET 'ANA_Intitule' = '$ANA_Intitule2'"
0
Slylia Messages postés 58 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 4 février 2011 1
27 janv. 2011 à 16:47
Je viens de remarquer qu'en fait je ne récupérais pas le champ ANA_Id2 donc normal que ma requète ne fonctionne pas.
Par contre je ne vois pas pourquoi je ne le récupère pas :/
0