Afficher une zone d'une carte [Résolu/Fermé]

Signaler
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
-
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
-
Bonjour, je dois faire un site où je regroupe tous les commerces de la ville, les infos sur ces
commerces sont dans une base de données. Je dois afficher un point, symbolisant chacun des commerces, sur une carte via un lien. Lorsque je clic sur ce lien, je dois aller à l'endroit précis donner par les champs top et gauche de ma bdd.

PS: le lien et les points sont fait, reste à aller à l'endroit précis sur la carte. Le code si possible en php. Seulement je ne sais pas du tout comment faire.

Pourriez-vous m'aider svp

merci d'avance



10 réponses

Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
Il y a plusieurs solutions:

Soit tu utilises GD pour prendre une partie de ta carte et l'afficher à l'écran, ou soit tu charges l'image:

<?
$px=largeur_d_apparition
$py=hauteur_d_apparition
$gauche=gauche_de_ta_table
$haut=top_de_ta_table

echo '<STYLE TYPE="text/css">
#monimage{ position:relative; width:'.$px.'; height:'.$py.'; clip:rect(0px '.$gauche.'px '.$haut.'px 0px); }
</style>';
?>

<div class="monimage"><img src="carte.jpg"></div>


ou un truc comme ca... Je pense que ca devrait te donner des idées. Par contre, charger un lourd fichier peut mettre du tps,, c'est pour ca que je ferai personnellement le 1er choix.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
34
merci louloute300, j'ai copié ce code, mais çà na m'affiche toujours pas le point au centre de ma page:

if ($Requete = "SELECT *
FROM t1
")
{
mysql_query($Requete) or die(mysql_error);
$px = 50;
$py = 50;
$haut = $_POST['top'];
$gauche = $_POST['gauche'];

echo ("<STYLE TYPE='text/css'>
#zoom_cv.php{ position:relative; width:'.$px.'; height:'.$py.'; clip:rect(0px '.$gauche.'px '.$haut.'px 0px); }
</STYLE>");
};

merci de me donner vos idées
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
et si tu rajoute "px" après width...:
width:'.$px.'px;height:'.$py.'px;

Pardon, je te donne ces info sans les avoir testé. Si ça marche tjrs pas. Je refais le script entièrement, je le teste et te l'envoi...
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
34
Non çà ne fonctionne toujours pas, pas d'erreur mais çà ne change rien, voici mon code :

if ($Requete = "SELECT *
FROM t1
WHERE upper(nom_com) LIKE upper(concat('%','$Proteger','%'))
")
{
$requete = mysql_query($Requete) or die(mysql_error);

while($Donnees = mysql_fetch_array($requete))
{
$x = 50;
$y = 50;
$haut = $Donnees['top'];
$gauche = $Donnees['gauche'];

echo ("<STYLE TYPE='text/css'>
#zoom_cv.php{ position:relative; width:'.$x.'; height:'.$y.'; clip:rect(0px '.$gauche.'px '.$haut.'px 0px); }
</STYLE>");
echo ("$x<br>$y<br>$haut<br>$gauche<br>"); //juste pour voir les valeurs prises
}
}
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
Bon je m'en occupe...
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
if ($Requete == "SELECT * FROM t1 WHERE upper(nom_com) LIKE upper(concat('%','$Proteger','%'))") {
$requete = mysql_query($Requete) or die(mysql_error);

while($Donnees = mysql_fetch_array($requete)){
$x = 50;
$y = 50;
$haut = $Donnees['top'];
$gauche = $Donnees['gauche'];

echo "<html><head><STYLE TYPE='text/css'>#zoom_cv{position:relative; width:".$x."px; height:".$y."px; clip:rect(0px ".$gauche."px ".$haut."px 0px); }
</STYLE></head><body>";
echo "$x<br>$y<br>$haut<br>$gauche<br></body></html>";
}
}

La tu as un code corrigé. Par contre, je n'ai pas testé encore la partie CSS. Je le fait de suite.
Par contre, je ne voit pas du tout ce que tu veux faire avec ton while !!!:
Pour traduire ce que tu veux écrire:
Tu définirait n fois (n étant le nb de ligne de ta table) le style de #zoom_cv...
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
34
Bonjour, en faite j'ai pas dûs te le dire mais le code qui permet d'afficher le formulaire php servant à afficher les informations sur les commerces est sur un onglet différent que celui d'où est j'écris ce code.

Est-ce que cela à une importance, car j'ai remarqué que la condition du if ne fonctionne pas puisque echo("$Requete"); n'affiche rien?

voici mon code :

if ($Requete == "SELECT *
FROM t1
WHERE upper(nom_com) LIKE upper(concat('%','$Proteger','%'))")
{
echo("$Requete");
$requete = mysql_query($Requete) or die(mysql_error);

while($Donnees = mysql_fetch_array($requete))
{
$x = 50;
$y = 50;
$haut = $Donnees['top'];
$gauche = $Donnees['gauche'];

echo "<html><head><STYLE TYPE='text/css'>#zoom_cv{position:relative; width:".$x."px; height:".$y."px; clip:rect(0px ".$gauche."px ".$haut."px 0px); }
</STYLE></head><body>";
echo "$x<br>$y<br>$haut<br>$gauche<br></body></html>";
}
}
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
rajoute avant le code global $requete;
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
34
J'ai pas compris dsl, je dois rajouter quoi et où?

voici un extrait du code du formulaire:

$NomCommerce = $_POST['nom'];

if(isset($_POST['rec']) && $ActiviteCommerce == "" && $NomRue == "")
{
$Proteger = mysql_escape_string ($NomCommerce);

$RequeteAffichage = "SELECT *
FROM t1
WHERE upper(nom_com) LIKE upper(concat('%','$Proteger','%'))";

$RechercherCommerce = mysql_query($RequeteAffichage) or die(mysql_error());

if ($NombreTrouve = mysql_num_rows($RechercherCommerce) >= 1 && $NomCommerce != "")
{
while ($Donnees = mysql_fetch_array($RechercherCommerce))
{
if (mysql_num_rows($RechercherCommerce) == 1)
{
echo ("<br><center><span class='id '><span class='red b'>$NombreTrouve </span> résultat trouvé pour le commerce cherché.</center><br>
<b> Le commerce demandé : </b> <br>
<div class=' pps '>
<img id=fl src=img/commerces/".$Donnees['id'].".jpg border=0 >
<span id= fr class=gris>ID<sup> ".$Donnees['id']."</sup></span>
<b>Nom du commerce : </b>".$Donnees['nom_com']."<br>
<b>Adresse : </b>".$Donnees['adresse']."<br>
<b>Activité : </b>".$Donnees['activite']."<br>
<b>Téléphone : </b>".$Donnees['tel']."<br>
<b>Email : </b>".$Donnees['mail']."<br>
<b>Site internet : </b><a href=".$Donnees['site']."target=_blank>".$Donnees['site']."</a><br>
<b>Horaires d'ouverture : </b>".$Donnees['horaire']."<br>
<center><a href = zoom_cv.php> Localisation </a></center></div>
");
}
else if (mysql_num_rows($RechercherCommerce) > 1)
{
echo ("<br><center><span class='id '><span class='red b'>$NombreTrouve </span> résultats trouvés pour les commerces cherchés.</center><br>
<b> Les commerces demandés : </b> <br>
<div class=' pps '>
<img id=fl src=img/commerces/".$Donnees['id'].".jpg border=0 >
<span id= fr class=gris>ID<sup> ".$Donnees['id']."</sup></span>
<b>Nom du commerce : </b>".$Donnees['nom_com']."<br>
<b>Adresse : </b>".$Donnees['adresse']."<br>
<b>Activité : </b>".$Donnees['activite']."<br>
<b>Téléphone : </b>".$Donnees['tel']."<br>
<b>Email : </b>".$Donnees['mail']."<br>
<b>Site internet : </b><a href=".$Donnees['site']."target=_blank>".$Donnees['site']."</a><br>
<b>Horaires d'ouverture : </b>".$Donnees['horaire']."<br>
<center><a href = zoom_cv.php> Localisation </a></center></div>
");
}
}
}
}
if (isset($_POST['rec']) && $NombreTrouve == 0 && $NomCommerce != "")
echo ("<br><center><b>Le commerce <span class='red b'>".$_POST['nom']."</span> ne fait pas parti de la base de la données</b></center><br>");
else if ($NombreTrouve == 0)
echo ("");

Dois-je le rajouter ici?
Si oui où?
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
met "global $...." juste avant la première utilisation de $requete dans chaque onglet...
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
34
Ok mais çà ne change rien, je l'ai écrit à chaque début d'onglet mais çà n'a rien changé et je ne vois pas pourquoi çà ne marche pas

Je l'ai renommé $RequetePlan, voici le code :

include ('connection.php') ;

global $RequetePlan;

if ($RequetePlan == "SELECT *
FROM t1
WHERE upper(nom_com) LIKE upper(concat('%','$Proteger','%'))")
{
echo("$RequetePlan");

$requete = mysql_query($RequetePlan) or die(mysql_error);

while($Donnees = mysql_fetch_array($requete))
{
$x = 50;
$y = 50;
$haut = $Donnees['top'];
$gauche = $Donnees['gauche'];

echo "<html><head><STYLE TYPE='text/css'>#zoom_cv{position:relative; width:".$x."px; height:".$y."px; clip:rect(0px ".$gauche."px ".$haut."px 0px); }
</STYLE></head><body>";
echo "$x<br>$y<br>$haut<br>$gauche<br></body></html>";
}
}
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
Bon je reviens sur ton code...
l'utilisation de:

echo "<html><head><STYLE TYPE='text/css'>#zoom_cv{position:relative; width:".$x."px; height:".$y."px; clip:rect(0px ".$gauche."px ".$haut."px 0px); }
</STYLE></head><body>";
echo "$x<br>$y<br>$haut<br>$gauche<br></body></html>";

n'a aucun intéret dans un while. Un while est une boucle qui va écrire 10, 20 ou 50 fois ce texten or il ne peut y avoir qu'une balise <html> ou encore <body>, et la tu va en mettre autant que la boucle va tourner

Ensuite, pour simplifier ton code, je te propose de remplacer ca:
$RequetePlan == "SELECT * FROM t1 WHERE upper(nom_com) LIKE upper(concat('%','$Proteger','%'))"
Tu peux peut être créer une seconde variable comme $requetex qui serait égale à 1 ou 0 selon si tu veux ou non suivre ton code....

Enfin, au passage, peut être que ta requete pose un pb:
"SELECT * FROM t1 WHERE upper(nom_com) LIKE upper(concat('%','$Proteger','%'))"
à remplacer par:
"SELECT * FROM t1 WHERE upper('nom_com') LIKE upper('%".$Proteger."%')"
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
34
Je pense que c'est la requête plus particulièrement le $Proteger qui n'est pas bon pourtant j'ai copier/coller la tienne mais çà ne marche toujours pas je vois pas comment faire
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
Les apostrophes autour de nom_com sont des Alt Gr + 7 ?
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
34
Ok je les ai remplacé mais toujours rien voici le code :

global $RequeteAffichage;

if ($RequeteAffichage == "SELECT *
FROM t1
WHERE upper('nom_com') LIKE upper('%".$Proteger."%')")
{
echo("$RequeteAffichage");

$requete = mysql_query($RequeteAffichage) or die(mysql_error);

$x = 50;
$y = 50;
$haut = $Donnees['top'];
$gauche = $Donnees['gauche'];

echo "<html><head><STYLE TYPE='text/css'>#zoom_cv{position:relative; width:".$x."px; height:".$y."px; clip:rect(0px ".$gauche."px ".$haut."px 0px); }
</STYLE></head><body>";
echo "$x<br>$y<br>$haut<br>$gauche<br></body></html>";
}
else echo ("gfds");

Je n'ai pas mis la variable booléenne car je ne sais pas à quoi elle me servirai ici, sinon lorsque je clic sur le lien çà charge l'image et çà m'affiche le else.
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
En fait, je pense à ca on cherche à s'occuper de la qualité de la requete, alors que en fait,,, on devrait l'oublié... Ce qu'il faut savoir c'est ce qu'il y a dans $requeteAffichage:

Si tu veux bien remplacer:
global $RequeteAffichage;

if ($RequeteAffichage == "SELECT *
FROM t1
WHERE upper('nom_com') LIKE upper('%".$Proteger."%')")
{
echo("$RequeteAffichage");

par
global $RequeteAffichage;
echo "RequeteAffichage=".$RequeteAffichage."<br>Est-il différent de :<br>";

$requeteif="SELECT * FROM t1 WHERE upper('nom_com') LIKE upper('%".$Proteger."%')";

echo "RequeteIf=".$requeteif;

if ($RequeteAffichage == $requeteif)
{...etc...

Au moins tu saura où est l'erreur...
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
34
J'ai bien remplacer ce que tu m'as dis et voila ce que çà donne :

RequeteAffichage=
Est-il différent de :
RequeteIf=SELECT * FROM t1 WHERE upper('nom_com') LIKE upper('%%')gfds

je comprends pas ce que tu as voulu faire
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
voila,,, en fait, $requeteAffichage = "" donc, comment veux-tu que ton if soit fonctionnel?

Il faudrait que $requeteAffichage soit égal à qq chose... Donc le pb n'est pas sur la partie que tu nous a fait voir, mais ailleur, la où tu indique la valeur que $requeteaffichage doit prendre.
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
34
Je te colle une partie de mon code formulaire car sinon çà serai trop lourd :

$NomCommerce = $_POST['nom'];

if(isset($_POST['rec']) && $ActiviteCommerce == "" && $NomRue == "")
{
$Proteger = mysql_escape_string ($NomCommerce);

$RequeteAffichage = "SELECT *
FROM t1
WHERE upper(nom_com) LIKE upper(concat('%','$Proteger','%'))";

$RechercherCommerce = mysql_query($RequeteAffichage) or die(mysql_error());

if ($NombreTrouve = mysql_num_rows($RechercherCommerce) >= 1 && $NomCommerce != "")
{
if (mysql_num_rows($RechercherCommerce) == 1)
{
echo("<br><center> <span class='red b'>");echo(mysql_num_rows($RechercherCommerce));echo("</span> résultat correspondant à votre demande a été trouvé</center><br>
<b> Le commerce correspondant à votre demande : </b> <br><br>
");
}
if (mysql_num_rows($RechercherCommerce) > 1)
{
echo("<br><center> <span class='red b'>");echo(mysql_num_rows($RechercherCommerce));echo("</span> résultats correspondants à votre demande ont été trouvé</center><br>
<br><b> Les commerces correspondants à votre demande : </b> <br><br>
");
}
while ($Donnees = mysql_fetch_array($RechercherCommerce))
{
if (mysql_num_rows($RechercherCommerce) == 1)
{
echo ("
<div class=' pps '>
<img id=fl src=img/commerces/".$Donnees['id'].".jpg border=0 >
<span id= fr class=gris>ID<sup> ".$Donnees['id']."</sup></span>
<b>Nom du commerce : </b>".$Donnees['nom_com']."<br>
<b>Adresse : </b>".$Donnees['adresse']."<br>
<b>Activité : </b>".$Donnees['activite']."<br>
<b>Téléphone : </b>".$Donnees['tel']."<br>
<b>Email : </b>".$Donnees['mail']."<br>
<b>Site internet : </b><a href=".$Donnees['site']."target=_blank>".$Donnees['site']."</a><br>
<b>Horaires d'ouverture : </b>".$Donnees['horaire']."<br>
<center><a href = zoom_cv.php> Localisation </a></center></div><br>
");
}
else if (mysql_num_rows($RechercherCommerce) > 1)
{
echo ("
<div class=' pps '>
<img id=fl src=img/commerces/".$Donnees['id'].".jpg border=0 >
<span id= fr class=gris>ID<sup> ".$Donnees['id']."</sup></span>
<b>Nom du commerce : </b>".$Donnees['nom_com']."<br>
<b>Adresse : </b>".$Donnees['adresse']."<br>
<b>Activité : </b>".$Donnees['activite']."<br>
<b>Téléphone : </b>".$Donnees['tel']."<br>
<b>Email : </b>".$Donnees['mail']."<br>
<b>Site internet : </b><a href=".$Donnees['site']."target=_blank>".$Donnees['site']."</a><br>
<b>Horaires d'ouverture : </b>".$Donnees['horaire']."<br>
<center><a href = zoom_cv.php> Localisation </a></center></div><br>
");
}
}
}
}
if (isset($_POST['rec']) && $NombreTrouve == 0 && $NomCommerce != "")
echo ("<br><center><b>Le commerce <span class='red b'>".$_POST['nom']."</span> ne fait pas partie de la base de la données</b></center><br>");
else if ($NombreTrouve == 0)
echo ("");

// Pour afficher les infos par rapport à ce qui est rentré dans le champ activité
$ActiviteCommerce = $_POST['act'];
if(isset($_POST['rec']) && $NomCommerce == "" && $NomRue == "")
{
$Proteger = mysql_escape_string ($ActiviteCommerce);

$RequeteAffichage = "SELECT *
FROM t1
WHERE upper(activite) LIKE upper(concat('%','$Proteger','%'))";

$RechercherCommerce = mysql_query($RequeteAffichage) or die(mysql_error());

if ($NombreTrouve = mysql_num_rows($RechercherCommerce) >= 1 && $ActiviteCommerce != "")
{
if ($NombreTrouve == 1)
{
echo("<br><center> <span class='red b'>");echo(mysql_num_rows($RechercherCommerce));echo("</span> résultat correspondant à votre demande a été trouvé</center><br>
<br><b> Le commerce correspondant à votre demande : </b> <br><br>
");
}
else if ($NombreTrouve > 1)
{
echo("<center> <span class='red b'>");echo(mysql_num_rows($RechercherCommerce));echo("</span> résultats correspondants à votre demande ont été trouvé</center><br>
<b> Les commerces correspondants à votre demande : </b> <br><br>
");
}
while ($Donnees = mysql_fetch_array($RechercherCommerce))
{
if (mysql_num_rows($RechercherCommerce) == 1)
{
echo ("
<div class=' pps '>
<img id=fl src=img/commerces/".$Donnees['id'].".jpg border=0 >
<span id= fr class=gris>ID<sup> ".$Donnees['id']."</sup></span>
<b>Nom du commerce : </b>".$Donnees['nom_com']."<br>
<b>Adresse : </b>".$Donnees['adresse']."<br>
<b>Activité : </b>".$Donnees['activite']."<br>
<b>Téléphone : </b>".$Donnees['tel']."<br>
<b>Email : </b>".$Donnees['mail']."<br>
<b>Site internet : </b><a href=".$Donnees['site']."target=_blank>".$Donnees['site']."</a><br>
<b>Horaires d'ouverture : </b>".$Donnees['horaire']."<br>
<center><a href = zoom_cv.php> Localisation </a></center></div><br>
");
}
else if (mysql_num_rows($RechercherCommerce) > 1)
{
echo ("
<div class=' pps '>
<img id=fl src=img/commerces/".$Donnees['id'].".jpg border=0 >
<span id= fr class=gris>ID<sup> ".$Donnees['id']."</sup></span>
<b>Nom du commerce : </b>".$Donnees['nom_com']."<br>
<b>Adresse : </b>".$Donnees['adresse']."<br>
<b>Activité : </b>".$Donnees['activite']."<br>
<b>Téléphone : </b>".$Donnees['tel']."<br>
<b>Email : </b>".$Donnees['mail']."<br>
<b>Site internet : </b><a href=".$Donnees['site']."target=_blank>".$Donnees['site']."</a><br>
<b>Horaires d'ouverture : </b>".$Donnees['horaire']."<br>
<center><a href = zoom_cv.php> Localisation </a></center></div><br>
");
}
}
}
}
if (isset($_POST['rec']) && $NombreTrouve == 0 && $ActiviteCommerce != "")
echo("<br><center><b>Aucun commerce de la ville n'a pour activité : <span class='red b'>$ActiviteCommerce</b></span></center><br>");
else if ($NombreTrouve == 0)
echo ("");
Messages postés
638
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
34
résolu :

<?php

$t= $_GET['pw']; ;
include ('connection.php') ;
if ( $t) {
$requete = "SELECT * FROM t1 where id='".$t."' ";
$show2 = mysql_query($requete) or die ("Echec de requète SQL");
while ($data = mysql_fetch_array($show2) )

echo" <script > function jumpScroll() {
window.scroll(".$data['gauche']."-50 ,".$data['top']. "-50 ); // horizontal and vertical scroll targets
} </script > ";

}
else {
$requete = 'SELECT * FROM t1 where zone="cv" '; }
$show1 = mysql_query($requete) or die ("Echec de requète SQL");

while ($row = mysql_fetch_array($show1) )

{ if($row['dispo'] == 'non')
{
$com=$row['nom_com'];
$ad=$row['adresse'];
$ac=$row['activite'];
}
}
?>