IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

modifier n'a marché qu'une fois [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de caro71ol
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 145
    Par défaut modifier n'a marché qu'une fois
    j'ai la fonction suivante qui est parmie tant d'autre qui appelle le fichier modifhoraire.php, qui fait la mise à jour. La modification s'est effectuée correctement une fois. maintenant j'ai le message comme quoi la modification a été effectuée mais rien a changé dans la base.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    function modifhor(){
    			var xhr = getXhr();
    			if(!test('jour')){
    				alert('Selectionnez un jour!');
    				return false;
    			}
    			 if(!test('activite3')){
    					alert('Selectionnez une activite du jour!');
    					return false;
    				}
    				if(!test('choixhdebut3')){
    					alert('Selectionnez une heure dans la liste!');
    					return false;
    				}
    				else
    				{
    					var sel = document.getElementById('activite3');
    					var idactivite=sel.options[sel.selectedIndex].value;
    					var sel2 = document.getElementById('choixhdebut3');
    					var choixhdeb=sel2.options[sel2.selectedIndex].value;
    					xhr.open("POST","modifhoraire.php",false);
    					xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    					xhr.send("idActivite="+idactivite+"&choixhd="+choixhdeb);
    					var rep= xhr.responseText;
    					if (rep=="false"){
    					alert('Creneaux déjà utilisés!');
    					return false;
    					}
    					else {
    					alert('Modification effectuée');
    					return true;
    					}
    				}						
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="modifier[hdebut]" id="modifhd" value="Modifier l'heure de l'activité" style="height:50px;font-size:18px" onclick="return modifhor();">
    modifhoraire.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    		$ret="false";
    		// test si il y a une activité selectionné
    	if( isset($_POST['idActivite']) ) {
    	//recupere la value de l'activité du jour choisie
    			$activite=$_POST["idActivite"];
    			//recupere la value de lheure debut choisie
    			$choixhd=$_POST['choixhd'];
    			$hd2=$choixhd+1;
    		$hd3=$hd2+1;
    		$ex=mysql_query("SELECT * FROM planning WHERE num_creneau='$hd2' ;") or die ('Erreur sql!'.$ex.'<br/>'.mysql_error());
    		$ex2=mysql_query("SELECT * FROM planning WHERE num_creneau='$hd3' ;") or die ('Erreur sql!'.$ex2.'<br/>'.mysql_error());
    		$num=mysql_num_rows($ex);
    		$num2=mysql_num_rows($ex2);
    		if($num==0 AND $num2==0) {
    			//incrementaton pour la boucle
    			$choixfin=$choixhd+3;
    			//requete pour selectionner lheure debut de l'activité
    			$res = mysql_query("SELECT * FROM creneau WHERE id_creneau=(SELECT MIN(num_creneau) FROM planning  WHERE num_planning='$activite');")
    			or die ('Erreur sql!'.$res.'<br/>'.mysql_error());
    			$row=mysql_fetch_assoc($res);
    			//recupere le resultat de la requete dans une varable
    			$cren=$row['id_creneau'];
    			//boucle pour modifier les numero de creneau dans le planning
    			for ($i=$choixhd;$i<$choixfin;$i++){
    					$res2 = mysql_query("UPDATE planning
    															SET num_creneau='$i'
    															WHERE num_creneau='$cren';")
    					or die ('Erreur sql!'.$res2.'<br/>'.mysql_error());
    					//creneau à modifier suivant
    					$cren+=1;
    			}
    			$ret="true";
    		}
     
    	}
    	echo $ret;
    mysql_close();	
    ?>

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res2 = mysql_query("UPDATE planning SET num_creneau='$i' WHERE num_creneau='$cren'")
    Essaye de travailler sur des id comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res2 = mysql_query("UPDATE planning SET num_creneau='$i' WHERE id_creneau='$id_cren'")
    Si rien ne change test tes requêtes voir si tes variables sont bonnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req ="UPDATE planning SET num_creneau='$i' WHERE id_creneau='$id_cren'";
    echo $req;
    $res2=mysql_query($req);

  3. #3
    Membre confirmé Avatar de caro71ol
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 145
    Par défaut
    en fait, l'erreur venait du fait que j'avais un form pour tous mes onglets et tous les formulaires. J'ai donc mis un form pour chaque formulaire pour les differencier dans la page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" onsubmit="return modifacti();">

  4. #4
    Membre confirmé Avatar de caro71ol
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 145
    Par défaut
    merci quand meme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction modifier n'a marché qu'une fois
    Par caro71ol dans le forum Langage
    Réponses: 3
    Dernier message: 15/02/2011, 09h41
  2. Macro qui marche qu'une fois
    Par baski dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/06/2007, 22h55
  3. Fonction javascript qui marche qu'une fois sous Firefox
    Par ns_deux dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2006, 10h38
  4. Adodc1 ne marche qu'une fois ?
    Par VARACH dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 04/04/2006, 13h57
  5. [applet]ne marche qu'une fois..
    Par woorant dans le forum Applets
    Réponses: 2
    Dernier message: 22/02/2006, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo