peut on faire une boucle dans une requete sql ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : peut on faire une boucle dans une requete sql ?

Re: peut on faire une boucle dans une requete sql ?

par moogli » 26 juin 2013, 22:51

salut,


a ta place je ferais une fonction ou une procédure stockée pour cela ;)

sinon tu boucle sur ton tableau et fait une requête par élément (requête préparée ;) ).

@+

Re: peut on faire une boucle dans une requete sql ?

par schim59 » 26 juin 2013, 20:33

oui
en postgre c'est possible en tout cas

peut on faire une boucle dans une requete sql ?

par wwwbillgates » 26 juin 2013, 18:22

Bonjour, je souhaiterais optimiser ma requete suivante en créant une boucle directement dans ma requête si cela est possible :
$array_tracking = explode('[sep]', $revendeurs['recherche_tracking']);
$totalcommande_en_cours_sql = $bdd->query("
							SELECT id
							FROM cadeauxplaisir_commandes
							WHERE tracking_url LIKE '%" . $array_tracking[0] . "%'
							AND YEAR(date_paiement) = " . $annee_en_cours . "
							AND MONTH(date_paiement) = " . $mois_en_cours . "
							AND paiement != 0
							OR tracking_url LIKE '%" . $array_tracking[1] . "%'
							AND YEAR(date_paiement) = " . $annee_en_cours . "
							AND MONTH(date_paiement) = " . $mois_en_cours . "
							AND paiement != 0
							OR tracking_url LIKE '%" . $array_tracking[2] . "%'
							AND YEAR(date_paiement) = " . $annee_en_cours . "
							AND MONTH(date_paiement) = " . $mois_en_cours . "
							AND paiement != 0
							OR tracking_url LIKE '%" . $array_tracking[3] . "%'
							AND YEAR(date_paiement) = " . $annee_en_cours . "
							AND MONTH(date_paiement) = " . $mois_en_cours . "
							AND paiement != 0
							OR tracking_url LIKE '%" . $array_tracking[4] . "%'
							AND YEAR(date_paiement) = " . $annee_en_cours . "
							AND MONTH(date_paiement) = " . $mois_en_cours . "
							AND paiement != 0
							");
$totalcommande_en_cours_sql->setFetchMode(PDO::FETCH_ASSOC);
$totalcommande_en_cours_sql->execute();
$nb_de_commandes_en_cours = $totalcommande_en_cours_sql->rowCount();
En sachant que certain résultat de mon $array_tracking peuvent etre vide car le nombre d'entrés peut etre différent et créé donc des erreurs si celles-ci sont vides.
Merci pour votre aide.