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] calcul sur deux array [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut [Tableaux] calcul sur deux array
    Bonjour,

    Très novice en php mysql je n'arrive pas a faire un calcul simple sur deux variables array.

    La premiere array $grp (contenant des valeurs numeriques) doit etre comparée a à la variable array $vise (contenat elle aussi des valeurs numériques).
    suivant les conditions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $ecart=30 // % d'écart de mesure autorisé pour la comparaison des deux variables
    $score=0; //score de ressemblance entre $grp et $vise
    for($i=0; $i<sizeof($vise);$i++){
    $ecartgrp[$i]=($ecart/100)*$grp[$i];// On détermine l'erreur de mesure
    if ($grp[$i]-$ecartgrp[$i]<=vise[$i]<=$grp[$i]+$ecartgrp[$i]){
        $score++;
    }
    echo "score:". $score."<br>";
    }
    La condition if() ne fonctionne pas

    Le but etant d'atribuer une score de comparaison en fonction d'une ecart de mesure (ici +- 30%).

    Je ne sais écrire ce qu'il faudrait faire.
    Merci de votre aide

  2. #2
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Effectivement ton if ne peut pas fonctionner, il y a 2 conditions alors qu'il n'en faut qu'une et en plus.
    Il faut isoler les deux éléments à comparer avec des parathèses, à partir du moment ou il y a une autre opération réalisée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($grp[$i]-$ecartgrp[$i])<=vise[$i]){
    Pour le reste, je n'ai pas réfléchi plus en avant à la question. Si tu galère vraiment je pourrais peut être essayer de t'aider.
    Essayé comme cela déjà, il va surement te falloir faire un deuxième test ensuite.
    Bon courage

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Malheureusement cela ne semble pas focntionner même en ne faisant que le if que vous avez décrit.

  4. #4
    Membre régulier Avatar de +Guilhem
    Profil pro
    Ingénieur d'études Java/JEE
    Inscrit en
    Novembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études Java/JEE

    Informations forums :
    Inscription : Novembre 2007
    Messages : 78
    Points : 112
    Points
    112
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($grp[$i]-$ecartgrp[$i] <= vise[$i]) and (vise[$i] <= $grp[$i]+$ecartgrp[$i]))

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Non plus , j'avais d'ailleur essayé avec && au lieu de and et c'était pareil => page blanche a l'execution du script.
    D'ailleur je ne sais pas si cela impacte sur ce probleme mais la boucle for et elle même donc une boucle while qui rapatrie le $vise a comparer avec la $grp.

    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
    $score=0;
    while($row = mysql_fetch_array($result)){
    	$vise= unserialize($row["Data"]);
    	echo "<hr>deserialisé:".$row["ID"]."<br>";
    	echo "ecart=".$ecart."%<br>";
    	if (sizeof($grp)==sizeof($vise)){
    		for($i=0; $i<sizeof($vise);$i++){
    			$ecartgrp[$i]=($ecart/100)*$grp[$i];
    			echo "vise:". $vise[$i]."<br>";
    			echo "grp:".round($grp[$i],3)."<br>";
    			echo "ecartgrp:".$ecartgrp[$i]."<br>";
    			if (($grp[$i]-$ecartgrp[$i] <= vise[$i]) and (vise[$i] <= $grp[$i]+$ecartgrp[$i])){ 
    			score++;
    			}
    		echo "score:". $score."<br>";
    		}
    	}
    	else{
    		echo "Le spectre de ".$row[Nom]." n'a pas été visé car il ne contenait pas le même nombre de données (blocs).";
    	}		
    }
    Tous les "echo" fonctionnent jusqu'au moment ou j'ajoute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (($grp[$i]-$ecartgrp[$i] <= vise[$i]) and (vise[$i] <= $grp[$i]+$ecartgrp[$i])){ 
    			score++;
    			}
    		echo "score:". $score."<br>";
    dans la boucle for..

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    c'est bon j'ai trouvé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ((($grp[$i]-$ecartgrp[$i]) <= $vise[$i]) && ($vise[$i] <= ($grp[$i]+$ecartgrp[$i]))) {
    $score++
    }
    Merci

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

Discussions similaires

  1. [WD17] calcul sur deux champs de type date
    Par indefini dans le forum WinDev
    Réponses: 1
    Dernier message: 02/09/2014, 22h45
  2. [WD-2010] Habillage des tableaux à cheval sur deux pages
    Par Gr3gg dans le forum Word
    Réponses: 8
    Dernier message: 06/02/2012, 23h28
  3. [Tableaux] Affichage sur deux ou trois colonnes
    Par kilian67 dans le forum Langage
    Réponses: 12
    Dernier message: 17/07/2008, 20h06
  4. [Tableaux] calculs sur des vecteurs
    Par fAdoua123 dans le forum Langage
    Réponses: 5
    Dernier message: 12/02/2008, 13h13
  5. [Tableaux] Travail sur deux tableaux à 2 dimensions
    Par BigBarbare dans le forum Langage
    Réponses: 4
    Dernier message: 11/05/2006, 17h25

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