problème d update

nasrovia70
Invité n'ayant pas de compte PHPfrance

02 mai 2009, 00:40

je n'arrive pas a update ma table quand je modifie une liste de fiche.
<?php
//paramètres de la base
$serveur="localhost";
$util="root";
$mpasse="";
$base="stocks";
// connexion au serveur Mysql
$lien=mysql_connect($serveur,$util,$mpasse);
// connexion à la base de données
mysql_select_db($base);
// réccupération des données du formulaire

// Vérification du formulaire

// déclaration de la fonction
		
		echo "<table border='1' bordercolor='yellow' width='4010'>
						<tr>
							<td width='30'><font color ='white'>ID</font></td>
							<td width='300'><font color ='white'>jour</font></td>
							<td width='300'><font color ='white'>commande</font></td>
							<td width='300'><font color ='white'>produit</font></td>
							<td width='300'><font color ='white'>marque</font></td>
							<td width='300'><font color ='white'>designation</font></td>
							<td width='300'><font color ='white'>sequence</font></td>
							<td width='300'><font color ='white'>etat</font></td>
							<td width='300'><font color ='white'>commentaire</font></td>
							<td width='300'><font color ='white'>serie</font></td>
							<td width='300'><font color ='white'>date</font></td>
							<td width='300'><font color ='white'>affectation</font></td>
							<td width='300'><font color ='white'>nom</font></td>
						</tr>";
					
				
		
		
		$reponse = mysql_query("SELECT * FROM Pcs");
				echo '<form action="modifier2.php" name="fiche"  method="post">';
			while ($donnees = mysql_fetch_array($reponse))
			{
				
			$id = $donnees['id_pcs'];
			$jour = $donnees['jour'];
			$commande = $donnees['commande'];
			$produit = $donnees['produit'];
			$marque = $donnees['marque'];
			$designation = $donnees['designation'];
			$sequence = $donnees['sequence'];
			$etat = $donnees['etat'];
			$commentaire = $donnees['commentaire'];
			$serie = $donnees['serie'];
			$date = $donnees['date'];
			$affectation = $donnees['affectation'];
			$nom = $donnees['nom'];
			
	
									
						
					
					echo '	<tr>
							
								<td width="300"><input type="text" name="id_pcs" value="'.$id.'" size="50" /></td>
								<td width="300"><input type="text" name="jour" value="'.$jour.'" size="50" /></td>
								<td width="300"><input type="text" name="commande" value="'.$commande.'" size="50" /></td>
								<td width="300"><input type="text" name="produit" value="'.$produit.'" size="50" /></td>
								<td width="300"><input type="text" name="marque" value="'.$marque.'" size="50"/></td>
								<td width="300"><input type="text" name="designation" value="'.$designation.'" size="50" /></td>
								<td width="300"><input type="text" name="sequence" value="'.$sequence.'" size="50" /></td>
								<td width="300"><input type="text" name="etat" value="'.$etat.'" size="50" /></td>
								<td width="300"><input type="text" name="commentaire" value="'.$commentaire.'" size="50" /></td>
								<td width="300"><input type="text" name="serie" value="'.$serie.'" size="50" /></td>
								<td width="300"><input type="text" name="date" value="'.$date.'" size="50" /></td>
								<td width="300"><input type="text" name="affectation" value="'.$affectation.'" size="50" /></td>
								<td width="300"><input type="text" name="nom" value="'.$nom.'" size="50" /></td>
								
							</tr>';
					
				
						
									
			}	
		echo "	</table>
							
		<input type='submit' name='modifier' value='Modifier le contact' />	</form>";
		

	

	
	
mysql_close(); // Déconnexion de MySQL
?>
fichier qui traite l'update
<?php
//paramètres de la base
$serveur="localhost";
$util="root";
$mpasse="";
$base="stocks";
// connexion au serveur Mysql
$lien=mysql_connect($serveur,$util,$mpasse);
// connexion à la base de données
mysql_select_db($base);
// réccupération des données du formulaire
// strip_tags($_POST['champ']); // on retire les codes HTML du champ 
// Traitement

		  
	if (isSet($_POST['modifier'])) {
		$id=htmlentities($_POST["id_pcs"]); 
		$jour=htmlentities($_POST["jour"]);  
		$commande=htmlentities($_POST["commande"]);  
		$produit=htmlentities($_POST["produit"]);  
		$marque=htmlentities($_POST["marque"]);  
		$designation=htmlentities($_POST["designation"]);  
		$sequence=htmlentities($_POST["sequence"]);  
		$etat=htmlentities($_POST["etat"]);  
		$commentaire=htmlentities($_POST["commentaire"]);  
		$serie=htmlentities($_POST["serie"]);  
		$date=htmlentities($_POST["date"]);  
		$affectation=htmlentities($_POST["affectation"]);  
		$nom=htmlentities($_POST["nom"]);  
       mysql_query("UPDATE pcs SET jour='$jour', commande='$commande', produit='$produit', marque='$marque', designation='$designation', sequence='$sequence', etat='$etat', commentaire='$commentaire', serie='$serie', date='$date', affectation='$affectation', nom='$nom' WHERE id_pcs='$id'"); // on efface les id de chaque checkbox qui est cochée
    }
	mysql_close(); // Déconnexion de MySQL
	echo "<meta http-equiv='refresh' content='1; url=index.php'>";  // redirection vers l'index

?>

nasdrovia70
Invité n'ayant pas de compte PHPfrance

02 mai 2009, 00:42

ne pas prendre en compte le // strip_tags($_POST['champ']); // on retire les codes HTML du champ et le // on efface les id de chaque checkbox qui est cochée ça vient d'un autre fichier.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 mai 2009, 09:02

Tu dis que l'update ne se fait pas.... as-tu seulement vérifié si la fonction mysql_query() s'exécutait correctement ?
As-tu regardé s'il n'y avait pas un message d'erreur avec mysql_error() ?
As-tu affiché la requête sql générée pour vérifier si celle-ci était correcte ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

nasdrovia70
Invité n'ayant pas de compte PHPfrance

02 mai 2009, 11:36

j'avais déja une erreur de syntax au niveau des $id=htmlentities($_POST['id_pcs']) j'avais mis " " mais ça marche toujours pas
<?php
//paramètres de la base
$serveur="localhost";
$util="root";
$mpasse="";
$base="stocks";
// connexion au serveur Mysql
$lien=mysql_connect($serveur,$util,$mpasse);
// connexion à la base de données
mysql_select_db($base);

// Traitement

		  
	if (isset($_POST['modifier'])) {
		$id=htmlentities($_POST['id_pcs'])
		$jour=htmlentities($_POST['jour']);  
		$commande=htmlentities($_POST['commande']);  
		$produit=htmlentities($_POST['produit']);  
		$marque=htmlentities($_POST['marque']);  
		$designation=htmlentities($_POST['designation']);  
		$sequence=htmlentities($_POST['sequence']);  
		$etat=htmlentities($_POST['etat']);  
		$commentaire=htmlentities($_POST['commentaire']);  
		$serie=htmlentities($_POST['serie']);  
		$date=htmlentities($_POST['date']);  
		$affectation=htmlentities($_POST['affectation']);  
		$nom=htmlentities($_POST['nom']);  
       mysql_query("UPDATE pcs SET jour='$jour', commande='$commande', produit='$produit', marque='$marque', designation='$designation', sequence='$sequence', etat='$etat', commentaire='$commentaire', serie='$serie', date='$date', affectation='$affectation', nom='$nom' WHERE id_pcs='$id'"); 
    }

	mysql_close(); // Déconnexion de MySQL
	echo "<meta http-equiv='refresh' content='1; url=index.php'>";  // redirection vers l'index

?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 mai 2009, 16:02

j'avais déja une erreur de syntax au niveau des $id=htmlentities($_POST['id_pcs']) j'avais mis " " mais ça marche toujours pas
Ce n'était pas une erreur de syntaxe... une chaine est une chaine, qu'importe qu'elle soit déclarée entre apostrophes ou entre guillemets pour ça. Qu'en est-il des points que je t'ai recommandé de vérifier ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

nasdrovia70
Invité n'ayant pas de compte PHPfrance

02 mai 2009, 20:37

j'ai fait des modification ça marche pour l'insertion mais pas pour l update
	$reponse = mysql_query("SELECT * FROM Pcs");
				echo '<form action="modifier2.php" name="fiche"  method="post">';
				$i=0;
			while ($donnees = mysql_fetch_array($reponse))
			{
				
			$id = $donnees['id_pcs'];
			$jour = $donnees['jour'];
			$commande = $donnees['commande'];
			$produit = $donnees['produit'];
			$marque = $donnees['marque'];
			$designation = $donnees['designation'];
			$sequence = $donnees['sequence'];
			$etat = $donnees['etat'];
			$commentaire = $donnees['commentaire'];
			$serie = $donnees['serie'];
			$date = $donnees['dt'];
			$affectation = $donnees['affectation'];
			$nom = $donnees['nom'];
			
								
						
					echo '	<tr>
								<input type="hidden" name="fiches" value="'.$i.'" size="50" />
							
								<td width="300"><input type="text" name="id_pcs'.$i.'" value="'.$id.'" size="50" /></td>
								<td width="300"><input type="text" name="jour'.$i.'" value="'.$jour.'" size="50" /></td>
								<td width="300"><input type="text" name="commande'.$i.'" value="'.$commande.'" size="50" /></td>
								<td width="300"><input type="text" name="produit'.$i.'" value="'.$produit.'" size="50" /></td>
								<td width="300"><input type="text" name="marque'.$i.'" value="'.$marque.'" size="50"/></td>
								<td width="300"><input type="text" name="designation'.$i.'" value="'.$designation.'" size="50" /></td>
								<td width="300"><input type="text" name="sequence'.$i.'" value="'.$sequence.'" size="50" /></td>
								<td width="300"><input type="text" name="etat'.$i.'" value="'.$etat.'" size="50" /></td>
								<td width="300"><input type="text" name="commentaire'.$i.'" value="'.$commentaire.'" size="50" /></td>
								<td width="300"><input type="text" name="serie'.$i.'" value="'.$serie.'" size="50" /></td>
								<td width="300"><input type="text" name="dt'.$i.'" value="'.$date.'" size="50" /></td>
								<td width="300"><input type="text" name="affectation'.$i.'" value="'.$affectation.'" size="50" /></td>
								<td width="300"><input type="text" name="nom'.$i.'" value="'.$nom.'" size="50" /></td>
								
						</tr>';
							
					
								
						
				$i++;					
			}	
		echo "	</table>
							
		<input type='submit' name='modifier' value='Modifier le contact' />	</form>";
?php
//paramètres de la base
$serveur="localhost";
$util="root";
$mpasse="";
$base="stocks";
// connexion au serveur Mysql
$lien=mysql_connect($serveur,$util,$mpasse);
// connexion à la base de données
mysql_select_db($base);

// Traitement
$nb_lignes=$_POST['fiches'];

for ($i=0;$i<=$nb_lignes;$i++){ 

		$id=htmlentities($_POST["id_pcs$i"]);
		$jour=htmlentities($_POST["jour$i"]);  
		$commande=htmlentities($_POST["commande$i"]);  
		$produit=htmlentities($_POST["produit$i"]);  
		$marque=htmlentities($_POST["marque$i"]);  
		$designation=htmlentities($_POST["designation$i"]);  
		$sequence=htmlentities($_POST["sequence$i"]);  
		$etat=htmlentities($_POST["etat$i"]);  
		$commentaire=htmlentities($_POST["commentaire$i"]);  
		$serie=htmlentities($_POST["serie$i"]);  
		$date=htmlentities($_POST["dt$i"]);  
		$affectation=htmlentities($_POST["affectation$i"]);  
		$nom=htmlentities($_POST["nom$i"]); 
		mysql_query("UPDATE pcs SET jour='$jour', commande='$commande', produit='$produit', marque='$marque', designation='$designation', sequence='$sequence', etat='$etat', commentaire='$commentaire', serie='$serie', dt='$date', affectation='$affectation', nom='$nom' WHERE id_pcs='$id'"); 
   
	}

	mysql_close(); // Déconnexion de MySQL
	echo "<meta http-equiv='refresh' content='1; url=index.php'>";  // redirection vers l'index

?>

Eléphant du PHP | 451 Messages

02 mai 2009, 21:02

En fesant:
$nb_lignes = $_POST['fiches'];

for ($i = 0; $i <= $nb_lignes; $i++){  
//........
}
Tu compte pas le nombre de ligne, tu utilise seulement une ligne, donc si tu utilise count() sur $_POST cela donne quoi???

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 mai 2009, 21:40

hmm... je m'interroge... dois utiliser mon invisibilité pour combattre le crime ou pour faire le mal ? :-k
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 451 Messages

03 mai 2009, 00:55

hmm... je m'interroge... dois utiliser mon invisibilité pour combattre le crime ou pour faire le mal ? :-k
Pourquoi j'ai dis une bêtise? :lol: :lol:

nasdrovia70
Invité n'ayant pas de compte PHPfrance

04 mai 2009, 16:30

on avance quand je choisi une ligne avec une checkbox ça prend bien en compte la ligne mais ça supprime les données que j'ai remplacé que faire
<?php
//paramètres de la base
$serveur="localhost";
$util="root";
$mpasse="";
$base="stocks";
// connexion au serveur Mysql
$lien=mysql_connect($serveur,$util,$mpasse);
// connexion à la base de données
mysql_select_db($base);
// réccupération des données du formulaire

// déclaration de la fonction
		echo '<form action="modifier2.php" name="effacer" method="post">';
		echo '<table id="idMyTable" width="3650" align="center">
						<tr>
							<td width="50"></td>
							<td width="50"><font color ="white">ID</font></td>
							<td width="300"><font color ="white">jour</font></td>
							<td width="300"><font color ="white">commande</font></td>
							<td width="300"><font color ="white">produit</font></td>
							<td width="300"><font color ="white">marque</font></td>
							<td width="300"><font color ="white">designation</font></td>
							<td width="300"><font color ="white">sequence</font></td>
							<td width="300"><font color ="white">etat</font></td>
							<td width="300"><font color ="white">commentaire</font></td>
							<td width="300"><font color ="white">serie</font></td>
							<td width="300"><font color ="white">date</font></td>
							<td width="300"><font color ="white">affectation</font></td>
							<td width="300"><font color ="white">nom</font></td>
						</tr>';
		
  
		$reponse = mysql_query("SELECT * FROM Pcs");
	while ($donnees = mysql_fetch_array($reponse) )

	{
	

						
							
	$id = $donnees['id_pcs'];
	$jour = $donnees['jour'];
	$commande = $donnees['commande'];
	$produit = $donnees['produit'];
	$marque = $donnees['marque'];
	$designation = $donnees['designation'];
	$sequence = $donnees['sequence'];
	$etat = $donnees['etat'];
	$commentaire = $donnees['commentaire'];
	$serie = $donnees['serie'];
	$date = $donnees['date'];
	$affectation = $donnees['affectation'];
	$nom = $donnees['nom'];
								
								
					echo '	<tr>
								<td><INPUT type=checkbox name="champ[]" value="'.$id.'"></td> 
								<td width="50"><font color ="white">'.$id.'</td>
								<td width="300"><font color ="white"><input type="text"  name="jour"  value="'.$jour.'" size="50" /></font></td>
								<td width="300"><font color ="white"><input type="text"  name="commande" 	value="'.$commande.'" size="50" /></font></td>
								<td width="300"><font color ="white"><input type="text"  name="produit"  value="'.$produit.'"	size="50"/></font></td>
								<td width="300"><font color ="white"><input type="text"  name="marque"  value="'.$marque.'" size="50"/></font></td>
								<td width="300"><font color ="white"><input type="text"  name="designation"  value="'.$designation.'" size="50"/></font></td>
								<td width="300"><font color ="white"><input type="text"  name="sequence"  value="'.$sequence.'" size="50"/><font></td>
								<td width="300"><font color ="white"><input type="text"  name="etat" 	value="'.$etat.'" size="50"/><font></td>
								<td width="300"><font color ="white"><input type="text"  name="commentaire"  value="'.$commentaire.'" size="50"/></font></td>
								<td width="300"><font color ="white"><input type="text"  name="serie"  value="'.$serie.'" size="50"/><font></td>
								<td width="300"><font color ="white"><input type="text"  name="date" 	value="'.$date.'" size="50"/><font></td>
								<td width="300"><font color ="white"><input type="text"  name="affectation"  value="'.$affectation.'" size="50"/></font></td>
								<td width="300"><font color ="white"><input type="text" name="nom"  value="'.$nom.'"	size="50" /><font></td>
							</tr>';

	}
<?php
//paramètres de la base
$serveur="localhost";
$util="root";
$mpasse="";
$base="stocks";
// connexion au serveur Mysql
$lien=mysql_connect($serveur,$util,$mpasse);
// connexion à la base de données
mysql_select_db($base);
// réccupération des données du formulaire
$id=htmlentities($_POST['id_pcs']);



if(is_array($_POST['champ'])) 
{  // on test si on a bien un tableau de checkbox
    
    foreach($_POST['champ'] as $k=>$val)
	{   // boucle de traitement des checkbox
	
		 
		$jour=htmlentities($_POST["jour"]);  
		$commande=htmlentities($_POST["commande"]);  
		$produit=htmlentities($_POST["produit"]);  
		$marque=htmlentities($_POST["marque"]);  
		$designation=htmlentities($_POST["designation"]);  
		$sequence=htmlentities($_POST["sequence"]);  
		$etat=htmlentities($_POST["etat"]);  
		$commentaire=htmlentities($_POST["commentaire"]);  
		$serie=htmlentities($_POST["serie"]);  
		$date=htmlentities($_POST["date"]);  
		$affectation=htmlentities($_POST["affectation"]);  
		$nom=htmlentities($_POST["nom"]);  
		
		 mysql_query("UPDATE Pcs SET jour='".$jour."', commande='".$commande."', produit='".$produit."', marque='".$marque."', designation='".$designation."', sequence='".$sequence."', etat='".$etat."', commentaire='".$commentaire."', serie='".$serie."', date='".$date."', affectation='".$affectation."', nom='".$nom."' WHERE id_pcs='".$val."'");
	}
	
	
      
}
		

echo "<meta http-equiv='refresh' content='1; url=index.php'>";
mysql_close(); // Déconnexion de MySQL

           
           

?>