Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 29/05/2007, 10h58   #1
Membre à l'essai
 
Inscription : août 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 67
Points : 21
Points : 21
Par défaut [PostGreSQL] Comment faire une vraie affectation de variable

Bonjour,

voilà j'ai besoin pour une raison pratique de faire une "vrai" affectation et non juste une redirection.

Code :
1
2
3
 
$reponse = pg_exec($SQL);
$reponse2 = $reponse;
j'ai besoin que $reponse2 est exactement le même résulat SQL que $reponse. Pour 2 boucles distinct par leur effets mais pas leur ordre.

seulement l'affectation $reponse2 = $reponse; n'est pas absolu mais seulement relatif (peut etre pas les bon terme)

$reponse est un pointeur sur "$SQL"
$reponse2 est un pointeur sur $reponse

du coup dans ma 2eme boucle il ne se passe rien puisque la premiere avec les pg_fetch_array($reponse) ont vidé $SQL


Comment faire une vrai copie svp ?

Merci
bossLINDROS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 11h02   #2
Membre régulier
 
Avatar de NiHiL
 
Inscription : juin 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 102
Points : 88
Points : 88
Tu veux une référence en clair pas une affectation :

Code php :
1
2
$reponse = pg_exec($SQL);
$reponse2 = &$reponse;

http://fr.php.net/manual/fr/language...ces.whatdo.php
NiHiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 11h21   #3
Membre à l'essai
 
Inscription : août 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 67
Points : 21
Points : 21
oui effectivement.

seulement cela ne semble pas marcher non plus


ma premiere boucle marche impec, par contre la 2eme qui utilise $reponse2 ne fait rien.

Code :
1
2
3
4
5
 
while ($donnees = pg_fetch_array($reponse2))
{
...
}
je sort directement de la bouche (j'ai mi des echo de test).



Ce que je voudrais c'est faire l'exécution de la requete une seul fois et me servire du résultat 2 fois
bossLINDROS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 11h24   #4
Membre régulier
 
Avatar de NiHiL
 
Inscription : juin 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 102
Points : 88
Points : 88
Normal que tu sorte directement de ta deuxième boucle car t'es arrivé a la fin de la ressource SQL dans ta première boucle.

Le mieux pour toi c'est de refaire la query de la même requête devant chaque boucle.
NiHiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 11h30   #5
Membre à l'essai
 
Inscription : août 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 67
Points : 21
Points : 21
Citation:
Envoyé par NiHiL
Normal que tu sorte directement de ta deuxième boucle car t'es arrivé a la fin de la ressource SQL dans ta première boucle.
C'est pour cela que je voudrais faire une copie "conforme" du résultat. Sans refaire l'exécution de la requete.

De façon à ce que la boucle1 utilise les résultats1 et la boucle2 les résultats2.

Mais ce n'est peut etre pas possible.
bossLINDROS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 11h33   #6
Membre régulier
 
Avatar de NiHiL
 
Inscription : juin 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 102
Points : 88
Points : 88
A priori non, le passage de ressource doit se faire exclusivement par référence et non par affectation, le meilleur moyen reste :

Code :
1
2
$reponse = pg_exec($SQL);
$reponse2 = pg_exec($SQL);
NiHiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 11h35   #7
Membre à l'essai
 
Inscription : août 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 67
Points : 21
Points : 21
ok

merci bien pour ton aide et tes explications.
bossLINDROS est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h54.


 
 
 
 
Partenaires

Hébergement Web