IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

str_replace() ne marche pas comme prévu


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut str_replace() ne marche pas comme prévu
    Bonjour,

    J'ai un soucis avec l'insertion de dates en db via un formulaire. Des retours à la ligne s'ajoutent et je n'arrivent pas à m'en débarasser. Merci d'avance pour votre aide.

    Voici un exemple de champs de date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    <span> 						
    	<select class="validate[required]" name="jour_admin_evenement"
    	id="jour_admin_evenement" size="" onchange="" style="width: 75px;">						
    		<option value="1">1</option>
    	</select> 						
    	<select class="validate[required]" id="mois_admin_evenement"
    	name="mois_admin_evenement" size="" onchange="" style="width:75px;">
    		<option value="" selected="selected">Mois</option>
    		<?php 
    		for($m=1;$m<=12;$m++){?>
    			<option value="<?php if($m<10)echo "0".$m;else echo $m;?>"
    			<?php 
    			if (isset($mois_adm) && $mois_adm != "00" && $mois_adm == $m)
    				echo "selected=\"selected\"";
    			?>	
    			><?php if($m<10)echo "0".$m;else echo $m;								
    		}?>
    		</option>
    	</select> 						
    	<select class="validate[required]" id="annee_admin_evenement"
    	name="annee_admin_evenement" size="" onchange="" style="width: 75px;">
    		<option value="">Année</option>
    		<option value="<?php echo $datenm2; ?>"
    		<?php 
    		if (isset($annee_adm) && $annee_adm  == $datenm2)
    			echo "selected=\"selected\"";
    		?>
    		><?php echo $datenm2; ?></option>
    		<option value="<?php echo $datenm1; ?>"
    		<?php 
    		if (isset($annee_adm) && $annee_adm  == $datenm1)
    			echo "selected=\"selected\"";
    		?>
    		><?php echo $datenm1; ?></option>
    		<option value="<?php echo $date; ?>"
    		<?php 
    		if (isset($annee_adm) && $annee_adm  == $date)
    			echo "selected=\"selected\"";
    		?>
    		><?php echo $date; ?></option>
    		<option value="<?php echo $datenp1; ?>"
    		<?php 
    		if (isset($annee_adm) && $annee_adm  == $datenp1)
    			echo "selected=\"selected\"";
    		?>
    		><?php echo $datenp1; ?></option>
    		<option value="<?php echo $datenp2; ?>"
    		<?php 
    		if (isset($annee_adm) && $annee_adm  == $datenp2)
    			echo "selected=\"selected\"";
    		?>
    		><?php echo $datenp2; ?></option>
    		<option value="<?php echo $datenp3; ?>"
    		<?php 
    		if (isset($annee_adm) && $annee_adm  == $datenp3)
    			echo "selected=\"selected\"";
    		?>
    		><?php echo $datenp3; ?></option>
    		<option value="<?php echo $datenp4; ?>"
    		<?php 
    		if (isset($annee_adm) && $annee_adm  == $datenp4)
    			echo "selected=\"selected\"";
    		?>
    		><?php echo $datenp4; ?></option>
    		<option value="<?php echo $datenp5; ?>"
    		<?php 
    		if (isset($annee_adm) && $annee_adm  == $datenp5)
    			echo "selected=\"selected\"";
    		?>
    		><?php echo $datenp5; ?></option>
    	</select>				  
    </span>
    Voici la partie traitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $search = array("\r\n", "\n\r", ' ', "\t", "\n", "\r");
    $insert_date_admin = 	$annee_admin.'-'.$mois_admin.'-01';
    $insert_date_admin = 	str_replace($search, "", $insert_date_admin);
    lorsque je fais un printf() de ma variable j'ai:

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Je conseille d'utiliser l'objet Date et une requête préparée.

    A+.

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    Et simplement l'utilisation de trim() ? ca ne suffirait pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $insert_date_admin = 	trim($annee_admin).'-'.trim($mois_admin).'-01';
    Note au passage que ca serait plus sympa pour l'utilisateur d'avoir un datepicker en javascript plutôt que des listes déroulantes

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un peu plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <span> 						
    	<select class="validate[required]" name="jour_admin_evenement" id="jour_admin_evenement" size="" onchange="" style="width: 75px;">						
    		<option value="1">1</option>
    	</select> 						
    	<select class="validate[required]" id="mois_admin_evenement" name="mois_admin_evenement" size="" onchange="" style="width: 75px;">
    		<option value="" selected="selected">Mois</option>
    		<?php 
    		for ($m=1;$m<=12;$m++){
    			$selected = (isset($mois_adm) && $mois_adm != "00" && $mois_adm == $m) ? ' selected="selected" ': '';
    			echo '<option value="' . $m . '"' . $selected . '>' . sprintf('%02d', $m) . '</option>';
    		}
    		?>
    	</select> 						
    	<select class="validate[required]" id="annee_admin_evenement" name="annee_admin_evenement" size="" onchange="" style="width: 75px;">
    		<option value="">Année</option>
    	<?php 
    		$tblDates = array($datenm2, $datenm1, $date, $datenp1, $datenp2, $datenp3, $datenp4, $datenp5);
    		foreach ($tblDates as $var) {
    			$selected = (isset($annee_adm) && $annee_adm == $var) ? ' selected="selected" ': '';
    			echo '<option value="' . $var . '"' . $selected . '>' . $var . '</option>';
    		}
    	?>
    	</select>
    </span>
    Mais il faudrait travailler avec des tableaux parce que tes variables $datenp1, $datenp2, $datenp3, $datenp4, $datenp5 ce n'est pas sérieux.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par grunk Voir le message
    Et simplement l'utilisation de trim() ? ca ne suffirait pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $insert_date_admin = 	trim($annee_admin).'-'.trim($mois_admin).'-01';
    Note au passage que ca serait plus sympa pour l'utilisateur d'avoir un datepicker en javascript plutôt que des listes déroulantes
    merci je suis du même avis mais le datepicker l'utilisateur ne comprenait pas lol

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Je conseille d'utiliser l'objet Date et une requête préparée.

    A+.
    Merci du conseil, mais est-ce vraiment nécessaire pour une petite appli ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Un peu plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <span> 						
    	<select class="validate[required]" name="jour_admin_evenement" id="jour_admin_evenement" size="" onchange="" style="width: 75px;">						
    		<option value="1">1</option>
    	</select> 						
    	<select class="validate[required]" id="mois_admin_evenement" name="mois_admin_evenement" size="" onchange="" style="width: 75px;">
    		<option value="" selected="selected">Mois</option>
    		<?php 
    		for ($m=1;$m<=12;$m++){
    			$selected = (isset($mois_adm) && $mois_adm != "00" && $mois_adm == $m) ? ' selected="selected" ': '';
    			echo '<option value="' . $m . '"' . $selected . '>' . sprintf('%02d', $m) . '</option>';
    		}
    		?>
    	</select> 						
    	<select class="validate[required]" id="annee_admin_evenement" name="annee_admin_evenement" size="" onchange="" style="width: 75px;">
    		<option value="">Année</option>
    	<?php 
    		$tblDates = array($datenm2, $datenm1, $date, $datenp1, $datenp2, $datenp3, $datenp4, $datenp5);
    		foreach ($tblDates as $var) {
    			$selected = (isset($annee_adm) && $annee_adm == $var) ? ' selected="selected" ': '';
    			echo '<option value="' . $var . '"' . $selected . '>' . $var . '</option>';
    		}
    	?>
    	</select>
    </span>
    Mais il faudrait travailler avec des tableaux parce que tes variables $datenp1, $datenp2, $datenp3, $datenp4, $datenp5 ce n'est pas sérieux.
    Merci du conseil, ça fonctionne parfaitement !

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par dmcissokho Voir le message
    Merci du conseil, mais est-ce vraiment nécessaire pour une petite appli ?
    C'est nécessaire pour une insertion dans une base de données.

    A+.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MERGE ne marche pas comme prévu
    Par r83 dans le forum SQL
    Réponses: 4
    Dernier message: 30/04/2012, 11h25
  2. [CS3] Insertion ne marche pas comme il faut
    Par info_sara dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 19/05/2008, 20h13
  3. [Bonne pratique] merge qui ne fonctionne pas comme prévu
    Par forex dans le forum Subversion
    Réponses: 1
    Dernier message: 19/05/2008, 04h28
  4. [Cookies] Session qui n'expire pas comme prévu
    Par zvince dans le forum Langage
    Réponses: 13
    Dernier message: 20/02/2008, 15h27
  5. Réponses: 5
    Dernier message: 21/12/2006, 19h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo