[RESOLU] Boucle pour envoyer plusieurs sms via api sms OVH

Eléphanteau du PHP | 39 Messages

24 mars 2014, 17:31

Bonjour,

j'ai un souci pour faire une boucle avec telephonySmsUserSend, j'aimerai envoyé un sms spécifique par personne via une requête dans la base de données.
Si je commente la ligne $result la boucle est bien complète, dès que je décommente: la boucle s’arrête au premier sms envoyé.
while ($row = mysql_fetch_array($result)) {
        if (!empty($row['portable'])) {
            $message = utf8_encode($_POST['texte']);
            try {
                $soap = new SoapClient("https://www.ovh.com/soapi/soapi-re-1.63.wsdl");
                $result = $soap->telephonySmsUserSend("$utilisateur", "$pass", "$sms_compte", "$from", "$to", "$message", "", "", "", "", "", "", true);
                echo "<hr>Message envoy&eacute";
                //print_r($result); // your code here ...
            } 
            catch(SoapFault $fault) {
                echo "erreur:".$fault;
            }
        };        
 } 
merci par avance.

Mammouth du PHP | 504 Messages

24 mars 2014, 17:43

HEllo,

Ton while sinifie que tant qu'il y a des resultats données par ta requete, on stocke dans un tableau les resultats ligne par ligne.

1/ as tu vérifier qu'il a plus de 1 résultats donné par ta requete sql?

2/ j'optimiserai ma requete en ne selectionnant que les données avec le champ portable rempli. Cette condition if (!empty($row['portable'])) me parait superflu.

3/ Change le nom de ta variable: $result = $soap->telephonySmsUserSend .. Tu as le meme nom que là: mysql_fetch_array($result). Surement, un bug là.

Eléphanteau du PHP | 39 Messages

24 mars 2014, 17:52

merci de ton retour
1/ oui si je décommente j'ai bien plusieurs résultats qui s'affichent
2/ en faite la requete sql fait déjà celà, effectivement je l'avais un peu laissé en doublon au cas ou ! ^^
3/ je n'avais pas vu ca.... je me penche la dessus et reviens vers toi.

merci encore

Eléphanteau du PHP | 39 Messages

24 mars 2014, 17:57

HEllo,

Ton while sinifie que tant qu'il y a des resultats données par ta requete, on stocke dans un tableau les resultats ligne par ligne.

1/ as tu vérifier qu'il a plus de 1 résultats donné par ta requete sql?

2/ j'optimiserai ma requete en ne selectionnant que les données avec le champ portable rempli. Cette condition if (!empty($row['portable'])) me parait superflu.

3/ Change le nom de ta variable: $result = $soap->telephonySmsUserSend .. Tu as le meme nom que là: mysql_fetch_array($result). Surement, un bug là.
merci beaucoup Damien c'était effectivement ce problème de variable, c'était bête mais j'ai pas vu, tu m'enlèves une sacré épine du pied...