Double exécution d'une requête PDO
Posté : 06 févr. 2010, 14:44
Bonjour,
Je me demandais comment je pourrais réaliser une double exécution d'une requête PDO sans avoir a retaper ma requête entière.
Voici comment je faisais avec de simples requêtes QUERY.
Comment puis je faire la même chose en PDO ?
En PDO, j'ai essayé pas mal de truc pour ne pas avoir a dupliquer toute la requête, mais rien n'y fait !
Avez-vous compris ce que je tente de faire ?
Pouvez-vous m'aider?
Merci,
raph
Je me demandais comment je pourrais réaliser une double exécution d'une requête PDO sans avoir a retaper ma requête entière.
Voici comment je faisais avec de simples requêtes QUERY.
Comment puis je faire la même chose en PDO ?
// On exécute une première fois la reqête afin d'afficher les résultats pour l'affichage des miniatures d'images
$req="SELECT * FROM $CfgTableObjects INNER JOIN $CfgTableMain ON ($CfgTableObjects.gallery_id=$CfgTableMain.gallery_id)
WHERE $CfgTableObjects.gallery_id='$galid' AND $CfgTableObjects.object_type='photo'";
$res=mysql_query($req) or die(mysql_error());
while ($row = mysql_fetch_array ($res)) {
...
(UN PEU PLUS LOIN DANS LE MEME FICHIER)...
// Maintenant on va réexécuter la requête pour le watermak des images
if (isset ($_GET['intitle']) AND isset ($_GET['file'])) {
...
// CONDITION WATERMARK - START
// On effectue une duplication de la requete pour l'obtention de la condition watermark
// (nécessaire sinon cela rentre en conflit avec les miniatures et du coup la miniature n°1 disparait de la liste des images)
$res_wtmrk=mysql_query($req) or die(mysql_error());
// On va chercher le champ "watermark_active"
$row = mysql_fetch_array ($res_wtmrk);
...
Vous remarquerez donc que je ne duplique pas ma requête mais je la réexécute sous l'égide d'une autre variable ($res_wtmrk).En PDO, j'ai essayé pas mal de truc pour ne pas avoir a dupliquer toute la requête, mais rien n'y fait !
// On exécute la requete une première fois pour l'affichage des miniatures et autres modules
$req = $connexion->prepare ("SELECT * FROM $CfgTableObjects INNER JOIN $CfgTableMain ON ($CfgTableObjects.gallery_id=$CfgTableMain.gallery_id)
WHERE $CfgTableObjects.gallery_id=:galid AND $CfgTableObjects.object_type=:photo");
$req->execute(array (':galid' => $galid, ':photo' => 'photo'));
(UN PEU PLUS LOIN DANS LE MEME FICHIER) ...
// LA seule solution que j'ai trouvé est de dupliquer toute la requête !
// CONDITION WATERMARK - START
// On effectue une duplication de la requete pour l'obtention de la condition watermark
//$res_wtmrk = $req->execute(array (':galid' => $galid, ':photo' => 'photo'));
// Malheureusement je duplique tout
$req_wtmrk = $connexion->prepare ("SELECT * FROM $CfgTableObjects INNER JOIN $CfgTableMain ON ($CfgTableObjects.gallery_id=$CfgTableMain.gallery_id)
WHERE $CfgTableObjects.gallery_id=:galid AND $CfgTableObjects.object_type=:photo");
$req_wtmrk->execute(array (':galid' => $galid, ':photo' => 'photo'));
// On va chercher le champ "watermark_active"
$row = $req_wtmrk->fetch(PDO::FETCH_ASSOC);
...
Avez-vous compris ce que je tente de faire ?
Pouvez-vous m'aider?
Merci,
raph