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

Langage PHP Discussion :

[Tableaux] Problème avec Switch case


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut [Tableaux] Problème avec Switch case
    J'ai 1 page qui contient un form name="bouton"
    Chaque bouton a le même nom="page" avec un value différent.
    quand je clic sur chacun des boutons les qui s'affichent correspondent bien au bouton cliqué mais je n'arrive à enregistrer les données dans la table.
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <form name='accueil'>
    	Sélectionner le type de mouvement à enregistrer
    </form>
    <form name="boutons" method="POST" action="saisie1.php"> 
     <input type="submit" name="page" value="cotisations" style='width:80px' style='text-align:center' title='Saisie des cotisations des membres'> 
     <input type="submit" name="page" value="titres" style='width:80px' style='text-align:center' title='Saisie des opérations sur titres'> 
     <input type="submit" name="page" value="autres" style='width:80px' style='text-align:center' title='Saisie des frais bancaires, dividendes etc...'> 
    </form> 
    </font></font>
    <?php 
    if(!isset($_POST['page'])) 
    { 
    $page = 'accueil'; 
    } 
    else 
    { 
    $page = $_POST['page']; 
    } 
    switch($page) { 
    case 'cotisations':
    	?>
    	<form name='cotisations' ONRESET='return ResetCheck()' action='saisie1.php' method='Post'>
    	<table border='0' align='center'>
    	<tr>
    ......
    	<?php 
    	// Récupération des champs 
    	$sens ="1";
    	$categorie = "Cotisations";
     
    	$date= "";
    	if(isset($_POST['Jours']))      $j=$_POST['Jours'];
    		else	$j = "";
    	if(isset($_POST['mois']))      $m=$_POST['mois'];
    		else	$m = "";
    	if(isset($_POST['ans']))      $a=$_POST['ans'];
    		else	$a = "";
    	if (($j != "") and ($m !="") and ($a !=""))
    		$date = $_POST['ans'] . "-" . $_POST['mois'] . "-" . $_POST['Jours'];
    	//mise en forme du libellé
    	$chaine = "";
    	if(isset($_POST['membre']))
    		$chaine= $_POST['membre'];
    		$lgtotale = strlen($chaine);            // longueur de la chaine
    		$chaineIndex = strstr($chaine, ',');    // donne les caractères en partant de la droite avec le ',' compris
    		$lgchaineindex = strlen($chaineIndex);  // donne la longueur de la ligne ci-dessus
    		$i = $lgtotale - $lgchaineindex ;       // donne la longueur à extraire de la chaine
    		$prenom =  substr($chaine,0,$i);	// donne le prenom
    		$indexMbe =  substr($chaine,$i + 1);	// donne l'index
    		if(isset($_POST['periode']))      $periode=$_POST['periode'];
    			else	$periode = "";
    		if (($prenom != "") and ($periode != ""))
    			$libelle = $prenom . '  ' . $_POST['periode'];
    	if(isset($_POST['montant']))      $montant=$_POST['montant'];
    		else $montant = "";
    	if(isset($_POST['note']))      $memo=$_POST['note'];
    		else	$memo = "";
    	// On vérifie si les champs sont vides 
    	if (empty($_POST['Jours']) || empty($_POST['mois']) || empty($_POST['ans']) || empty($_POST['membre']) || empty($_POST['montant']))
        		{ 
    			echo '<font color="red">Attention, les champs <b>Nom et Prénom</b> sont obligatoires !</font>'; 
    	    	} 
    	else { 
        		// on écrit la requête sql 
        		$sql = "INSERT INTO journal(J_Index, J_Date, J_Libelle, J_Montant, J_Sens, J_C_Description, J_SC_Description, J_Mb_Index, J_Memo) 
    			VALUES('','$date','$libelle','$montant','$sens','$categorie','$periode','$indexMbe','$memo')"; 
        		// on insère les informations du formulaire dans la table 
        		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    		?><p align=center>
    		Les données sont enregistrées !
    		</form> 
    		<?
    	//    		mysql_close();  // on ferme la connexion 
    	}
    ?>
    <?php
    break; 
    case 'titres': 
    	echo "titres";
    break; 
    case 'autres':
    	echo "autres";
    break; 
    } 
    ?>
    Si je mets ce code sur une page sans utiliser les boutons ni switch case, les données sont bien enregistrées
    Je ne vois pas où peut se situer le problème car je n'ai pas de message d'ereur.

  2. #2
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Ton code fonctione : http://t4cwebserver.free.fr/TsT/saisie1.php
    Bien que les champs input sont incorecte du point de vue W3C(deux fois le champ style, et il doivent avoir des "" parce que le style contien souvent des chaine de caractère délimiter par '')

    Sinon regarde la requette sql


    Je te conseille de faire eci quand tout a l'aire de fonctioner, masi que la requette sql n'a pas lieu :
    Aficher la variable SQL -> La tester dans PHPMyAdmin afin de voir l'éreur SQL qui est r'envoiller. Je paris qu'il y auras une éreur, j'ai toujours ce problème avec mes requette, j'oubli souvent quelque chose ^^
    Sinon il y a une fonction qui afiche l'éreur de la requette, je vais jetter un coup 'oueille dans mon bouquin

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci pour ta réponse.

    J'ai pas tout compris. Tu me dis que la requete fonctionne même si mes champs input ne sont pas correctes.

    Qu'est ce que tu veux dire par "deux fois le champ style"?

    J'ai fais la requete dans mysql et j'ai fais un copier/coller mais ça marche pas

  4. #4
    Inscrit
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Points : 273
    Points
    273
    Par défaut
    Pour 2 fois le champs style, il veut dire que tes INPUTS ont deux attributs "style" (style="..." X 2 au lieu de style="...; ...").

  5. #5
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Normale que le copier/coller mùarche pas! C'est de la que vien le problème : requette sql incorect! A toi de la coriger(aide toi du message d'éreur de phpmyadmin)

Discussions similaires

  1. Problème avec Switch case
    Par Med_be dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 09/04/2011, 15h14
  2. Problème avec les cases d'un groupe d'option.
    Par auriolbeach dans le forum Access
    Réponses: 2
    Dernier message: 01/10/2005, 07h33
  3. [Tableaux] Problème avec array_multisort
    Par ecocentric dans le forum Langage
    Réponses: 5
    Dernier message: 27/09/2005, 14h56
  4. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42
  5. [Tableaux] problème avec while
    Par zimotep dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2005, 10h30

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