Afficher une zone d'une carte

Résolu
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   -  
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   - 28 juin 2010 à 15:04
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



A voir également:

10 réponses

louloute300 Messages postés 335 Date d'inscription   Statut Membre Dernière intervention   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
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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
0
louloute300 Messages postés 335 Date d'inscription   Statut Membre Dernière intervention   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...
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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
}
}
0
louloute300 Messages postés 335 Date d'inscription   Statut Membre Dernière intervention   29
 
Bon je m'en occupe...
0
louloute300 Messages postés 335 Date d'inscription   Statut Membre Dernière intervention   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...
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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>";
}
}
0
louloute300 Messages postés 335 Date d'inscription   Statut Membre Dernière intervention   29
 
rajoute avant le code global $requete;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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ù?
0
louloute300 Messages postés 335 Date d'inscription   Statut Membre Dernière intervention   29
 
met "global $...." juste avant la première utilisation de $requete dans chaque onglet...
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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>";
}
}
0
louloute300 Messages postés 335 Date d'inscription   Statut Membre Dernière intervention   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."%')"
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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
0
louloute300 Messages postés 335 Date d'inscription   Statut Membre Dernière intervention   29
 
Les apostrophes autour de nom_com sont des Alt Gr + 7 ?
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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.
0
louloute300 Messages postés 335 Date d'inscription   Statut Membre Dernière intervention   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...
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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
0
louloute300 Messages postés 335 Date d'inscription   Statut Membre Dernière intervention   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.
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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 ("");
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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'];
}
}
?>
0