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

PHP & Base de données Discussion :

Boucle dans un code PHP [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Par défaut Boucle dans un code PHP
    Bonjour à tous.

    Je me sers de google maps au moyen de ce 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
    
                    require('GoogleMapAPIv3.class.php');
    
                    $gmap = new GoogleMapAPI();
                    $gmap->setDivId('test1');
                    $gmap->setDirectionDivId('route');
                    $gmap->setCenter('Nantes');
                    $gmap->setEnableWindowZoom(true);
                                    $gmap->setEnableAutomaticCenterZoom(true);
                    $gmap->setDisplayDirectionFields(true);
                    // $gmap->setClusterer(true);
                    $gmap->setSize('600px','600px');
                    $gmap->setZoom(11);
                    $gmap->setLang('fr');
                    $gmap->setDefaultHideMarker(false);
                    // $gmap->addDirection('nantes','paris');
    
                                    // cat1
                    $coordtab = array();
                    $coordtab []= array('6 avenue jean jaurès 77360 france','Vaires sur Marne','<strong>html 'Vaires sur Marne</strong>');
                                    // $gmap->setIconSize(20,34);
                    $gmap->addArrayMarkerByAddress($coordtab,'cat1');
                                    
    
                    $gmap->generate();
                    echo $gmap->getGoogleMap();
    
                    ?>
    Comme vous pouvez le constater, l'adresse "6 avenue jean jaurès" est statique.
    Je souhaiterais qu'elle devienne dynamique au moyen d'une requête mysql, comme celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $db = JFactory::getDBO();
    $query="SELECT * FROM #__cck_store_form_activit_de_service WHERE id=66";
    echo $query;
    $db->setQuery( $query );
    $related_field = $db->loadObject();
    J'obtiens alors les variables "$related_field->activite_adresse_numero" et "$related_field->activite_adresse_rue".
    Je souhaiterais placer ces variables dans mon code afin d'obtenir la ligne suivante :
    $coordtab []= array('$related_field->activite_adresse_numero $related_field->activite_adresse_rue 77360 france','Vaires sur Marne','<strong>html 'Vaires sur Marne</strong>');

    Mais cela ne fonctionne pas.
    Quel doit être la syntaxe ?

    Je vous remercie de votre attention et de votre aide.

  2. #2
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Ca ne fonctionne pas. C'est à dire??? Quelle erreur s'affiche? Quel est le code complet une fois modifié?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Par défaut
    Bonjour Marc,

    Voici le code que je souhaite obtenir :

    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
    <div id="map" onClick="document.getElementById('lat').value=getCurrentLat();document.getElementById('lng').value=getCurrentLng();">
    
                                                   <?php
    
                    require('php/GoogleMapAPIv3.class.php');
    
                    $gmap = new GoogleMapAPI();
                    $gmap->setDivId('test1');
                    $gmap->setDirectionDivId('route');
                    $gmap->setCenter('Vaires sur Marne');
                    $gmap->setEnableWindowZoom(true);
    				$gmap->setEnableAutomaticCenterZoom(true);
                    $gmap->setDisplayDirectionFields(true);
                    $gmap->setSize('800px','800px');
                    $gmap->setZoom(11);
                    $gmap->setLang('fr');
                    $gmap->setDefaultHideMarker(false);
    $db = JFactory::getDBO();
    $query="SELECT * FROM #__content NATURAL JOIN #__cck_store_form_activit_de_service WHERE catid=12";
    echo $query;
    $db->setQuery( $query );
    $field = $db->loadObject();			
    				// cat1
                    $coordtab = array();
    foreach($field as $article){ 
    $vaires='Vaires sur Marne';	
    $titre=$article->title;		
    				$coordtab []= array($article->activite_adresse_numero $article->activite_adresse_rue, $vaires, $titre);
    				}
    				// $gmap->setIconSize(5,5);
                    $gmap->addArrayMarkerByAddress($coordtab,'cat1');
    
                    $gmap->generate();
                    echo $gmap->getGoogleMap();
    
                    ?>
                </div>
    En rouge, c'est le code qui ne fonctionne pas. Je souhaite faire une boucle afin de placer plusieurs marqueurs sur la carte, comme ici en statique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // cat1
                    $coordtab = array();
                    $coordtab []= array('4 avenue jean jaures','Vaires sur Marne','<strong>4 avenue jean jaures</strong>');
                    $coordtab []= array('3 rue de Brou','Vaires sur Marne','<strong>3 rue de Brou</strong>');
    				// $gmap->setIconSize(20,34);
                    $gmap->addArrayMarkerByAddress($coordtab,'cat1');
    Merci pour ton aide.

  4. #4
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Au risque de me répéter :
    Quelle erreur obtiens-tu?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Par défaut
    Désolé Marc.

    J'ai l'erreur suivante :
    Parse error: syntax error, unexpected T_VARIABLE, expecting ')'
    sur la ligne :
    $coordtab []= array($article->activite_adresse_numero $article->activite_adresse_rue, $vaires, $titre);

  6. #6
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Tu vois le message d'erreur ne peux pas être plus explicite.

    Il manque une virgule entre $article->activite_adresse_numero et $article->activite_adresse_rue.

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Par défaut
    Bon, je sais où se trouve l'erreur :
    Il faut des guillemets dans la ligne, qui sera de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $coordtab []= array('$article->activite_adresse_numero $article->activite_adresse_rue', '$vaires', '$titre');
    comment écrire l'expression avec des guillemets ?

  8. #8
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Le plus propre serait alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $coordtab[]= array($article->activite_adresse_numero.' '.$article->activite_adresse_rue, $vaires, $titre);

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Par défaut
    Bonjour Marc,

    Merci pour la réponse, mais j'ai trouvé. J'ai d'abord concaténé deux colonnes. La ligne doit être de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $coordtab[]= array(''.$adress.'', ''.$vaires.'', ''.$titre.'');
    Ce code fonctionne parfaitement si je n'ai qu'une seule adresse.

    Mon souci se situe maintenant lorsque je mets en place une boucle :
    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
    	$coordtab = array();
    $db = JFactory::getDBO();
    $query = 'SELECT * FROM #__content NATURAL JOIN #__cck_store_form_activit_de_service WHERE catid=12';
    echo '<p>'.$query.'</p>';
    $db->setQuery($query);
    $article = $db->loadObject();
    foreach ($article as $field) { 
    $rue=$field->activite_adresse_rue;
    $title = $article->title;
    echo '<p>'.$rue.'</p>';
    $letters = array("é", "è", "ê", "ë");
    $address = str_replace($letters,'e',$rue); 
    echo '<p>'.$address.'</p>';
                    $coordtab []= array(''.$address.'', ''.$title.'', ''.$title.'');
    				}
    				// $gmap->setIconSize(20,34);
                    $gmap->addArrayMarkerByAddress($coordtab,'cat1');
    L'erreur, "Notice: Trying to get property of non-object" se situe sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rue=$field->activite_adresse_rue;
    Je pense que je ne dois pas écrire cette ligne de la sorte...

    Merci de votre aide.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/07/2006, 13h48
  2. [SQL] erreur dans la requette SQL ou dans le code PHP
    Par jack_1981 dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 11/07/2006, 21h21
  3. Erreur dans mon code PHP
    Par jack_1981 dans le forum Langage
    Réponses: 6
    Dernier message: 12/05/2006, 10h01
  4. [PHP-JS] Probleme de javascript dans un code php
    Par stomerfull dans le forum Langage
    Réponses: 3
    Dernier message: 23/01/2006, 09h33
  5. [PHP-JS] Probleme de javascript dans un code php
    Par stomerfull dans le forum Langage
    Réponses: 20
    Dernier message: 12/01/2006, 13h41

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