PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 26-02-2010 11:12:06

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

sprintf : nombre de paramètres inconnu

Voilà je me heurte à un soucis d'optimisation actuellement...
J'utilise la fonction sprintf pour renseigner des champs dans ma classe de requête MySQL.
Cependant le nombre de valeur est variable d'où mon souci...

Problème en image :

switch(count($params))
{
  case 1 : $req = sprintf($sql,$params[0]); break;
  case 2 : $req = sprintf($sql,$params[0],$params[1]); break;
...

Bref c'est pas jolie et une horreur pour la multiplicité des arguments...

Quelqu'un aurait-il une solution ?
Merci d'avance.

Hors ligne

#2 26-02-2010 11:27:08

dionysos
Membre
Lieu : Montpellier
Inscription : 18-02-2010
Messages : 24

Re : sprintf : nombre de paramètres inconnu

À la louche, j'essaierai un truc comme ça :

$nb=count($params)
$tmp="";
for($i=0,$i<$nb;$i++) {
  $tmp .=",$params[$i]";
}
$req = sprintf($sql$tmp);

Dernière modification par dionysos (26-02-2010 11:28:39)

Hors ligne

#3 26-02-2010 12:11:10

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : sprintf : nombre de paramètres inconnu

SAluton,
As-tu essayé de lui passer les arguments en array ?
Si ça ne passe pas, il y a un exemple de fonction utilisateur sprintfn dans la doc (la première contribution), elle utilise un tableau associatif, mais à toi de la détourner pour ce que tu veux faire.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#4 26-02-2010 13:42:05

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : sprintf : nombre de paramètres inconnu

Merci de ta réponse dionysos mais mon utilisation est bien plus compliquée que cela, les champs à remplacer peuvent se trouver "n'importe où" dans la requête.

Merci Kris, j'étais justement en train de la lire avant d'arriver ici. x)
Je suis en train de l'étudier pour voir comment ça se déroule et si cela correspond à ce que je souhaite.

Hors ligne

Pied de page des forums