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 :

problème de variable vide


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 18
    Par défaut problème de variable vide
    Bonjour à tous , je ne sais pas si je poste vraiment dans la bonne session mais vu que mon problème vient d'une variable..
    Dans mon code je récupère différentes infos dans mon switch . Jusque la pas de problème quand je fais un echo sur mon switch ma variable est bien rempli.
    Le problème c'est que deux lignes en dessous, dans mon if la variable est vide et je n'arrive pas à comprendre pourquoi?
    Si quelqu'un a une idée même la plus simple possible car je suis vraiment bloquée. Merci d'avance à ceux qui prendront le temps de me répondre

    voici mon code :

    Code php : 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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
    //Initialisation de la date
           $jour  = date("j");
    	   $mois  = date("n");
    	   $annee = date("Y");
     
    		//Création du fichier
    		$nomFic = "EDI_{$_SESSION['idUser']}.txt";
    		unlink ($nomFic);
    		copy ("vide.txt",$nomFic);
    		$file = fopen($nomFic,"w");
     
    		// Enregistrement d'entête D1
    		//=======================================================================
     
    		$char[] = array();
    		$cptChar = 0;
     
    		//début modif
     
    			$req = "SELECT * FROM messagese,oa,societe,entetecommande
    					WHERE MESCODE='$mescode' AND MESTYPENR='type1'
    					AND OANOA='$noa' AND oa.OACSOC = entetecommande.ENTSCH 
    					AND oa.OACSOC = societe.SOCID";
    			$res = mysql_query($req) or die ("erreur $req ");
    			while($mes = mysql_fetch_object($res))
    			{
     
    				// 1°) Remplissage de la valeur du champ
    				// -----------------------------------------------------------------------
    				$mesvaleur = $mes->MESVALEUR;
    				$mescode = $mes->MESCODE;
    				$socTabEm = array();
    				$socTabEm = getSociete($chargeur);
    				$cdeTabEm = array();
    				$cdeTabEm = getCommande($cdeId);
     
     
    				switch($mescode)
    				{
     
    					case 'siret_emetteur' :
    						$varw = $socTabEm[6];
    					break;
     
    					case 'nom_emeteur' :
    						$varw = $socTabEm[0];
    					break;
     
    					case 'siret_transporteur':
    						$varw = $socTabEm[6];
    					break;
     
    					case 'nom_transporteur':
    						$varw = $socTabEm[0];
    					break;
     
    					case 'ligne_adresse1' : 
    						$varw = $socTabEm[14];
    					break;
     
    					case 'ligne_adresse2' : 
    						$varw = $socTabEm[15];
    					break;
     
    					case 'cp' : 
    						$varw = $socTabEm[16];
    					break;
     
    					case 'ville' : 
    						$varw = $socTabEm[17];
    					break;
     
    					case 'pays' : 
    						$varw = $socTabEm[18];
    					break;
     
    					case 'ntelephone' : 
    						$varw = $socTabEm[1];
    					break;
     
    					case 'date_enlev_demande' : 
    						$varw = $cdeTabEm[14];
    					break;
     
    					case 'date_enlev_tot' : 
    						$varw = $cdeTabEm[18];
    					break;
     
    					case 'date_enlev_tard' : 
    						$varw = $cdeTabEm[19];
    					break;
     
     
    				}
     
     
    				if ($mesvaleur != "")
    				{
    					$varw = $mesvaleur;						
    				}
     
     
     
    				// 2°) Mise en forme dans le buffer de sortie
    				// -----------------------------------------------------------------------
    				$mesdeb = $mes->MESDEBUT;
    				$mesfin = $mes->MESFIN;
    				$meslong = $mes->MESLONG;
    				for ($i=$mesdeb; $i<=$mesfin; $i++)
    				{
    					$j = $i - $mesdeb + 1;
    					if (substr($varw, $j, 1) != "")
    					{
    						$char[$i] = substr($varw, $j, 1);
    					} 
    					else $char[$i] = " ";
    				}
     
    				$enreg = "";
    				for ($i=$mesdeb; $i<=$mesfin; $i++)
    				{
    					$enreg.=$char[$i];
    				}
    			}	
     
    		fwrite($file,$enreg);
    		fwrite($file,"\n");
                             fclose($file);

    P.S : ma colonne $mesvaleur contient une seule donnée et ma colonne $mescode contient toutes les infos du switch.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Je suppose que la variable dont il est question est $varw. Mais je ne comprends pas bien ce que tu en fait : tu la remplis dans le switch, puis tu la re-remplis dans le if Est-ce que tu pourrais expliquer un peu plus ce que tu essayes de faire ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 18
    Par défaut
    en fait selon les valeurs de $mescode dans mon switch, j'effectue différentes action et après je voudrais récupérer toutes ces informations pour les écrire dans un fichier texte.
    Pour le if c'est mon maître de stage qui l'a rajouter quand je lui est dit que j'avais un soucis avec ma variable $varw, je ne sais pas s'il est vraiment utile puisque le but une fois sortie du switch , c'est d'inscrire les infos dans un fichier texte avec le code de mise en forme situé un peu plus bas dans mon code.

    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
    // 2°) Mise en forme dans le buffer de sortie
    				// -----------------------------------------------------------------------
    				$mesdeb = $mes->MESDEBUT;
    				$mesfin = $mes->MESFIN;
    				$meslong = $mes->MESLONG;
    				for ($i=$mesdeb; $i<=$mesfin; $i++)
    				{
    					$j = $i - $mesdeb + 1;
    					if (substr($varw, $j, 1) != "")
    					{
    						$char[$i] = substr($varw, $j, 1);
    					} 
    					else $char[$i] = " ";
    				}
     
    				$enreg = "";
    				for ($i=$mesdeb; $i<=$mesfin; $i++)
    				{
    					$enreg.=$char[$i];

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    Salut,

    Même si j'ai pas bien compris ce que tu veux faire de ton code (ton but est d'éditer (ou modifier si tu préfère) un fichier texte avec des infos que tu récupère de ta bddje suppose), je vais essayer de t'aider (au moins te donner des pistes).
    Je pense qu'il serait plus judicieux que ta variable $varw soit un tableau -> je m'explique :
    Les infos que tu veux écrire dans ce fichier sont des infos connues, je veux dire par là que leur nombre de varie pas, il est toujours le même, donc pourquoi pas créer un tableau de chaîne de caractère où à chaque cas de ton switch tu fais correspondre ce que tu souhaite?

    D'autres part, c'est vrai que c'est bizarre la manière dont tu traite ta variable $varw dans ta boucle if, tu test si $mesvaleurs ne sont pas nulles, puis après tu donne à $varw la valeur de $mesvaleurs...

  5. #5
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 18
    Par défaut
    en effet moi aussi je trouve que l'histoire avec le if est bizarre mais mon maître de stage , m'a dis qu'il fallait le laisser Moi je serait d'avis de l'enlever ce qui serait logique : tu pense que si j'enlève mon if je vais pouvoir quand même écrire mon code dans mon fichier texte ?
    merci pour tes conseils je vais essayer.

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    Les maîtres de stages sont bizarres des fois,

    Ben si ta base de données contient bien des informations et que si tu les récupères bien dans ta variable (où ton tableau), normalement oui tu devrais pouvoir les écrire dans ton fichier, je pense pas que cela pose problème...

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

Discussions similaires

  1. Problème de passage de variable vide
    Par ephemere dans le forum Linux
    Réponses: 11
    Dernier message: 07/09/2011, 07h30
  2. Problème de variable vide avec requete Insert
    Par jbidou88 dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/06/2007, 11h10
  3. Problème de variable
    Par vp dans le forum Windows
    Réponses: 2
    Dernier message: 14/05/2004, 16h27
  4. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  5. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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