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 :

Se servir d'une information déjà contenue sur la page.


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien Pack
    Inscrit en
    Août 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Pack

    Informations forums :
    Inscription : Août 2021
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Se servir d'une information déjà contenue sur la page.
    Bonjour à tous.

    Je m'excuse par avance si c'est un doublon ou une question idiote.
    Je ne connais rien du tout en php, je poste ma question par désespoir
    Merci d'avance à celui ou celle qui acceptera de m'aider.

    J'ai donc un fichier text avec du php dessus.
    Sur ce fichier, j'ai extrait une information sur un autre fichier, afin de l'afficher sur ma page web correspondante.
    La ligne est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td align="left">{{ $l->relais}}</td>
    Elle affiche soit Matin, Après-Midi, Nuit, ou Journée.

    Plus tard sur mon fichier text, j'aimerai créer une condition en fonction de cette information.
    J'en suis ici:

    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
    if( relais == "Journée" )
     { 
      $texte = 'Attention, vous n\'avez pas saisie suffisamment d\'heures pour une journée de 07H44.';
    	$texte2 = 'Vous avez bien saisie vos heures pour une journée de 07H44.';
    	$texte3 = 'Vous avez saisie plus heures que nécessaire pour une journée de 07H44.';
     
      if( $totaljour < 7.44 )
      {
                $message= $texte;
    			$couleur = '#FF0000' ;  
         }
      elseif( $totaljour > 7.44 )
      {    
    	        $message= $texte3;
    			$couleur = '#FF0000';
    		 } 
     
      elseif( $totaljour == 7.44 )
      {    
    	        $message= $texte2;
    			$lien= 'Validation';
    			$couleur = '#3366FF';
    		 } 
    	}
     
    elseif( relais == "Matin"or"Après-midi"or"Nuit" )
     { 
      $texte = 'Attention, vous n\'avez pas saisie suffisamment d\'heures pour une journée de 08H08.';
    	$texte2 = 'Vous avez bien saisie vos heures pour une journée de 08H08.';
    	$texte3 = 'Vous avez saisie plus heures que nécessaire pour une journée de 08H08.';
     
      if( $totaljour < 8.08 )
      {
                $message= $texte;
    			$couleur = '#FF0000' ;  
         }
      elseif( $totaljour > 8.08 )
      {    
    	        $message= $texte3;
    			$couleur = '#FF0000';
    		 } 
     
      elseif( $totaljour == 8.08 )
      {    
    	        $message= $texte2;
    			$lien= 'Validation';
    			$couleur = '#3366FF';
    		 } 
    	}
    Mais ça ne marche pas. Ça ne prend pas en compte le type de relais que je souhaite...
    Pourriez-vous m'aider et m'indiquer où est l'erreur s'il vous plaît?

    Merci par avance et bonne journée

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Tout d'abord, pensez à utiliser les balises [CODE ] [/CODE ] (sans les espaces) pour présenter correctement votre code ;-)

    Sinon, il faut savoir que des variables en PHP commencent toujours par le signe dollar $.
    On voit d'ailleurs que la première utilisation de la variable semble se faire correctement vu qu'il est écrit $l->relais.

    Cependant, votre condition semble incorrecte car vous avez écrit relais.
    Plus loin, vous refaites la même erreur : elseif( relais == "Matin"or"Après-midi"or"Nuit" ).

    Tant que j'y suis, un simple else { dans ce second cas semble être suffisant vu qu'il reprend tous les autres cas possibles

    NB : La variable ici est $l, et il s'agit de ce qu'on appelle un objet (une classe). relais est un paramètre de cet objet.

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien Pack
    Inscrit en
    Août 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Pack

    Informations forums :
    Inscription : Août 2021
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci pour votre réponse.

    J'ai remplacé ma seconde condition par "else {" uniquement et effectivement ça marche bien comme cela.

    Toutefois, j'ai l'impression que ma première condition n'est toujours pas comprise, car lorsque je suis censé avoir Journée, mon code ne s'arrête pas à cette condition et passe directement à la suivante...
    J'ai mis ça ce coup ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if( $l->relais == "Journée" )
    Ou alors peut-être y a t'il moyen, au lieu de chercher la valeur, de pouvoir dire "= ligne 20 du texte"?

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Quand vous dites que votre code ne s'arrête pas à cette condition, j'imagine qu'il s'agit d'un abus de langage, car il n'y a rien pour stopper son exécution dans le code que vous avez montré.

    Quand on reçoit que des bouts de code, on ne répond qu'avec de la théorie car en réalité, ça peut être beaucoup plus compliqué que ça en a l'air.

    En effet, suivant où la variable $l est définie, ou suivant où vous souhaitez l'utiliser (même au sein d'un même fichier), il est possible que la variable ne soit pas accessible.
    Si elle n'est pas accessible, elle n'est pas définie et donc la condition sera TOUJOURS fausse.

    Affichez-vous les erreurs PHP ?
    Qu'est-ce qui vous fait dire que votre condition ne fonctionne pas ? Parce que l'intuition en développement, ça marche pas très bien
    Personnellement, tout en bas après le if {} else {} j'afficherais la valeur de $texte (echo $texte;) vu que suivant par où ça passe, sa valeur est différente.
    Il sera lors facile de constater que si vous voyez " ... pour une journée de 07H44." c'est que vous étiez dans le if() sinon dans le else().

    EDIT : Vous pouvez également vérifier la valeur de votre variable $l avant ou après votre condition (au choix) afin également de valider :
    1] que la variable existe,
    2] qu'il s'agit bien d'un objet avec un attribut relais,
    3] que la valeur de cet attribut est bien un string,
    4] que la valeur de cet attribut a bien une valeur égale à "Journée" dans le cas que vous testez.

    Pour afficher un objet, vous pouvez écrire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(...) {
       // instructions
    } else {
       // instructions
    }
    echo PHP_EOL . '<pre>Ma variable $l vaut : ' . print_r($l, true) . '</pre>' . PHP_EOL;

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien Pack
    Inscrit en
    Août 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Pack

    Informations forums :
    Inscription : Août 2021
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci pour vos réponses.
    Je n'ai malheureusement pas réussi ce que je souhaitais initialement.
    Mes connaissances sont vraiment trop limitées, même vos réponses qui sont surement simples sont du chinois pour moi ^^"

    J'ai réussi à contourner le problème d'une certaine façon.
    Je clos le sujet.

    Bonne continuation.

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

Discussions similaires

  1. [PHP 5.0] Élément sélectionné d'une liste nous renvoie sur même page
    Par agnaou dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2009, 16h51
  2. [CR 9] imprimer une ligne de détail sur nouvelle page
    Par rot@rot dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 05/05/2008, 09h26
  3. Faire une requête de contenu sur une liste personnalisée
    Par filigane dans le forum SharePoint
    Réponses: 0
    Dernier message: 13/09/2007, 11h28
  4. [MySQL] Afficher une selection d'enregistrement sur plusieurs pages
    Par largolgd dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 09/03/2006, 22h20

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