Problème mise à jour BDD et affichage résultat après UPDATE

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

hx.jonathan
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 115
Inscription: Mer Mar 02, 2005 17:42

Problème mise à jour BDD et affichage résultat après UPDATE

Message le Dim Aoû 12, 2007 15:04

Bonjour,


Cela fait plus d'une semaine que je cherche la solution à mon problème.

Voici mon problème. J'ai une page qui sert à afficher des enregistrements de ma bdd dans un formulaire html, et une autre page qui sert à faire un UPDATE de ces données.
La première page (avenir.php) commence avec une liste déroulante html qui me permet d'afficher différents listes d'enregistrements. En fonction de ce choix, je préremplis mon formulaire html. En dessous de cette première page j'ai un bouton qui me permet d'enregistrer les modifications apportées. Ce bouton renvoi vers ma deuxième page (check3.php) qui est en gros une reuqete SQL d'UPDATE.

PROBLEME :

Quand je clique sur le bouton "enregistrer les modifications" qui se situe en bas de "avenir.php", il fait appel à check3.php pour faire l'UPDATE sql et me redirige vers "avenir.php" pour actualiser les infos.

C'est là qu'est mon problème. En fait, il n'enregistre pas les choses comme il faut. Enfin, parfois oui, parfois non. Et parfois il me recopie plusieurs fois les mêmes enregistrements.. Bref, je ne comprends pas du tout ce qu'il se passe.

Voici mes deux pages:
"avenir.php":
Code: Tout sélectionner
<?php
include_once 'fonctions.php';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <link rel="stylesheet" type="text/css" href="styles_club.css" />
          </head>
          <body>
<form method="post">
    <select name="mon_champ">
        <option value="Janvier/Fevrier">Janvier/Fevrier</option>
        <option value="Fevrier/Mars">Fevrier/Mars</option>
        <option value="Mars/Avril">Mars/Avril</option>
    </select>
    <input type="submit" value="OK"/>
</form>
<?php
$mon_champ = isset($_POST['mon_champ']) ? $_POST['mon_champ'] : '';

connexion_DB('bd_club');

switch($mon_champ) {

case 'Janvier/Fevrier':
$res2 = mysql_query('SELECT * FROM activites WHERE couple_mois=\'Janvier/Fevrier\'');
break;

case 'Fevrier/Mars':
$res2 = mysql_query('SELECT * FROM activites WHERE couple_mois=\'Fevrier/Mars\'');
break;

case 'Mars/Avril':
$res2 = mysql_query('SELECT * FROM activites WHERE couple_mois=\'Mars/Avril\'');
break;
default:
$res2 = mysql_query('SELECT * FROM activites WHERE couple_mois=\'Janvier/Fevrier\'');
}

echo "bonjour";


// REQUETE SQL


echo '<form method="post" action=check3.php>';

//boucle

$cpt=1;
while($row = mysql_fetch_array($res2))
{

$ID_ACTIV=$row['ID_ACTIV'];
$annee=$row['annee'];
$couple=$row['couple_mois'];


//affichage enregistrements

echo  "<input type='text' name='idact[$cpt]' size='1' value='$ID_ACTIV'></input>";
echo  "<input type='text' name= 'annee[$cpt]' size='5' value='$annee'></input>";
echo  "<input type='text' name= 'couple[$cpt]' size='15' value='$couple'></input>";

$cpt++;
echo "<br />";
}


echo "<input type='hidden' name='cpt' size='1' value='$cpt'></input>";// pour pouvoir récupérer la valeur de cpt pour savoir le nbr d'itérations.


echo "<br />";
echo  '<div align="center"><input type="submit" name="envoie" VALUE="Enregistrer les modifications"></div>';
echo  '</form>';
echo $cpt;

mysql_close();
?>
       
       
       
        </body>
       
       
        </html>




"check3.php" :

Code: Tout sélectionner
<?php
include_once 'fonctions.php';

connexion_DB('bd_club');




for($i=1; $i<$_POST['cpt'];$i++){



$sql = "UPDATE activites SET annee = '".$_POST['annee'][$i]."',couple_mois = '".$_POST['couple'][$i]."' WHERE ID_ACTIV = '$i'";

mysql_query($sql)or die('Erreur SQL !'.$sql.''.mysql_error());

echo "<br/>".$sql;

echo $i;

}

header("Location:http://127.0.0.1/absence/index.php?page=05");
?>



En espérant que quelqu'un puisse prendre mon problème au sérieux. J'en peux plus de pas avancer.

D'avance merci à tous.


biscuit
WRInaute passionné
WRInaute passionné
 
Messages: 519
Inscription: Lun Juin 05, 2006 10:37

Message le Lun Aoû 13, 2007 9:54

C'est pas là le prob ?

Remplacer:
Code: Tout sélectionner
$sql = "UPDATE activites SET annee = '".$_POST['annee'][$i]."',couple_mois = '".$_POST['couple'][$i]."' WHERE ID_ACTIV = '$i'";


par
Code: Tout sélectionner
$sql = "UPDATE activites SET annee = '".$_POST['annee'][$i]."',couple_mois = '".$_POST['couple'][$i]."' WHERE ID_ACTIV = '".$_POST['idact'][$i]."'";

hx.jonathan
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 115
Inscription: Mer Mar 02, 2005 17:42

Message le Lun Aoû 13, 2007 10:28

Salut,

Merci beaucoup. Tu as résolu mon problème. Excellent. C'était trop bête !!!

Encore merci.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


cron