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 :

Changer valeur d'un tableau en PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut Changer valeur d'un tableau en PHP
    Bonjour,

    J'ai un formulaire, et je veux stocker les valeurs du formulaire dans un tableau. Jusque là pas de soucis. Mais dans mon formulaire j'ai des champs que je ne remplis pas forcément, et qui se traduisent du coup par la chaine vide ( "" ). Comment faire pour modifier cette valeur dans mon tableau ?
    Mon tableau ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      $utilisateur=array(($_POST['identifiant']) => array("MDP"  => $_POST['mdp'],
    								  "Nom"    => $_POST['nom'],
    								  "Prenom" => $_POST['prenom'],
    								  "Telephone" => $_POST['telephone'],						  
    								  )
    			  );
    et ma boucle (qui ne marche pas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    foreach($utilisateur as $identifiant=>$champs)
    	{
    		foreach($champs as $champsFormulaire=>$valeur)
    		{
    			if ($valeur=="")
    			{
    				$champs[$champsForm]= 'Inexistant' ;
     
    			}
    		}
     
    	}
    Merci d'avance pour votre aide !

  2. #2
    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
    $champs n'est qu'une copie des valeurs de ton tableau, tu ne modifies pas $utilisateur.

    Mais fait la modification directement à la création plutôt que de relire le tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $mdp = empty($_POST['mdp']) ? 'Inexistant' : $_POST['mdp'];
    $nom= empty($_POST['nom']) ? 'Inexistant' : $_POST['nom'];
    ....
    $utilisateur=array(($_POST['identifiant']) => array("MDP"  => $mdp,
    								  "Nom"    => $nom,
    								  "Prenom" => $prenom,
    								  "Telephone" => $telephone,						  
    								  )
    			  );
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Merci beaucoup pour l'aide.
    Oui j'y avais pensé, seulement mon formulaire est amené à avoir pas mal de champs qui peuvent ne pas être remplis, donc ça ne parait pas trop approprié à mon problème ?
    Avec une boucle foreach, on ne peut pas directement modifier un élément du tableau ?

  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
    donc ça ne parait pas trop approprié à mon problème
    pourquoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Je vais devoir faire autant de tests que j'ai de variables...

  6. #6
    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
    Et tu as une tendinite ?
    Si tu as 20 champs dans ton formulaire il faut le revoir

    Sinon il y a les boucles aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $emptyfields = array('nom', 'prenom');
    foreach ($emptyfields as $fieldname) {
        $checked_post[$fieldname] = empty($_POST[$fieldname]) ? 'Inexistant' : $_POST[$fieldname];
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Sinon, à l'origine, ton code ne fonctionne pas parce que foreach travaille avec une copie du tableau. Il est possible de travailler directement avec les vraies valeurs du tableau en utilisant des références.
    PHP - Manual : foreach
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Une tendinite ? Non pas encore...

    Plus sérieusement, l'astuce ce Celira fait parfaitement son job. En tout cas c'est exactement ce que je voulais faire !

    Merci !

  9. #9
    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
    Je veux bien mais c'est du travail inutile de créer un tableau pour le relire et le modifier ensuite.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Tu veux dire que c'est moins couteux de faire tous les tests avant, modifier si besoin, et stocker ensuite dans le tableau les bonnes valeurs ?

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par St-42-FCM-57 Voir le message
    ... j'ai des champs que je ne remplis pas forcément, et qui se traduisent du coup par la chaine vide ( "" ).
    !
    En quoi est-ce un problème ??

    Et en quoi remplacer par une chaine 'inexistant' va simplifier ou améliorer quoi que ce soit ?
    D'autant qu'"inexistant" n'a rien d'une "bonne valeur"...

    Et si tu veux afficher "inexistant", tu le fais.... À l'affichage !
    Pas dans l'array. Ni en BDD.

  12. #12
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Oui je sais que "Inexistant" n'a rien d'une bonne valeur, mais on pourrait par exemple mettre la valeur "null". C'était juste à titre d'exemple.
    Et je veux mettre une valeur un peu plus explicte que "" pour des soucis de lisibilité de code. Je ne sais pas encore si je vais utiliser un base de donnée. Je crois qu'il est possible de stocker les informations dans un fichier et de les récupérer avec var_export, mais je n'ai pas assez creusé cette piste encore.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/01/2010, 15h39
  2. Réponses: 2
    Dernier message: 07/10/2009, 21h38
  3. Récuperation de certaines valeurs dans un tableau PHP
    Par ns_deux dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/05/2009, 22h06
  4. [MySQL] Comparer plusieurs valeur d'un tableau php
    Par worldhugo dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/04/2009, 16h26
  5. [debutant] changer valeur d'un tableau
    Par Emcy dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 29/11/2006, 08h31

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