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 :

[Système] Probleme d'execution d'une condition


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Points : 67
    Points
    67
    Par défaut [Système] Probleme d'execution d'une condition
    Bonjour,

    Mon probleme se situe dans le code si dessous apres la ligne "//Traitement du prix du transport de chaque articles" et plus particulierement dans la derniere condition "else" qui ne veux pas se realiser.

    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
    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
     
    function calcul_transport()
    {
        //Recuperation des variables de session
    	global $HTTP_SESSION_VARS;
     
    	$sid = session_id();
    	$artqty = $HTTP_SESSION_VARS['articles'];
     
    	//Requete sur les donnes a recuperer de la db
    	$query = "SELECT  orders.sessionid, orders.ship_zip, orders.orderid, order_items.qte, order_items.orderid FROM orders, order_items WHERE orders.orderid = order_items.orderid AND orders.sessionid = '$sid' LIMIT 1";
    	$result = mysql_db_query("cave_cjd", $query);
     
    	//Recuperation des donnees code postal et categorie article
    	if ($voir = mysql_fetch_array($result)) {
    	$dep = $voir['ship_zip'];
    	//echo '  Code Postal :';	
    	//echo $dep;
      	}
     
    	//Recuperation des deux premiers caracteres du code postal
    	$verif_dep = substr("$dep",0,2);
    	//echo '  Dep :';
    	//echo $verif_dep;
     
    	//Recuperation de la quantite d'articles pour chaque article et multiplier par le poids
    	$query = "	SELECT SUM(poids) AS 'somme'
    				FROM order_items, orders 
    				WHERE order_items.orderid = orders.orderid 
    				AND orders.sessionid = '$sid'";
     
    	$result = mysql_query($query);
     	$total_poids = mysql_fetch_array($result);
    	$poids = $total_poids['somme'];
    	//echo '  Poids :';
    	//echo $poids;
     
    	//Definir dans quelle categorie de poids se trouve la commande en cours
    	if ($poids <=5.99) {
    	$idcategorie = 1;
    	}
    	else if ($poids >= 6 && $poids <= 10.99) {
    	$idcategorie = 2;
    	}
    	else if ($poids >= 11 && $poids <= 15.99) {
    	$idcategorie = 3;
    	}
    	else if ($poids >= 16 && $poids <= 20.99) {
    	$idcategorie = 4;
    	}
    	else if ($poids >= 21 && $poids <= 30) {
    	$idcategorie = 5;
    	}
    	else {
    	echo 'Nous contacter pour obtenir les frais de port pour cette quantité';
    	}
    	//echo '&nbsp;&nbsp;Id cat :';	
    	//echo $idcategorie;
     
     
    	//Traitement du prix du transport de chaque articles
     
     		if ($verif_dep == 86) {
    			$query = "	SELECT *
    						FROM ship_price 
    						WHERE id = $idcategorie";
    			$result_sql = mysql_db_query("cave_cjd", $query);
    			if ($voir = mysql_fetch_array($result_sql)) {
    				$shipping = $voir['zonevienne'];
    				//echo $result;
    				}
    		}
     
    		else if ($verif_dep == 20) {
    			$query = "	SELECT *
    						FROM ship_price 
    						WHERE id = $idcategorie";
    			$result_sql = mysql_db_query("cave_cjd", $query);
    			if ($voir = mysql_fetch_array($result_sql)) {
    				$shipping = $voir['zonecorse'];
    				//echo $result;
    			}
    		}
     
    		else if ($verif_dep == 16 || 17 || 18 || 19 || 23 || 24 || 33 || 36 || 37 || 41 || 44 || 49 || 53 || 72 || 79 || 85 || 87) {
    			$query = "	SELECT *
    						FROM ship_price 
    						WHERE id = $idcategorie";
    			$result_sql = mysql_db_query("cave_cjd", $query);
    			if ($voir = mysql_fetch_array($result_sql)) {
    				$shipping = $voir['zoneregion'];
    				//echo $result;
    			}
    		}
     
    		else {
    			$query = "	SELECT *
    						FROM ship_price 
    						WHERE id = $idcategorie";
    			$result_sql = mysql_db_query("cave_cjd", $query);
    			if ($voir = mysql_fetch_array($result_sql)) {
    				$shipping = $voir['zonenation'];
    				//echo $result;
    			}
    		}
     
     
    return $shipping;
     
    }
    Toutes les autres conditions avant fonctionnent sauf cette derniere.

    Des idées ?

    Merci

    BONNES FETES A TOUS !!

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Utilise elselif au lieu de else if

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Points : 67
    Points
    67
    Par défaut
    Rien à faire. Quand $verif_dep est égal à 92 par exemple, il execute la condition 3 au lieu d'executer la derniere.

    Ca m'saoule, je comprends pas ou est l'erreur...

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Salut,

    Cette syntaxe est incorrecte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if ($verif_dep == 16 || 17 || 18 || 19 || 23 || 24 || 33 || 36 || 37 || 41 || 44 || 49 || 53 || 72 || 79 || 85 || 87)
    il faudrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    else if ($verif_dep == 16 || $verif_dep == 17 || [etc...])
     
    ---
    ou bien tu peux aussi faire:
    $dep_valides = array(16, 17, 18, 19, 23, [etc...]);
     
    else if (in_array($verif_dep, $dep_valides))

    Pour la petite histoire, ce que tu avais écrit était interpreté comme :
    "$verif_dep vaut 16" ou alors "17" ou alors "18" etc...
    or "17" est toujours évalué à VRAI, car l'entier est converti en booléen (et la conversion se fait comme ceci : 0 donne FAUX, n'importe quel nombre différent de 0 donne VRAI.
    Ta condition devient alors :
    "$verif_dep vaut 16" ou alors "VRAI" ou alors "VRAI" etc... : ce qui est toujours vrai
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Points : 67
    Points
    67
    Par défaut
    Ah ok, je comprends mieux et maintenant ca fonctionne !!

    Merci à toi pour la petite explication.

    Tu m'enlève une sacrée épine du pied !

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

Discussions similaires

  1. [RMI]Probleme d'execution d'une procédure distante
    Par mawashee dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 07/10/2006, 20h12
  2. probleme d'execution d'une requete sql
    Par rootdaoud dans le forum SGBD
    Réponses: 2
    Dernier message: 13/09/2005, 17h15
  3. [System][EXEC] Probleme d'execution avec une commande parametrée.
    Par chicorico dans le forum Général Java
    Réponses: 15
    Dernier message: 20/05/2005, 15h07
  4. Réponses: 2
    Dernier message: 24/06/2004, 09h13
  5. Probleme d'execution d'une requete avec un Count
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 23/06/2004, 10h33

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