Page 1 sur 2

requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:13
par jplale
bonjour, je me casse la tête depuis bien 1 semaine sur un problème de requête UPDATE

j'ai une base avec une table stock
-- 
-- Structure de la table `stock`
-- 

CREATE TABLE IF NOT EXISTS `stock` (
  `ID` int(8) NOT NULL auto_increment,
  `page` varchar(8) NOT NULL default '',
  `ref` varchar(20) NOT NULL default '',
  `designation` varchar(50) NOT NULL default '',
  `couleur` varchar(20) NOT NULL default '',
  `taille` varchar(20) NOT NULL,
  `position` varchar(20) NOT NULL default '',
  `reel` int(6) NOT NULL default '0',
  `mini` int(6) NOT NULL default '0',
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3642 ;

-- 
-- Contenu de la table `stock`
-- 

INSERT INTO `stock` (`ID`, `page`, `ref`, `designation`, `couleur`, `taille`, `position`, `reel`, `mini`) VALUES 
(1, '126', '101', 'Stylo Green Pen', 'BLEU ', 'S/T ', 'D25', 7, 4),
tout marchait parfaitement mais depuis peu j'ai rajouter un champ taille à ma table

j'ai donc modifier mes fichiers php (liste, ajout et modif)
tout marche bien sauf pour mon fichier modif
<?php
require_once("connexionMysql.inc.php");
if(isset($_POST['bouton']))
{
	$requete="UPDATE stock SET 
	ref='".$_POST['ref']."' ,
	page='".$_POST['page']."' ,
	designation='".$_POST['designation']."' ,
	couleur='".$_POST['couleur']."', 
	taille='".$_POST['taille']."',
	position='".$_POST['position']."',
	reel='".$_POST['reel']."' ,
	mini='".$_POST['mini']."' WHERE ID='".$_POST['ID']."'  " ;
	mysql_query($requete);
	
	//redirection vers liste du stock en fin de query
	function redirection($url){
		echo "<script type=\"text/javascript\">\n"
		. "<!--\n"
		. "\n"
		. "function redirect() {\n"
		. "window.location='" . html_entity_decode($url) . "'\n"
		. "}\n"
		. "setTimeout('redirect()','0');\n"
		. "\n"
		. "// -->\n"
		. "</script>\n";
	}
	redirection('listestock.php');

}
//--------------requête de la fiche modif
$requete3="SELECT * FROM stock  WHERE  ID='".$_GET['ID']."' " ;
$resultat3=mysql_query($requete3);
$stock=mysql_fetch_array($resultat3);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="icon" type="image/ico" href="../favicon.ico" />
<title>modif référence</title>
<link href="general.css" rel="stylesheet" type="text/css" />

</head>
<body>
<div class="centrage">
<form id="monform" name="form1" method="post" enctype="multipart/form-data" action="stockModif.php">
  
  	<p>
		<label>
		  <input type="submit" name="bouton"  value="Sauver" />
		</label>
	<a href="../listestock.php" >retour stock</a>
	</p>
	
  <table width="950" border="0" cellspacing="2" cellpadding="0">
	  <tr bgcolor="#d3dce3">		
		<td><strong>Référence</strong></td>
		<td align="center"><strong>Page</strong></td>
		<td><strong>Désignation</strong></td>
		<td><strong>Couleur</strong></td>
		<td align="center"><strong>Taille</strong></td>
		<td align="center"><strong>Position</strong></td>
		<td align="center"><strong>Stock réel</strong></td>
		<td align="center"><strong>Stock mini</strong></td>
	  </tr>
	
	  <tr >		
		<td ><input type="text" name="ref"  value="<?php echo $stock['ref']; ?>" /></td>
		<td align="center"><input type="text" name="page"  value="<?php echo $stock['page']; ?>" /></td>
		<td><input type="text" name="designation"  value="<?php echo $stock['designation']; ?>" /></td>
		<td><input type="text" name="couleur"  value="<?php echo $stock['couleur']; ?>" /></td>
		<td><input type="text" name="taille"  value="<?php echo $stock['taille']; ?>" /></td>
		<td align="center"><input type="text" name="position"  value="<?php echo $stock['position']; ?>" /></td>
		<td align="center"><input type="text" name="reel"  value="<?php echo $stock['reel']; ?>" /></td>
		<td align="center"><input type="text" name="mini"  value="<?php echo $stock['mini']; ?>" /></td>
		</tr>
	</table>
    
</form>
</div>
</body>
</html>
je ne vois pas d'où peut venir le problème? je suis même revenu en arrière en enlevant mon champ taille sur la base et de même sur mes fichiers php, mais sans succés :cry:

merci d'avance pour votre aide.

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:22
par stealth35
fait un
mysql_query($requete) || exit(mysql_error());
tu verras ce qu'il te dis

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:25
par jplale
je viens de rajouter

Code : Tout sélectionner

mysql_query($requete) or exit(mysql_error());
mais je n'ai toujours pas de mise à jour ni d'erreur ! :?

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:27
par stealth35
enlève ta redirection

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:30
par jplale
pareil j'avais essayé en remplaçant par un header et sans rien...

pour info je teste en local avec wamp, si ça peut aider à trouver le pb

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:32
par stealth35
pareil j'avais essayé en remplaçant par un header et sans rien...

pour info je teste en local avec wamp, si ça peut aider
ca te marque rien dutout page blanche ? as tu les erreurs d'activé , travail tu en E_ALL | E_STRICT ?
:wink:

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:37
par jplale
en fait en reglant la duré de la mémorisation je m'aperçois que ma page modif est rafraichi en se vidant de ses champs puis redirection vers ma liste, c'est tout

"E_ALL | E_STRICT " c'est paramètre du php.ini ?

je viens de les de-commenter puis relance du serveur et pareil aucune erreur?

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:41
par stealth35
en fait en reglant la duré de la mémorisation je m'aperçois que ma page modif est rafraichi en se vidant de ses champs puis redirection vers ma liste, c'est tout

"E_ALL | E_STRICT " c'est paramètre du php.ini ?

je viens de les decommenter et pareil aucune erreur?

oui,
error_reporting = E_ALL | E_STRICT
fait un "exit();" apres "mysql_query($requete) || exit(mysql_error());" et affiche la requete
echo $requete;
mysql_query($requete) || exit(mysql_error());
exit;
et montre ce que ca donne

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:45
par jplale
j'obtiens ça : UPDATE stock SET ref='testxcvxc' , page='325' , designation='test' , couleur='noire', taille='', position='A15', reel='3' , mini='2' WHERE ID=''

donc il n'arrive pas à faire l'update pour l'ID demandé puisqu'il ne le trouve pas ! bizarre puisqu'il ouvre bien la bonne ligne à modifier :shock:

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:48
par stealth35
on y arrive, faire un
echo '<pre>' . print_r($_POST, true) . '</pre>;
parce que finalement nul par dans ton formulaire tu lui donne l'id

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:49
par jplale
j'ai rajouté <input type="hidden" name="ID" value="<?php echo $stock['ID']; ?>" /> et ça marche maintant :
<table width="950" border="0" cellspacing="2" cellpadding="0">
      <tr bgcolor="#d3dce3">        
        <td><strong>Référence</strong></td>
        <td align="center"><strong>Page</strong></td>
        <td><strong>Désignation</strong></td>
        <td><strong>Couleur</strong></td>
        <td align="center"><strong>Taille</strong></td>
        <td align="center"><strong>Position</strong></td>
        <td align="center"><strong>Stock réel</strong></td>
        <td align="center"><strong>Stock mini</strong></td>
      </tr>
    
      <tr >    <input type="hidden" name="ID"  value="<?php echo $stock['ID']; ?>" />    
        <td ><input type="text" name="ref"  value="<?php echo $stock['ref']; ?>" /></td>
        <td align="center"><input type="text" name="page"  value="<?php echo $stock['page']; ?>" /></td>
        <td><input type="text" name="designation"  value="<?php echo $stock['designation']; ?>" /></td>
        <td><input type="text" name="couleur"  value="<?php echo $stock['couleur']; ?>" /></td>
        <td><input type="text" name="taille"  value="<?php echo $stock['taille']; ?>" /></td>
        <td align="center"><input type="text" name="position"  value="<?php echo $stock['position']; ?>" /></td>
        <td align="center"><input type="text" name="reel"  value="<?php echo $stock['reel']; ?>" /></td>
        <td align="center"><input type="text" name="mini"  value="<?php echo $stock['mini']; ?>" /></td>
        </tr>
    </table>
:D

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:50
par jplale
quelle est la meilleure méthode?

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:51
par stealth35
comme ta fais c'est très bien

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:55
par jplale
merci stealth35 pour ton aide

j'ai pas encore le réflexe d'afficher mes requêtes...c'est pourtant indispensable

Re: requête update ne fonctionne plus

Posté : 12 févr. 2010, 15:57
par stealth35
merci stealth35 pour ton aide

j'ai pas encore le réflexe d'afficher mes requêtes...c'est pourtant indispensable

oui,
tu pourrais faire ca
mysql_query($requete) ||  exit(mysql_error() . '<br />' . $requete);
ps : met ton post "résolus" petit croix vert sur le message qui a résolus ton probleme :wink: