Problème de logique pour mise à jour simultanée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de logique pour mise à jour simultanée

par jpsartre » 22 avr. 2006, 00:36

J'ai remplacé le SELECT COUNT, par SELECT ref, et ça marche presque...

par jpsartre » 22 avr. 2006, 00:10

Dommage,

J'avais rêvé, en fait ça ne marche pas, j'envoie ref (nouvelle référence) et oldRef (là où je veux conserver l'ancienne ref) par formulaire :
<input type="hidden" name="oldRef" value="<?=$Record->ref?>">
<input name="ref" type="text" value="<?=$Record->ref?>">
 
Et je reçois ici :
<? 
	require ('../connexion.php');
$query = "UPDATE evenements SET ref='".$ref."', nom='".addslashes($nom)."', statut='".$statut."', dd='".$dd."', df='".$df."', hd='".$hd."', hf='".$hf."', type='".$type."', commentaire='".addslashes($commentaire)."', description='".addslashes($description)."', rdv='".addslashes($rdv)."', prix='".$prix."', maxi='".$maxi."', mini='".$mini."', reserve='".$reserve."' WHERE id=$id";
$result = mysql_query($query);
if ($result)
	echo '<H2>Mise à jour de l\'événement No : '.$id.' , correctement effectuée</H2>';
else
{
	echo '<H2>Problème de mise à jour, ré-essayer</H2>';
}
$query = "SELECT count FROM panier WHERE ref='".$oldRef."'";
$result = mysql_query($query);
if ($result)
{
	echo 'L\'événement portant la référence : '.$oldRef.' a été trouvé';
	$sql = "UPDATE panier SET ref='".$ref."' WHERE ref='".$oldRef."'";
	$resultat = mysql_query($sql);
	if ($resultat)
	{
	echo '<br>La réference a bien été mise à jour dans les sélections : '.$ref.' (nouvelle réference)';
	}
}
else
{
	echo '<H2>Reference non trouv&eacute;e dans les selections</H2>';
}
mysql_close();
?>
Il ne trouve pas l'ancienne ref pour la mettre à jour,
Si quelqu'un peut m'aider,
Merci

par jpsartre » 21 avr. 2006, 23:46

C'est bon, ça marche, je n'avais pas mis name=oldRef pour mon champ caché et je n'avais pas terminé mon deuxième UPDATE.
A+

Problème de logique pour mise à jour simultanée

par jpsartre » 21 avr. 2006, 23:22

Bonjour,
J'ai une table événements et une table panier.
Je voulais modifier la ref de l'événement et mettre à jour cette ref dans le panier pour ne pas perdre les sélections des abonnés.
J'ai donc fait :
<? 
	require ('../connexion.php');
$query = "UPDATE evenements SET ref='".$ref."', nom='".addslashes($nom)."', statut='".$statut."', dd='".$dd."', df='".$df."', hd='".$hd."', hf='".$hf."', type='".$type."', commentaire='".addslashes($commentaire)."', description='".addslashes($description)."', rdv='".addslashes($rdv)."', prix='".$prix."', maxi='".$maxi."', mini='".$mini."', reserve='".$reserve."' WHERE id=$id";
$result = mysql_query($query);
if ($result)
	echo '<H2>Mise à jour de l\'événement No : '.$id.' , correctement effectuée</H2>';
else
{
	echo '<H2>Problème de mise à jour, ré-essayer</H2>';
}
$query = "SELECT ref FROM panier WHERE ref='".$ref."'";
$result = mysql_query($query);
if ($result)
{
	echo 'L\'événement portant la référence : '.$ref.' a été trouvé';
	$sql = "UPDATE panier SET ref='".$ref."' WHERE ";
	$resultat = mysql_query($sql);
	if ($resultat)
	{
	echo "La réference a bien été mise à jour dans les sélections";
	}
}
else
{
	echo '<H2>Reference non trouv&eacute; dans les selections</H2>';
}
mysql_close();
?>
Comme tous les messages étaient bons, je croyais que ça marchait, mais en fait, cela vous saute peut-être aux yeux, tous les événements du panier prenaient pour référence ref.
Alors, j'ai voulu depuis le formulaire de modification garder l'ancienne valeur de ref pour pouvoir ne changer que la bonne ref dans le panier.
Mais je ne trouve pas de solution, je voulais faire quelque chose avec un champ caché et garder ref dans oldRef par exemple, mais c'est le blocage.
Si quelqu'un y voit clair,
Merci