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 :

Resultat de calcul d'une fonction PHP dans un tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Par défaut Resultat de calcul d'une fonction PHP dans un tableau
    Bonjour,

    j'utilise la fonction suivante pour faire un calcul de distance

    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
    for ($i=0; $i<count($table)-1;$i++)
    	{
    		//Point A puis B puis c
    		$lat1 = 47.658669;
    		$lng1 = -2.754000;	
     
    		//point B puis c puis D
    		$lat2 = $table[$i+1]['lat'];
    		$lng2 = $table[$i+1]['lng'];	
     
    		$distance_total = distance($lat1, $lng1, $lat2, $lng2);
     
    $i++
    		;
     
    	}
    Je voudrais savoir comment faire pour faire un tableau avec tous les resultats de $distance_total.

    Merci de votre reponse

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    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
     
    $tab = array();
     
    for ($i=0; $i<count($table)-1;$i++)
    	{
    		//Point A puis B puis c
    		$lat1 = 47.658669;
    		$lng1 = -2.754000;	
     
    		//point B puis c puis D
    		$lat2 = $table[$i+1]['lat'];
    		$lng2 = $table[$i+1]['lng'];	
     
    		$tab[] = distance($lat1, $lng1, $lat2, $lng2);
     
    $i++
    		;
     
    	}

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Par défaut
    ok merci mais comment faire pour faire une selection pour recuperer seulement certains resultats:

    j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM menu where $tab[] < 100  ";
    mais j'obtiens une erreur

    ERREUR MYSQL numéro: 1054
    Type de cette erreur: Unknown column 'Array' in 'where clause'

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Même en dehors du problème de tableau, ta requête n'a pas de sens.
    Dans une requête on compare un champ de la table avec une valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM menu WHERE un_champ < 100
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Par défaut
    Je comprend ce qui ne va pas, mais alors c'est quoi le truc pour recuperer tous les ID des lignes de $table lorsque le resultat $tab[] est plus petit que 100.

    par exemple avec

    $tab[0] = 52
    $tab[1] = 85
    $tab[2] = 152

    je voudrais faire un select des ID [0] et [1] dans ma BDD car se sont les seul plus petit que 100.

    Je suis perdu. Auriez vous des exemples similaires a ce que je recherche.

    Merci

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonsoir,

    il faut que tu crées une requête du type :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM maTable WHERE id IN (1, 2, 3, 4, 5);

    il faut donc que tu crées le IN dynamiquement en fonction de ton tableau. Par un foreach par exemple :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $in = '';
     
    foreach($tab as $cle=>$valeur)
        if($valeur < 100)
            $in .= $cle.',';
     
    // on supprime la dernière virgule de trop...
    $in = rtrim($in, ',');
     
    $requete = 'SELECT * FROM maTable WHERE id IN ('.$in.')';

Discussions similaires

  1. [XSLT]Probléme avec une fonction php dans un fichier xsl!
    Par Mo_Poly dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/10/2007, 07h32
  2. Appel d'une fonction PHP dans un formulaire
    Par Mut dans le forum Langage
    Réponses: 4
    Dernier message: 27/08/2007, 11h34
  3. [SQL] comment "desactiver" une fonction php dans une page?
    Par horas dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/05/2007, 15h04
  4. [Mail] Inclure une fonction php dans un mail
    Par Tobleron dans le forum Langage
    Réponses: 12
    Dernier message: 26/02/2007, 14h23
  5. Réponses: 3
    Dernier message: 06/11/2005, 18h02

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