Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/08/2003, 10h03   #1
Invité de passage
 
Inscription : juin 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 19
Points : 3
Points : 3
Par défaut reauete suite à une requete

Salut,

Je souhaite grace au resultat d'une requete, l'incorporer dans une seconde. Je croyais que $result était ce qui correspondait ! Mais ne marche pas !
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<? 
$result = pg_exec($conn, "SELECT no_commune FROM adresse_21 WHERE adresse='$adresse'"); 
IF (!$result) { 
    echo "Erreur durant la requete.\n"; 
    exit; 
} 
 
$query = "SELECT adresse FROM adresse_21 WHERE no_commune='$result'"; 
$result1 = pg_query($query) 
   OR die ("exécution de la requete impossible"); 
?> 
<TABLE border> 
   <tr><td><b>adresse</b></td></b> 
<? 
while ($ligne = pg_fetch_array($result1)) 
   echo "<tr><td>$ligne[0]</td></tr>";
Ou adresse est defini en amont = $adresse="rue de Moillebeau 45";

resultat du script : Warning: pg_query() query failed: ERROR: pg_atoi: error in "Resource id #2": can't parse "Resource id #2" in /home_hdb/htdocs/phpPgAdmin/test/listeform2.php on line 51
exécution de la requete impossible

On m'a proposé la solution de pg_fetch_asso mais ne marche pas avec ma version de PHP

Existe-t-il d'autres solutions
74160 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2003, 11h38   #2
Invité régulier
 
Inscription : juillet 2003
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : juillet 2003
Messages : 14
Points : 7
Points : 7
Je pense que tu peux essayer avec ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$result = pg_exec($conn, "SELECT no_commune FROM adresse_21 WHERE adresse='$adresse'");
$resultat = pg_fetch_rows($result);
IF (empty($resultat[0])) { 
    echo "l'adresse $adresse n'est pas dans la base.\n"; 
    exit; 
} 
 
$query = "SELECT adresse FROM adresse_21 WHERE no_commune='".$resultat[0]."'";
$result1 = pg_query($query)
   OR die ("exécution de la requete impossible");
?>
<TABLE border>
   <tr><td><b>adresse</b></td></b>
<?
while ($ligne = pg_fetch_array($result1))
   echo "<tr><td>$ligne[0]</td></tr>";
Chihuahua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2003, 11h59   #3
Invité de passage
 
Inscription : juin 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 19
Points : 3
Points : 3
Merci C'est cool il marche par contre attention pg_fetch_row est sans S !

Car j'étais en train de m'embeter a faire des If et Else et répéter mes requetes plusieurs fois ! Cela est quand même bcpplus simple !

Encore Merci
74160 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2003, 14h41   #4
Invité de passage
 
Inscription : juin 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 19
Points : 3
Points : 3
Autre Pb, le script précédent marche je demande un numero de commune tout va bien mais dans le suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
$result = pg_exec($conn, "SELECT AsText (the_geom) As the_geom FROM adresse_21 WHERE adresse='rue de Moillebeau 45';"); 
$resultat = pg_fetch_row($result); 
IF (empty($resultat[0])) { 
    echo "l'adresse $adresse n'est pas dans la base.\n"; 
    exit; 
} 
 
$query = "SELECT adresse FROM adresse_21 WHERE distance (the_geom, GeometryFromText('".$resultat[0]."', -1 ) ) < 1000"); 
$result1 = pg_query($query) 
   OR die ("exécution de la requete impossible"); 
?> 
<TABLE border> 
   <tr><td><b>adresse</b></td></b> 
<? 
while ($ligne = pg_fetch_array($result1)) 
   echo "<tr><td>$ligne[0]</td></tr>";
?>
Je demande dans un première requete de me fournir un élément spatial
resultat de ma requete sous psql :
SELECT AsText (the_geom) As the_geom FROM adresse_21 WHERE adresse='rue de Moillebeau 45';
the_geom
----------------------------
POINT(498984.32 119708.28)

Je voudrais que cet élément soit lu dans la seconde !
Mais ne marche pas :
Parse error: parse error in /home_hdb/htdocs/phpPgAdmin/test/listeform2.php on line 32

ligne 32 = $query = "SELECT adresse FROM adresse_21 WHERE distance (the_geom, GeometryFromText('".$resultat[0]."', -1 ) ) < 1000");

Avez-vous une idée ?
74160 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2003, 14h42   #5
Invité de passage
 
Inscription : avril 2002
Messages : 10
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2002
Messages : 10
Points : 4
Points : 4
Salut,

C'est une Parse Error :
Code :
Parse error: parse error IN /home_hdb/htdocs/phpPgAdmin/test/listeform2.php ON line 32
Il y a une parenthèse fermante de trop dans ta requête.

Sinon, pour ton premier post, il est plus interréssant de faire une jointure que de faire 2 requêtes :

Code :
1
2
3
4
SELECT AsText (the_geom) AS the_geom, adresse
FROM adresse_21
WHERE   adresse='rue de Moillebeau 45'
AND     distance (the_geom, GeometryFromText('".$resultat[0]."', -1 ) ) < 1000;
Rémi
remi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h31.


 
 
 
 
Partenaires

Hébergement Web