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 :

Mettre "Not Used" si valeur n'existe pas


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 446
    Points : 112
    Points
    112
    Par défaut Mettre "Not Used" si valeur n'existe pas
    Bonjour,

    Suite à une requête MySQL, je recupère des valeurs formatées comme suit; "toto;tutu;titi".

    Pour les afficher dans un tableau, j'utilise la fonction explode.

    Mon problème est que pour certaines de mes requêtes, je n'ai pas de valeurs. Je voudrais que si je n'ai pas de valeurs alors j'affiche dans mon tableau "Not Used".

    Merci par avance.

    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    <?php
    	while ($row2 = mysqli_fetch_array($Result)) {
    			$POS_061=explode(";", $row2['POS061']);
    			$POS_062=explode(";", $row2['POS062']);
    			$POS_063=explode(";", $row2['POS063']);
    			$POS_064=explode(";", $row2['POS064']);
    			$POS_071=explode(";", $row2['POS071']);
    			$POS_072=explode(";", $row2['POS072']);
    			$POS_073=explode(";", $row2['POS073']);
    			$POS_074=explode(";", $row2['POS074']);
    			$POS_081=explode(";", $row2['POS081']);
    			$POS_082=explode(";", $row2['POS082']);
    			$POS_083=explode(";", $row2['POS083']);
    			$POS_084=explode(";", $row2['POS084']);
    		echo '<tr>
    				<td>MV3A (POS_061)</td>
    				<td>'.$POS_061[0].'</td>
    				<td>'.$POS_061[1].'</td>
    				<td>'.$POS_061[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV4A (POS_062)</td>
    				<td>'.$POS_062[0].'</td>
    				<td>'.$POS_062[1].'</td>
    				<td>'.$POS_062[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV2A (POS_063)</td>
    				<td>'.$POS_063[0].'</td>
    				<td>'.$POS_063[1].'</td>
    				<td>'.$POS_063[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV1A (POS_064)</td>
    				<td>'.$POS_064[0].'</td>
    				<td>'.$POS_064[1].'</td>
    				<td>'.$POS_064[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV3B (POS_071)</td>
    				<td>'.$POS_071[0].'</td>
    				<td>'.$POS_071[1].'</td>
    				<td>'.$POS_071[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV4B (POS_072)</td>
    				<td>'.$POS_072[0].'</td>
    				<td>'.$POS_072[1].'</td>
    				<td>'.$POS_072[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV2B (POS_073)</td>
    				<td>'.$POS_073[0].'</td>
    				<td>'.$POS_073[1].'</td>
    				<td>'.$POS_073[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV1B (POS_074)</td>
    				<td>'.$POS_074[0].'</td>
    				<td>'.$POS_074[1].'</td>
    				<td>'.$POS_074[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV6 (POS_081)</td>
    				<td>'.$POS_081[0].'</td>
    				<td>'.$POS_081[1].'</td>
    				<td>'.$POS_081[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV8 (POS_082)</td>
    				<td>'.$POS_082[0].'</td>
    				<td>'.$POS_082[1].'</td>
    				<td>'.$POS_082[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV5 (POS_083)</td>
    				<td>'.$POS_083[0].'</td>
    				<td>'.$POS_083[1].'</td>
    				<td>'.$POS_083[2].'</td>				
    			  </tr>
    			  <tr>
    				<td>MV7 (POS_084)</td>
    				<td>'.$POS_084[0].'</td>
    				<td>'.$POS_084[1].'</td>
    				<td>'.$POS_084[2].'</td>				
    			  </tr>';
    												 }
    	?>

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    pas facile.

    Pour l'ensemble de tes valeurs possibles, tu dois avoir une table qui les contient toutes (et éventuellement une référence de clé étrangère)

    apres c'est assez simple

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select  * from table_reférence   where cle_utilisable not in (select distinct clé_etrangere from table_data );

  3. #3
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 446
    Points : 112
    Points
    112
    Par défaut
    Oui pas facile, je suis sur que pour les champs POS061 à POS074 je n'aurai pas de valeur nulles, donc pas de soucis avec la fonction explode.

    Car je lis toutes les colonnes est donc pour certaines lignes je peux avoir pour les champs POS081 à POS084 avec des valeurs nulles.

    Je fais la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Query = "SELECT * FROM composant WHERE IDENTETE = '".$HeaderID."'";

  4. #4
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    mais du coup ta problematique c'est de traiter quand toto;tutu;titi n'existe pas dans la table

    oubien c'est d'afficher toto -- not used -- tata pour la valeur toto;;tata ?

  5. #5
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 446
    Points : 112
    Points
    112
    Par défaut
    Du coup, pour m'éviter un tas d'erreur, je contrôle chaque entrée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    If (empty($row2['POS061'])){
    			$POS_061="No data;No data;No data";}
    			else{$POS_061=$row2['POS061'];}
     
    			$POS_061=explode(";", $POS_061);
    			echo '<tr>
    					<td>Pos061</td>
    					<td>'.$POS_061[0].'</td>
    					<td>'.$POS_061[1].'</td>
    					<td>'.$POS_061[2].'</td>		
    				</tr>';
    Etc...

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

Discussions similaires

  1. Pourquoi ai-je une erreur lors d'une recherche si la valeur n'existe pas ?
    Par blackndoor dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/03/2009, 11h22
  2. Réponses: 4
    Dernier message: 24/08/2006, 12h19
  3. Réponses: 3
    Dernier message: 09/05/2006, 17h21

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