[PSQL] : pb avec requete imbriquee
Résolu/Fermé
lamia2
Messages postés
8
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
17 août 2005
-
12 août 2005 à 16:33
Fille64 - 29 mai 2008 à 22:11
Fille64 - 29 mai 2008 à 22:11
9 réponses
vince75
Messages postés
5
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
16 août 2005
5
16 août 2005 à 17:13
16 août 2005 à 17:13
Bonjour
Kristoff n'est pas très constructif.
J'imagine qu'on cherche le point (le pieton ?) le plus proche de "pieton2". La sous-requête nous renvoit donc la plus petite "distance" entre pieton2 et un autre point présent dans matable. On cherche ensuite quels sont les enregistrements qui correspondent à cette "distance"
Essaye de ré-écrire ta requête comme ça :
SELECT a.libelle FROM matable b, matable a
WHERE b.libelle='pieton2'
AND Distance(b.the_geom,a.the_geom)=
(
SELECT Min(Distance (d.the_geom,c.the_geom)) FROM matable d, matable c
WHERE d.libelle='pieton2' AND c.libelle!='pieton2') ;
Par curiosité, à quoi servira cette requête ?
Kristoff n'est pas très constructif.
J'imagine qu'on cherche le point (le pieton ?) le plus proche de "pieton2". La sous-requête nous renvoit donc la plus petite "distance" entre pieton2 et un autre point présent dans matable. On cherche ensuite quels sont les enregistrements qui correspondent à cette "distance"
Essaye de ré-écrire ta requête comme ça :
SELECT a.libelle FROM matable b, matable a
WHERE b.libelle='pieton2'
AND Distance(b.the_geom,a.the_geom)=
(
SELECT Min(Distance (d.the_geom,c.the_geom)) FROM matable d, matable c
WHERE d.libelle='pieton2' AND c.libelle!='pieton2') ;
Par curiosité, à quoi servira cette requête ?
Heu... excuse moi, mais, tu débute en SQL ? non ?
Elle ne veut rien dire cette requete !
En plus, je pense que tu cherche tres compliqué. Il y a surement plus simple pour obtenir le résultat.
Elle ne veut rien dire cette requete !
En plus, je pense que tu cherche tres compliqué. Il y a surement plus simple pour obtenir le résultat.
lamia2
Messages postés
8
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
17 août 2005
16 août 2005 à 11:48
16 août 2005 à 11:48
Bonjour Kristoff
Oui, je débute en SQL... mais j'ai tout de même quelques rudiments.
Cette requête fait partie des exemples donnés dans un tutorial PostgreSQL & PostGIS de Jean David TECHER. Elle permet de selectionner l'objet le plus proche géographiquement d'un autre.
Oui, je débute en SQL... mais j'ai tout de même quelques rudiments.
Cette requête fait partie des exemples donnés dans un tutorial PostgreSQL & PostGIS de Jean David TECHER. Elle permet de selectionner l'objet le plus proche géographiquement d'un autre.
lamia2
Messages postés
8
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
17 août 2005
17 août 2005 à 14:10
17 août 2005 à 14:10
Bonjour,
MERCI pour ta réponse.
J'ai corrigé ma requête selon ta proposition et cela fonctionne. J'obtiens bien le résultat que je recherchais. C'est-à-dire quel est, dans ma BdD qui contient des données géoréférencées, le point le plus proche (ou le plus éloigné) de "pieton2".
Tu m'as demandé à quoi pourrait servir cette requête.
Elle servira à interroger une BdD où seront stockées toutes les cartes géographiques disponibles au format papier dans notre cartothèque.
Elle permettra aux utilisateurs d'effectuer une recherche du type : quelle est la carte disponible en cartothèque dont les coordonnées sont proches de telle commune ou de telle autre carte, par exemple.
MERCI pour ta réponse.
J'ai corrigé ma requête selon ta proposition et cela fonctionne. J'obtiens bien le résultat que je recherchais. C'est-à-dire quel est, dans ma BdD qui contient des données géoréférencées, le point le plus proche (ou le plus éloigné) de "pieton2".
Tu m'as demandé à quoi pourrait servir cette requête.
Elle servira à interroger une BdD où seront stockées toutes les cartes géographiques disponibles au format papier dans notre cartothèque.
Elle permettra aux utilisateurs d'effectuer une recherche du type : quelle est la carte disponible en cartothèque dont les coordonnées sont proches de telle commune ou de telle autre carte, par exemple.
Bonjour, j'ai fai un formulaire, j'utilise mysqsl comme base de donne, lorsque j'ai fini de rentrer tout les information dans le formulaire, les information saisie ne rentre pas dans la base de donnée il marque "erreur avec la requete d'ajout)
le probléme de se trouver sur se code de langage ou sur ma base de donnée mais je ne trouve pas...
<html>
<head>
<body background="images/fond.jpg">
<i><h1><font color="black" face="book antiqua" size="4">
<div align="center">
<?
include ("connex.php");
$pseudo=$_GET['pseudo'];
$motpass=$_GET['motpass'];
$civilité=$_GET['civilité'];
$nom=$_GET['nom'];
$prenom=$_GET['prenom'];
$fonction=$_GET['fonction'];
$pays=$_GET['pays'];
$adresse=$_GET['adresse'];
$ville=$_GET['ville'];
$cp=$_GET['cp'];
$tel=$_GET['tel'];
$port=$_GET['port'];
$email=$_GET['email'];
$sql = "INSERT INTO adherant values (
'',
'$pseudo',
'$motpass',
'$nom',
'$prenom',
'$fonction',
'$pays',
'$adresse',
'$ville',
'$cp',
'$tel',
'$port',
'$email')";
echo "$sql";
$resultat = mysql_query($sql) or die ("Erreur avec la requête d'ajout");
echo "Vous avez bien été ajouté à la base de données";
?>
<br><br><br>
<a href="ajout.htm" style="color:#000080">Retour</a>
</h1></i>
</div>
</body>
</head>
</html>
le probléme de se trouver sur se code de langage ou sur ma base de donnée mais je ne trouve pas...
<html>
<head>
<body background="images/fond.jpg">
<i><h1><font color="black" face="book antiqua" size="4">
<div align="center">
<?
include ("connex.php");
$pseudo=$_GET['pseudo'];
$motpass=$_GET['motpass'];
$civilité=$_GET['civilité'];
$nom=$_GET['nom'];
$prenom=$_GET['prenom'];
$fonction=$_GET['fonction'];
$pays=$_GET['pays'];
$adresse=$_GET['adresse'];
$ville=$_GET['ville'];
$cp=$_GET['cp'];
$tel=$_GET['tel'];
$port=$_GET['port'];
$email=$_GET['email'];
$sql = "INSERT INTO adherant values (
'',
'$pseudo',
'$motpass',
'$nom',
'$prenom',
'$fonction',
'$pays',
'$adresse',
'$ville',
'$cp',
'$tel',
'$port',
'$email')";
echo "$sql";
$resultat = mysql_query($sql) or die ("Erreur avec la requête d'ajout");
echo "Vous avez bien été ajouté à la base de données";
?>
<br><br><br>
<a href="ajout.htm" style="color:#000080">Retour</a>
</h1></i>
</div>
</body>
</head>
</html>
Salut
Transformes tas requête en une requête du type :
INSERT INTO adherant (attribut1, attribut2,..., attribut n) VALUES('','$pseudo', etc..)
Vu que tu fais un auto-incrément je suis pas sûre qu'il sache où faire ton auto-incrément dans ta table. Du coup il se perd et rien n'est enregistré.
Essaies et dis moi ce qu'il en est
@+
Transformes tas requête en une requête du type :
INSERT INTO adherant (attribut1, attribut2,..., attribut n) VALUES('','$pseudo', etc..)
Vu que tu fais un auto-incrément je suis pas sûre qu'il sache où faire ton auto-incrément dans ta table. Du coup il se perd et rien n'est enregistré.
Essaies et dis moi ce qu'il en est
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sanfred
Messages postés
20
Date d'inscription
jeudi 8 mars 2007
Statut
Membre
Dernière intervention
12 janvier 2009
22 mai 2008 à 18:13
22 mai 2008 à 18:13
faut enlever le premier '' si c'est dans un champ auto-increment que tu veux insérer...
Non il le faut le '', c'est justement avec ca qu'il reconnait que c'est un auto-increment
J'ai fait un moteur de recherche sur une base de données pour mes études et on l'avait fait comme ca, sauf qu'en plus on avait spécifié les attributs de la table.
Il faut qu'il test... mais c'est certain que le '' il le faut ;)
J'ai fait un moteur de recherche sur une base de données pour mes études et on l'avait fait comme ca, sauf qu'en plus on avait spécifié les attributs de la table.
Il faut qu'il test... mais c'est certain que le '' il le faut ;)