preg_replace champs "VIDE"


webmaster06
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 24 Mar 2009

preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 17:33

Bonjour--

Je dois scanner des chaines de caractere provenant d'une base de donnée. Jusque la pas de probleme, en revanche certain champs ne sont pas remplis.
J'aimerais remplacer les champs vide par la chaine de caractere "VIDE"

je pensai à cela, mais .....

'affiliation' => $row_drop_item2 = preg_replace(' ', "VIDE", $row_drop_item['PR_URL_FR']),

cela ne fonctionne pas
pouvez vous me dire pourquoi ?
Merci à vous...


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 18:00

Hello,
Bienvenue sur WRI

je pense qu'en faisant ça tu vas remplacer tous les " " par VIDE

Tu ne peux pas faire un truc du genre :

Code: Tout sélectionner

if ($row_drop_item['PR_URL_FR']) {
'affiliation' => $row_drop_item2 = preg_replace(' ', "VIDE", $row_drop_item['PR_URL_FR'])
}
else
{  'affiliation' => $row_drop_item2 = 'VIDE' ;}


webmaster06
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 24 Mar 2009

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 18:10

merci pour le bienvenue--


je suis dans un while qui n'aime pas des tonnes les if .....

while($row_drop_item = mysql_fetch_array($result_drop_item))
{
$items[] = array(
'id' => $row_drop_item['PR_ID'],
'nom' => $row_drop_item['PR_NAME_FR'],
'affiliation' => $row_drop_item = preg_replace(' ', "VIDE", $row_drop_item['PR_URL_FR']),
....


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 18:19

oui je comprends

Une autre idée alors ;-)

si $row_drop_item['PR_URL_FR'] fait référence à un champs msql pourquoi ne pas lui attribuer par défaut la valeur 'VIDE' ?

Sinon ça m'intéresse aussi si on peut faire ça avec le preg_replace (parce que du coup ça me chatouille)

tonguide
WRInaute passionné
WRInaute passionné
 
Messages: 1406
Inscription: 28 Nov 2003

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 18:29

Je ne comprend pas, si ta variable contient uniquement le champ vide ou rempli, pourquoi ne pas simplement contrôlé qu'elle soit vide ou non.

'affiliation' => $row_drop_item = empty(trim($row_drop_item['PR_URL_FR'])) ? 'VIDE' : $row_drop_item['PR_URL_FR'],


webmaster06
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 24 Mar 2009

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 18:52

parfois $row_drop_item['PR_URL_FR'] contient des URL qu'il faut afficher parfois, ce champs est vide. le fait d'être vide est super problématique pour la suite. c'est pour cette raison que j'aimerais mettre une chaine de caractère.

merci pour :
'affiliation' => $row_drop_item = empty(trim($row_drop_item['PR_AFFILIATION_URL_FR'])) ? 'VIDE' : $row_drop_item['PR_AFFILIATION_URL_FR'],

tu est certain de la synthaxe ?


webmaster06
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 24 Mar 2009

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 18:55

je pensais que nous pouvions remplacer un champs vide par une chaine de caractère avec la puissance de preg_replace ??


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 18:56

ça revient au même que mon if en fait mais en plus concis :-)

J'aurais appris quelque chose ;-)

tonguide
WRInaute passionné
WRInaute passionné
 
Messages: 1406
Inscription: 28 Nov 2003

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 19:06

webmaster06 a écrit:je pensais que nous pouvions remplacer un champs vide par une chaine de caractère avec la puissance de preg_replace ??

Disons que dans ton cas précis, preg_replace n'est pas utile, autant directement contrôlé la chaîne, si c'est uniquement pour savoir si c'est vide ou non.

Et oui, sauf petite bourde, la syntaxe est la bonne.

Désolé, j'avais pas vu ton intervention druart, ceci étant, comme elle était dans un tableau, ta syntaxe ne marchait pas en soit. (il aurait fallu faire le "if" avant le tableau, puis insérer le résultat via la variable dans le tableau).


webmaster06
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 24 Mar 2009

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 19:16

Si non, via le SQL, il n'y a rien a faire ???...


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 20:35

@tonguide mais non tu n'as pas à être désolé au contraire j'ai appris quelque chose grâce à toi, et tu as raison pour l'histoire du tableau, personnellement moi je traiterais le cas avant de cette façon

@webmaster06 et bien ça faisait partie d'une possibilité de définir ce champ avec une valeur par Défaut = "VIDE"
dans ce cas soit ce champ est rempli avec une valeur insérée soit il contient la valeur "VIDE"
non ?


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19595
Inscription: 8 Aoû 2004

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 21:46

webmaster06 a écrit:je pensais que nous pouvions remplacer un champs vide par une chaine de caractère avec la puissance de preg_replace ??
oui, mais là tu ne l'utilisais que de façon basique.
Un champ vide avec les regex, se note
Code: Tout sélectionner
^$


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: preg_replace champs "VIDE"

Message le Mar Mar 24, 2009 21:51

tu veux dire que :

Code: Tout sélectionner
preg_replace('^$', "VIDE", $row_drop_item['PR_URL_FR'])


ça fonctionne ? 8O


webmaster06
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 24 Mar 2009

Re: preg_replace champs "VIDE" -- Résolue --

Message le Mer Mar 25, 2009 1:05

Bingo !!

Je reste 8O par cette solution. En effet, cela Fonctionne.
Bravo ... Et merci c'est simple est élégant.


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: preg_replace champs "VIDE"

Message le Mer Mar 25, 2009 7:15

Leonick m'a scotché :-)

Du coup je démarre la journée un peu moins bête ;-)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité