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

PHP & Base de données Discussion :

concatener 3 variables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut concatener 3 variables
    bonjour,

    j'ai un soucis pour concatener 3 variables, car j'aimerai que ma variable categorie change en fontion de la valeur ($donnees['TEC'])
    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if ($donnees['TEC']=="ABC" or "DEF"){
    	$categories ="peint par  :";
    }
    if ($donnees['TEC']=="GHI" or "JKL"){
    	 $categories ="decoré par  :";
    }
    if (date_debut est different de date fin de 2jours)
    	 $categories ="aménagé par  :";
    }
     
    echo '<td  style="background-color:'. ($values['colors']) . '">' . htmlspecialchars($values['produit']) .$categories. htmlspecialchars($values['tech']) .'</td>';
    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu as surtout un souci pour écrire des conditions !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    tu parles pour cette ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (date_debut est different de date fin de 2jours)
    	 $categories ="aménagé par  :";
    car je ne sais trop,
    je penserai plus a quelque chose comme ca ,mais j'ai un doute pour la gestion du nombre de jours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (date_debut!= date_fin  2day)
    	 $categories ="aménagé par  :";

  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
    Par défaut
    Comme dans beaucoup de langages :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($donnees['TEC']=="ABC" ||  $donnees['TEC']=="DEF"){
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    j'avais fais seulement le test en faisant cela, même si dans mon tableau j'ai un affichage GHI la variable a pris la valeur "peint par :" au lieu de "decoré par :"
    ce que je désire c'est que la variable prend la valeur en fonction de $données['TEC']

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if ($donnees['TEC']==="ABC"){
    	$categories ="peint par  :";
    }
    if ($donnees['TEC']==="GHI" ){
    	 $categories ="decoré par  :";
    }
    if (date_debut !=date_fin de 2day)
    	 $categories ="aménagé par  :";
    }
     
    echo '<td  style="background-color:'. ($values['colors']) . '">' . htmlspecialchars($values['produit']) .$categories. htmlspecialchars($values['tech']) .'</td>';

  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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if ($donnees['TEC']==="ABC"){
    	$categories ="peint par  :";
    }
    elseif ($donnees['TEC']==="GHI" ){
    	 $categories ="decoré par  :";
    }
    elseif ($date_debut != $date_fin)
    	 $categories ="aménagé par  :";
    }
    else {
           $categories ="non définie  :";
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    est il possible de faire une condition si la difference entre date_debut et date_ fin et de 4 jours , ou une autre condition si elle est de 2 jours?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if ($donnees['TEC']==="ABC"){
    	$categories ="peint par  :";
    }
    elseif ($donnees['TEC']==="GHI" ){
    	 $categories ="decoré par  :";
    }
    elseif ($date_debut != $date_fin <4day)
    	 $categories ="aménagé par  :";
    }
    else {
           $categories ="non définie  :";
    }

  8. #8
    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
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    j'ai un soucis avec ce bloc, il m'affiche que le "non définie" sans prendre comte de mes valeurs.
    d'autre part j'ai utilisé date_diff peut tu me dire si cela peut être cohérent?

    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
    $dStart = new DateTime($donnees['JOUR_DEBUT']);
       $dEnd  = new DateTime($donnees['JOUR_FIN']);
       $dDiff = $dStart->diff($dEnd);    
       $dDiff->format('%R'); 
       $dDiff->days;
     
    if ($donnees['TEC']==="ABC"){
    	$categories ="peint par  :";
    }
    elseif ($donnees['TEC']==="GHI" ){
    	 $categories ="decoré par  :";
    }
    elseif ($date_debut != $date_fin ) && ($donnees['TEC']==="MNO" ) && ( $dDiff<5){
    	 $categories ="aménagé par  :";
    }
    else {
           $categories ="non définie  :";
    }

  10. #10
    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
    Par défaut
    Contrôle ta donnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    else {
           $categories ="non définie  :" . $donnees['TEC'];
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    après contrôle, la valeur affichée "$donnees['TEC']" est la dernière valeur ajoutée dans les enregistrements, c'est la même valeur pour tous

  12. #12
    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
    Par défaut
    Il faut nous montrer du code.
    D'ou vient $donnees ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    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
     $sth=$pdo->prepare("SELECT SALLE, PRODUITS, JOUR_DEBUT, JOUR_FIN, COULEUR, TEC FROM occupation WHERE SALLE IN ('MONTAGE_1','MONTAGE_2','MONTAGE_3')AND JOUR_DEBUT <=:j_fin  AND JOUR_FIN >=:j_debut  ");
    $sth->execute(array(':j_debut'=>$objDatedebut->format('Y-m-d'),
                                   ':j_fin'=>$objDatefin->format('Y-m-d')
     
    				));
     
    while ($donnees = $sth->fetch(PDO::FETCH_ASSOC)) {
       $dStart = new DateTime($donnees['JOUR_DEBUT']);
       $dEnd  = new DateTime($donnees['JOUR_FIN']);
       $dDiff = $dStart->diff($dEnd);    
       $dDiff->format('%R'); 
       $dDiff->days;
     
    if ($donnees['TEC']==="ABC"){
    	$categories ="peint par  :";
    }
    elseif ($donnees['TEC']==="GHI" ){
    	 $categories ="decoré par  :";
    }
    elseif ($date_debut != $date_fin ) && ($donnees['TEC']==="MNO" ) && ( $dDiff<5){
    	 $categories ="aménagé par  :";
    }
    else {
           $categories ="non définie  :";
    }

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    c'est à se demander si tu comprends ce que tu écris...

    Je croyais que tu plaisantais quand, dans le 1er message, tu écrivais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (date_debut est different de date fin de 2jours)
    Apparemment : non.

    Idem quand tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elseif ($date_debut != $date_fin ) && ($donnees['TEC']==="MNO" ) && ( $dDiff<5){
    $date_debut et $date_fin sortent de ton chapeau ?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    j'ai reussi a avoir ma variable qui change en fonction de la valeur sauf pour cela :
    ABC a bien la valeur mais pas DEF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset(($data[$key])=='ABC' )  || (($data[$key])=='DEF') ){
     
     $categories ="peint par  :";

  16. #16
    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
    Par défaut
    Ce que tu écris n'a aucun sens.
    Montre nous le code (2ème fois).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    voici le code

    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
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
       <meta http-equiv="Refresh" content="10" >
       <link rel="stylesheet" href="app.css">
     
    </head>
    <body>
     <br />
      <br />
      <div class="boite" ><?php echo "Semaine du : " .$debut_fin_semaine[0] . " au " . $debut_fin_semaine [6]; ?></div>
     <img class="image1" src="test.png" >
     <br />
      <br />
       <br />
    <table id="tableau" border="1" cellspacing="1" cellpadding="36">
    <?php
     
    $objDatedebut = date_create();
    if ($objDatedebut->format('N') != 1) {
        $objDatedebut->modify('last monday');
    }
    $objDatefin = clone $objDatedebut;
    $objDatefin->modify('+ 6 day');
     
     
     
     $sth=$pdo->prepare("SELECT SALLE, PRODUITS, JOUR_DEBUT, JOUR_FIN, COULEUR, TECHNICIEN FROM planning WHERE SALLE IN ('MONTAGE_1','MONTAGE_2','MONTAGE_3','MONTAGE_4','MONTAGE_5','MIXAGE','MONTAGE_SON')AND JOUR_DEBUT <=:j_fin  AND JOUR_FIN >=:j_debut  ");
    $sth->execute(array(':j_debut'=>$objDatedebut->format('Y-m-d'),
                                  ':j_fin'=>$objDatefin->format('Y-m-d')
    			     ));
     
    while ($donnees = $sth->fetch(PDO::FETCH_ASSOC)) {
     
       $objDatedebut_produit = date_create($donnees['JOUR_DEBUT']);
       $objDatefin_produit = date_create($donnees['JOUR_FIN']);   
       if ($objDatefin_produit > $objDatefin) {
          $njours = $objDatedebut_produit->diff($objDatefin);
       }
       else {
          $njours = $objDatedebut_produit->diff($objDatefin_produit);
       }
     
       $data[$donnees['SALLE']][$objDatedebut_produit->format('Y-m-d')] = array('produit'=>$donnees['PRODUITS'], 'colors'=>$donnees['COULEUR'], 'tech'=>$donnees['TECHNICIEN'], 'njours'=>$njours->format('%a'));
     
     
    }
     
    ?>
     
    	<tr>
    		 <td class= "cells" >Salles</td>
                     <td class= "date" ><?php echo $debut_fin_semaine[0]; ?></td>
    		 <td class= "date" ><?php echo $debut_fin_semaine[1]; ?></td>
    		 <td class= "date" ><?php echo $debut_fin_semaine[2]; ?></td>
    		 <td class= "date" ><?php echo $debut_fin_semaine[3]; ?></td>
    		 <td class= "date" ><?php echo $debut_fin_semaine[4]; ?></td>
    		 <td class= "date" ><?php echo $debut_fin_semaine[5]; ?></td>
    		 <td class= "date" ><?php echo $debut_fin_semaine[6]; ?></td>
    	</tr>
     
    <?php			
     
    $tblSalles = array(
     
    	'MONTAGE_1' => 'MONTAGE 1',
    	'MONTAGE_2' => 'MONTAGE 2',
    	'MONTAGE_3' => 'MONTAGE 3',
    	'MONTAGE_4' => 'MONTAGE 4',
    	'MONTAGE_5' => 'MONTAGE 5',
    	'MIXAGE' => 'MIXAGE',
    	'MONTAGE_SON' => 'MONTAGE SON'
    );
     
    foreach ($tblSalles as $key=>$Salle) {
     
    	echo '<tr>
    	<td class="salle">' . $Salle . '</td>';
    	for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) {
     
    		if ($key === 'Salles') {
    		echo '<th>' . $case = $date->format('d/m/Y') . '</th>';
     
    		}else {
     
    		if (isset($data[$key][$date->format('Y-m-d')])) {
                    $values = $data[$key][$date->format('Y-m-d')];
                        if (isset($data[$Salle])=='MIXAGE'   ){
     
    		    $categories = " Mixage  :  ";           
     
    		    echo '<td class="back" style="background-color:'. ($values['colors']) .' "" colspan="' . ($values['njours'] + 1). '">' . htmlspecialchars($values['produit']).'<br />'  .$categories.  tmlspecialchars($values['tech']) .'</td>';
    		    $date->modify('+' . $values['njours'] . ' days');
    	            }
                            elseif ($values['njours']<= 4) AND ( $data[$Salle])=='MONTAGE_3' )   {
    	                $categories = "Co-Co  :  ";           
     
    		       echo '<td class="back" style="background-color:'. ($values['colors']) .' "" colspan="' . ($values['njours'] + 1). '">' . htmlspecialchars($values['produit']).'<br />'  .$categories. htmlspecialchars($values['tech']) .'</td>';
    		       $date->modify('+' . $values['njours'] . ' days');
    	               }else{
     
              	       $categories = " Montage  :  ";
    		       echo '<td class="back" style="background-color:'. ($values['colors']) .' "" colspan="' . ($values['njours'] + 1). '">' . htmlspecialchars($values['produit']).'<br />'  .$categories.  htmlspecialchars($values['tech']) .'</td>';
    		       $date->modify('+' . $values['njours'] . ' days'); 	
     
    		       }
     
                    }  else {
     
                          echo '<td></td>';
                         }
            }
     
      }
     
     
    echo '</tr>';
    }
     
    ?>
     
    </table>
    </body>
    </html>

  18. #18
    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
    Par défaut
    Indente proprement ton code, la j'ai le mal de mer à essayer de le lire.

    Le nom de la salle c'est $Salle, je ne sais pas ce que tu as été cherché aussi loin.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    ca y est j'ai essayé de rendre plus lisible le code.j'ai fais cela sur mon post précédent.
    en espérant que cela ira

  20. #20
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    Ici tu as déjà une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($key === 'Salles') {
    Le $key vient du foreach :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    foreach ($tblSalles as $key=>$Salle) {
    Qui lui même boucle sur le tableau déclaré plus haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $tblSalles = array(
     
    	'MONTAGE_1' => 'MONTAGE 1',
    	'MONTAGE_2' => 'MONTAGE 2',
    	'MONTAGE_3' => 'MONTAGE 3',
    	'MONTAGE_4' => 'MONTAGE 4',
    	'MONTAGE_5' => 'MONTAGE 5',
    	'MIXAGE' => 'MIXAGE',
    	'MONTAGE_SON' => 'MONTAGE SON'
    );
    Et comme il n'y a pas de clé 'Salle', ton if ne sert à rien.

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

Discussions similaires

  1. Concatener une variable a un object?
    Par critok dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/02/2006, 19h38
  2. Interaction sur un bouton + Concatenation de variable.
    Par Cydreav dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 03/02/2006, 14h49
  3. Concatener 2 variables de type "long"
    Par jamesleouf dans le forum C
    Réponses: 9
    Dernier message: 04/12/2005, 22h24
  4. Concaténer des variables
    Par pcdj dans le forum Linux
    Réponses: 1
    Dernier message: 26/10/2005, 22h30
  5. [C#] Concatener 2 variables pour en faire une 3ème
    Par Thomas Lebrun dans le forum Windows Forms
    Réponses: 6
    Dernier message: 11/05/2004, 21h02

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