Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2006, 12h29   #1
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 137
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 137
Points : 36
Points : 36
Par défaut variable ne s'affiche pas correctement

J'ai un pétit problème avec l'insruction switch qui ne fait pas son travail ?
Ou est l'erreur .

Remarque la variable $ag reste vide et la requette query_update na donc aucune chance d'aboutir.

Merci d'avance pour votre aide.

Code :
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
 
foreach ($agences as $buro => $info_buro) {
         echo 'info_buro = ' .$info_buro['bp'] .'<BR>';   
      if (in_array($row[4], $info_buro['bp'])) {
         echo 'L\'atribution à réuçi' .'<BR>';
              switch ($buro) {
              case "rouen":
                  case "paris":      
                  case "bourg":
                  case "pont":
                  case "mars":
                  case "metz":
                  case "vannes":
             case "paris2":
             case "toulouse":
                  case "lens":
                  case "dunk":
                  case "lyon":
                  case "montp":
                  case "lebou":
                  case "agen":
              $ag = $buro;         
                  break;
              }
      }
   } 
 
<?php

Voici le programe dans son intégralité qui est encore en cours de dévelopement:
Code :
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
130
 
<?php
 
//-- distribution des emails... ------------------------------------------------
$agences=array();
$agences['rouen']['mail']='adresse_mail@blabla.com';
$agences['rouen']['bp']=array('14', '27', '28', '37', '41', '45', '50', '61', '76', '80');
 
$agences['paris']['mail']='adresse_mail@blabla.com';
$agences['paris']['bp'] =array('60', '78', '95');
 
$agences['paris2']['mail']='adresse_mail@blabla.com';
$agences['paris2']['bp']=array('10', '51', '75', '77', '89', '91', '92', '93', '94');
 
$agences['dunk']['mail']='adresse_mail@blabla.com';
$agences['dunk']['bp'] =array('59');
 
$agences['lens']['mail']='adresse_mail@blabla.com';
$agences['lens']['bp']=array('02' ,'08' ,'62');
 
$agences['bourg']['mail'] ='adresse_mail@blabla.com';
$agences['bourg']['bp'] =array('18','36','58');
 
$agences['vannes']['mail'] ='adresse_mail@blabla.com';
$agences['vannes']['bp'] =array('22' ,'29' ,'35' ,'53' ,'56' ,'72');
 
$agences['pont']['mail'] = 'adresse_mail@blabla.com';
$agences['pont']['bp']=array('23' ,'44','49','79','85' ,'86','87');
 
$agences['lebou']['mail'] = 'ladresse_mail@blabla.com';
$agences['lebou']['bp'] =array('16' ,'17' ,'19' ,'33' ,'40', '64');
 
$agences['agen']['mail'] = "adresse_mail@blabla.com";
$agences['agen']['bp'] = array('24', '47');
 
$agences['toulouse']['mail']='adresse_mail@blabla.com';
$agences['toulouse']['bp']=array('09' ,'12' ,'31' ,'32' ,'46' ,'65' ,'82' ,'81');
 
$agences['montp']['mail'] = "adresse_mail@blabla.com";
$agences['montp']['bp'] =array('11' ,'30' ,'34' ,'48' ,'66');
 
$agences['mars']['mail']='adresse_mail@blabla.com' ;
$agences['mars']['bp']=array('04' ,'05' ,'06' ,'13' ,'83' ,'84');
 
$agences['lyon']['mail'] ='adresse_mail@blabla.com';
$agences['lyon']['bp']=array('01' ,'03' ,'07' ,'15' ,'21' ,'26' ,'38' ,'42' ,'43' ,'63' ,'69' ,'71' ,'73' ,'74');
 
$agences['metz']['mail']= 'adresse_mail@blabla.com';
$agences['metz']['bp'] =array('54' ,'55' ,'57' ,'67' ,'68' ,'88' ,'90' ,'25' ,'39', '70' ,'52' );
 
 
include("inc/db.conf.inc.php");
include("inc/class.MySQL_Abstractor.inc.php");
 
 
$db = new MySQL_Abstractor();
$db->set_params($db_host, $db_user, $db_pass, $db_base);
$db->connect();
 
$db->set_table("inscriptions");
 
$query = "Select id_inscription , date_inscription, agence_date_livraison, agence_secteur_livraison, code_postal FROM inscriptions where `id_inscription`=24";
 
echo $query .'<BR>';
 
$result = mysql_query($query);
 
echo $result .'<BR>';
 
if ( $result )
    echo mysql_affected_rows()  .'<BR>' .'Query O.K.' .'<BR>';
 
 
//récupération du nombre de lignes retournées
$num_results = mysql_num_rows($result);
 
echo $num_results .'<BR>';
 
//affichage de chacune des lignes retournées
for ($i=0; $i <$num_results; $i++)
{  
   $row = mysql_fetch_row($result);
   echo 'id_insription = ' .$row[0] .'<BR>';
   echo 'date_inscription = ' .$row[1] .'<BR>';
   echo 'agence_date_livraison = ' .$row[2] .'<BR>';
   echo 'agence_secteur_livraison = ' .$row[3] .'<BR>';
   echo 'code_postal = ' .$row[4] .'<BR>';
 
 
   $cp = substr($fiche['code_postal'], 0, 2);
 
 
   foreach ($agences as $buro => $info_buro) { 
   		echo 'info_buro = ' .$info_buro['bp'] .'<BR>';   
		if (in_array($row[4], $info_buro['bp'])) {
			echo 'L\'atribution à réuçi' .'<BR>';
        		switch ($buro) {
        		case "rouen":
            		case "paris":	    
            		case "bourg":
            		case "pont":
            		case "mars":
            		case "metz":
            		case "vannes":
	    		case "paris2":
	    		case "toulouse":
            		case "lens":
            		case "dunk":
            		case "lyon":
            		case "montp":
            		case "lebou":
            		case "agen":
	        	$ag = $buro;			
            		break;
        		}
		}
	}
 
 
   $query_update = "UPDATE inscriptions SET agence_secteur_livraison= " .$ag ." WHERE id_inscription=" .$row[0];
   echo 'query_update = ' .$query_update .'<BR>';
 
   //$result = mysql_query($query_update);
   //echo $result .'<BR>';
}   
 
$db->close();
unset($db);
 
?>
Et voiçi le retour de l'écran de débogage après excecution du script :


Citation:
Select id_inscription , date_inscription, agence_date_livraison, agence_secteur_livraison, code_postal FROM inscriptions where `id_inscription`=24
Resource id #5
1
Query O.K.
1
id_insription = 24
date_inscription = 2005-02-18
agence_date_livraison = 20060113212434
agence_secteur_livraison =
code_postal = 62300
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
info_buro = Array
query_update = UPDATE inscriptions SET agence_secteur_livraison= WHERE id_inscription=24
Dans cet exemple j'aurais souhaite obtenir le résultat suivant :
Citation:
query_update = UPDATE inscriptions SET agence_secteur_livraison='lens' WHERE id_inscription=24
car le code postal 62300 est attribué à agence de lens
Didier100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2006, 12h49   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Je vais répondre un peu à côté mais, dans ton cas, est-ce que in_array() ne serait pas plus approprié que switch ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2006, 12h57   #3
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 137
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 137
Points : 36
Points : 36
Salut Kirkis,

peut être je me suis pas bien explique mais il à l'instruction in_array()


if (in_array($row[4], $info_buro['bp'])) {
echo 'L\'atribution à réuçi' .'<BR>';
switch ($buro) {
Didier100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2006, 13h10   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Oui mais je parlais de remplacer switch ($buro) par in_array(), en fait.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2006, 13h35   #5
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 137
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 137
Points : 36
Points : 36
J e suis débutant en PHP !

Quand je remplace, comme tu dit, switch($buro) par in_array()

Je reçoit un message d'erreur

Citation:

Parse error: parse error, unexpected '{' in /home/eq39427/html/traitements/db_update.php on line 98
Je ne suis pas très familier avex php mais plustôt avec delphi et ces onr deux mondes bien differntes.
Didier100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2006, 13h36   #6
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 137
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 137
Points : 36
Points : 36
Je suis débutant en PHP !

Quand je remplace, comme tu dit, switch($buro) par in_array()

Je reçoit un message d'erreur

Citation:

Parse error: parse error, unexpected '{' in /home/eq39427/html/traitements/db_update.php on line 98
Je ne suis pas très familier avex php mais plustôt avec delphi et ce sont deux mondes bien differentes.
Didier100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2006, 13h43   #7
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Je n'aurais pas dû dire remplace mais utilise à la place de, désolé.

Je n'ai pas tout mis dans l'array $villes mais je présume que tu sauras le remplir :

Code :
1
2
3
4
5
6
7
8
9
10
foreach ($agences as $bureau => $info_bureau) {
	echo 'info_bureau = ' .$info_bureau['bp'] .'<br />';
	if (in_array($row[4], $info_bureau['bp'])) {
		echo 'L\'attribution a réussi' .'<br />';
		$villes = array('rouen', 'paris', 'bourg', 'pont');
		if(in_array($bureau, $villes)){
			$ag = $buro;
		}
	}
}
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2006, 13h49   #8
Membre du Club
 
Inscription : février 2005
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Suisse

Informations forums :
Inscription : février 2005
Messages : 93
Points : 67
Points : 67
Envoyer un message via MSN à -DeN-
Pour en revenir à ton problème (car Kirkis veut trop bien faire en t'optimisant ton code ) t'es sûr que dans ta table inscriptions, agence_secteur_livraison a bien des valeurs?
-DeN- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2006, 14h01   #9
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 137
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 137
Points : 36
Points : 36
Salut DeN,

Mon but est de traduire les codes postaux en noms d'agences et de les inscrire ensuite dans le champs agence_secteur_livraison.

La traduction ne fonctionne pas encore, c'est la mon problème!

Le programme se calle sur les deux premiers chiffres du code postal de la région . En fait la France est sectorisé en 15 zones par le programme.

Pour le moment, comme vous pouvez constater, je n'ai pas encore activée les deux lignes en fin du programme pour éffectuer l'écriture, cela sert à rien tant que le "Switch" ne fonctione pas.
Didier100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h45.


 
 
 
 
Partenaires

Hébergement Web