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 :

[Conception] ElseIf a répétition - Ne marche pas ! - Pq?


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Par défaut [Conception] ElseIf a répétition - Ne marche pas ! - Pq?
    Des boucles ElseIf a répétition, est ce que cela marche ... car j'essaye de mettre en place une condition dans un if(isset($_POST['xxxx'])) ... Cela ne veut pas marcher ...

    J'ai bien l'impression qu'il s'arrete a la 2e condition de mon ElseIf ... Demandez si vous voulez voir mon code ...

    Merci Help !

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    oui ca marche et c'est équivalent à un switch case :
    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
    $a = 20;
     
    if($a < 5)
    {
    echo "A est inférieur a 5";
    }
    elseif($a < 10)
    {
    echo "A est inférieur a 10 et supérieur a 5";
    }
    elseif($a < 50)
    {
    echo "A est inférieur a 50 et supérieur a 10";
    }
    elseif($a == 20)
    {
    echo "A égal 20";
    }
    tu n'entres que dans UNE des conditions, en gros tu testes la première, si c'est faux tu testes la deuxieme, si c'est faux la troisieme etc. Mais des que tu en trouves une bonne tu arretes
    Donc ca affichera "A est inférieur a 50 et supérieur a 10" et non pas "A égal 20"

  3. #3
    Membre éclairé Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Par défaut
    Peux tu regarder ce qui ne va pas ! please ...

    C'est comme ci la valeur postée $_POST etait gardé en mémoire a 2 reprises et qu'il m'incrémentait les champs un par un dés que celui est vide ... je ne comprends pas pourquoi !

    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
    $DataStlise=mysql_fetch_array($Lets_satelise1);
     
     
        if(isset($_POST['satelise'])) {
    				if($DataStlise['Satellise_Qui'] == NULL)
    				{
    	$sql_satelise="UPDATE etablissement SET Satellise_Qui='".$_POST['satelise']."' WHERE IdEtb='$id'";
    	$exe_sqlsatelise = mysql_query($sql_satelise) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	            }
    	            elseif($DataStlise['Satellise_Qui1'] == NULL)
    				{
    	$sql_satelise1="UPDATE etablissement SET Satellise_Qui1='".$_POST['satelise']."' WHERE IdEtb='$id'";
    	$exe_sqlsatelise1 = mysql_query($sql_satelise1) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	            }
    	           elseif($DataStlise['Satellise_Qui2'] == NULL)
    			   {
    	$sql_satelise2="UPDATE etablissement SET Satellise_Qui2='".$_POST['satelise']."' WHERE IdEtb='$id'";
    	$exe_sqlsatelise2 = mysql_query($sql_satelise2) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    			   }

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    tu veux dire que la tu rentres dans tes 3 ifs?
    Mets des echo a l'entrée de chaque if pour voir où tu passes.

  5. #5
    Membre éclairé Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Par défaut
    J'ai essayé ca mais il s'arrete constamment sur le 1er champ et le met constamment a jour.

    POURQUOI !!!!!!!!!!!!!!!! j'en px plus je crois que je vais craquer !!!!!!!!!!!!!

    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
    //Zone de modification pour le(s) satelisés
     
     
       echo'<form method="POST" name="maj_sat_qui" onsubmit="return refresh(this)" Action="index.php?numlien=Det_Etablissement&id='.$id.'"><SELECT size="1" name="satelise" id="satelise_mdf" style="visibility: hidden">';     
       echo'<option SELECTED></OPTION>';
     
       while($dataEts1=mysql_fetch_array($RLets1))
       {
       echo'<option>'.$dataEts1['Etablissement'].'</option>';
       }
       if(isset($_POST['satelise'])) {
    				if($dataEts1['Satellise_Qui'] == "")
    				{
    	$sql_satelise="UPDATE etablissement SET Satellise_Qui='".$_POST['satelise']."' WHERE IdEtb='$id'";
    	$exe_sqlsatelise = mysql_query($sql_satelise) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	            }
    	            Elseif($dataEts1['Satellise_Qui1'] == "")
    				{
    	$sql_satelise1="UPDATE etablissement SET Satellise_Qui1='".$_POST['satelise']."' WHERE IdEtb='$id'";
    	$exe_sqlsatelise1 = mysql_query($sql_satelise1) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	            }
    	           Elseif($dataEts1['Satellise_Qui2'] == "")
    			   {
    	$sql_satelise2="UPDATE etablissement SET Satellise_Qui2='".$_POST['satelise']."' WHERE IdEtb='$id'";
    	$exe_sqlsatelise2 = mysql_query($sql_satelise2) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    			   }
    			   }	
     
       echo'</SELECT><input value="Ok" id="input_OK2" style="visibility: hidden" type="submit" onClick="form_satelise_qui();"><IMG src="image/cancel.png" id="iddelimgannulsatelise" style="visibility: hidden" style="border:"0" onclick="satelise_ann();"></form></td>';

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    bah euh c'est normal puisque c'est le fonctionnement du if/elseif/.../else
    reregardes mon exemple, il s'arrete quand il voit < 50 et il entre pas dans le else suivant puisqu'il est deja rentré quelque part.

  7. #7
    Membre éclairé Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Par défaut
    j'ai appliqué la meme methode que tu as décrite un peu plus haut non ??????

    je comprends pas là !

  8. #8
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    On reprend parce que je comprends pas. Dans ton code, tu dis qu'il s'arrete tjs sur le premier If et qu'il fait le update. Donc c'est tout simplement parce que
    $dataEts1['Satellise_Qui'] est toujours une chaîne vide.

  9. #9
    Membre éclairé Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Par défaut
    Non car il peut arriver que le champ Satellise_Qui et Satellise_Qui1 soit rempli par des valeurs (soit des noms de ville me concernant).
    Donc dans mon cas, le champ Satellise_Qui est rempli ... mais il me le met a jour a chaque fois et ne passe pas au second ...

    En fait je récupère la valeur postée de la liste déroulante SELECT nommé "satelise"

    Si une valeur est postée, il rentre dans la boucle if(isset......

    Vois tu ?

    Crois tu que cela peut fonctionner.

  10. #10
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Justement je ne vois pas trop

    Commences par faire un peu de echo pour comprendre...
    Tu affiches en début de script la valeur retournée par le formulaire
    ensuite tu affiches pour chaque if des "je rentre dans mon if XXX"
    ensuite pour chaque résultat de la requete retourné par le fetch, tu affiches ses valeurs
    Tu devrais rapidement comprendre ce qui se passe après

  11. #11
    Membre éclairé Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Par défaut
    euh ... comment tu t'y prendrais toi ?

  12. #12
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    en mettant des echo ???

    Bon je viens de relire ton code plus lentement. Pourquoi est ce que tu utilises $dataEts1['Satellise_Qui'] après la boucle while() ??? Du coup après la boucle while $dataEts1 vaut false (c'est ce qui te fait quitter la boucle) et tu ne rentres surement dans aucun des if

    Je comprends vraiment pas ce que tu essaies de faire en fait...

  13. #13
    Membre éclairé Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Par défaut
    Savez vous comment mettre à ZERO un $_POST (valeur postée par un formulaire !)

    ...

  14. #14
    Membre éclairé Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Par défaut
    J'ai l'impression que mon problème vient du fait que la valeur du formulaire postée reste constamment en mémoire ... et donc il incrémente a chaque fois le champ satellise_Qui, Satellise_Qui1, Satellise_Qui2.

    Est il possible de résété la valeur ?

  15. #15
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    unset()

  16. #16
    Membre éclairé Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Par défaut
    Comme ca ca devrait vider le contenu de mon $_POST ?????

    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
    39
    40
    41
    42
    43
    //Zone de modification pour le(s) satelisés
     
     
       echo'<form method="POST" name="maj_sat_qui" onsubmit="return refresh(this)" Action="index.php?numlien=Det_Etablissement&id='.$id.'"><SELECT size="1" name="satelise" id="satelise_mdf" style="visibility: hidden">';     
       echo'<option SELECTED></OPTION>';
     
       $var_sat=$_POST['satelise'];
     
       $Stlise=mysql_fetch_assoc($Lets_satelise1);
     
     
       if(isset($var_sat)) {
    				if($Stlise['Satellise_Qui'] == "")
    				{
    	$sql_satelise="UPDATE etablissement SET Satellise_Qui='$var_sat' WHERE IdEtb='$id'";
    	$exe_sqlsatelise = mysql_query($sql_satelise) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	unset($_POST['satelise']);
    	            }
     
    	            Elseif($Stlise['Satellise_Qui1'] == "")
    				{
    	$sql_satelise1="UPDATE etablissement SET Satellise_Qui1='$var_sat' WHERE IdEtb='$id'";
    	$exe_sqlsatelise1 = mysql_query($sql_satelise1) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    			 unset($_POST['satelise']);
    	            }
     
    	           Elseif($Stlise['Satellise_Qui2'] == "")
    			   {
    	$sql_satelise2="UPDATE etablissement SET Satellise_Qui2='$var_sat' WHERE IdEtb='$id'";
    	$exe_sqlsatelise2 = mysql_query($sql_satelise2) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	unset($_POST['satelise']);
    			   }
    			   }	
       while($dataEts1=mysql_fetch_array($RLets1))
       {
       echo'<option>'.$dataEts1['Etablissement'].'</option>';
       }
     
     
     
     
     
       echo'</SELECT><input value="Ok" id="input_OK2" style="visibility: hidden" type="submit" onClick="form_satelise_qui();"><IMG src="image/cancel.png" id="iddelimgannulsatelise" style="visibility: hidden" style="border:"0" onclick="satelise_ann();"></form></td>';

Discussions similaires

  1. [Conception] [débutant] Update ne marche pas
    Par yvandube dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/06/2006, 19h28
  2. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  3. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  4. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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