Page 1 sur 1

Besoin d'aide pour un regex : recupérer le prix ou %

Posté : 26 janv. 2014, 12:29
par kairi084
Bonjour tout le monde !

je vous écris car j'ai un grand besoin d'aide qui me pénalise beaucoup !
Voila j'ai une liste de phrases diverses et variées et je dois récupérer dedans (si ça existe) le prix ou le poucentage de prix.

ci-joint un echantillon de phrases
  • - Livraison offerte et -10% supplémentaires sur l'offre VAGUE
    -5.2€ de réduction
    -promo: 50€ de réduction sur l'offre
    - Decouverte: 50 € de réduction sur les résidences
    - Code promo erouine
    - Fleur - 3 € de réduction ......
    - 2 euros sur la commande de fleurs

L'idée, c'est qu'il peut y avoir de tout "50€, 50 €, -10%, 10%, 5.2€, 5,3 euros ...."


Pour récupérer l'info j'ai fais :

Code : Tout sélectionner

foreach ($data->promo as $promo) { $titre = $promo->titre; /*le prix ou reduc est dans le titre*/ $reducFinal = $titre; preg_match_all('/(\d+(?:[\.,][\d]{2})?)\s*[€|%|euros]/', $reducFinal, $matches); print_r($matches[0]); $reducFinal = $matches[0]; }
et quand je lance mon script il m'affiche juste :

Code : Tout sélectionner

Array ( [0] => 10% ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( )
première question : Snif pourquoi il ne récupère qu'une promo ? =(

contente d'avoir au moins le 10% je fais mon insert en bdd, mais la il m'enregistre juste "array" =( ahhhhhhhhhhhhhhhhhhhh

Code : Tout sélectionner

$ajout = " INSERT INTO prix(`idcode` ,`marque`, `reduc` ) VALUES ('','$marque', '$reducFinal') ";
Vous l'aurez compris je suis nulle et novice =(

Depuis ce matin je m'arrache les cheveux sur ce script =(

Si quelqu'un à un moment de pitié pour m'aider à récupérer les prix et a enregistrer les infos en bdd

merci !!!!




un grand merci !!!

Re: Besoin d'aide pour un regex : recupérer le prix ou %

Posté : 27 janv. 2014, 15:17
par dogmongo
Bonjour,

souvent le résultat array est le résulta d'un tableau vide, tu devrais afficher ton tableau et ca va peu être t'indiquer ou est la boulette
ensuite le conseil que l'on m'a donné il n'y a pas longtemps et ca change la vie c'est de faire afficher les erreurs par ton serveur 8-)
var_dump($matches);

et pourquoi tu crée deux fois la même variable ?
$titre = $promo->titre;
$reducFinal = $titre;

Tu n'a qu'un résultat parce que tu lui demande que le premier $matches[0];