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

Bibliothèques et frameworks PHP Discussion :

[FPDF] IF et else pas pris en compte


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Par défaut [FPDF] IF et else pas pris en compte
    Bonsoir,

    J'essaie de générer un tableau avec fpdf mais les cellules vide restent visible, et ce malgré mes essais pour les faire disparaitrent avec des conditins IF et ELSE.

    J'ai essayé empty, isset, variable vide, variable pleine mais rien n'y fait... Le code se comporte comme si ils n'y avait pas de conditions.

    code php :

    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
     
    $sql_fact = "SELECT * FROM facture WHERE id_client_facture = '".$_POST['modifier_client']."'";
    $sql_fact = mysql_query ($sql_fact) or die (mysql_error()); 
    $data_fact = mysql_fetch_array($sql_fact);
     
    if($_POST['facture1']=="0"){$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);}
    else{$pdf->Cell(120,5,$data_fact['facture_data19'],1,0);$pdf->Cell(20,5,$data_fact['facture_data36'].' '.EURO,1,0,'R');$pdf->Cell(15,5,$data_fact['facture_data54'],1,0,'C');$pdf->Cell(25,5,$data_fact['facture_data1'].' '.EURO,1,1,'R');}
    if($_POST['facture2']=="0"){$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);}
    else{$pdf->Cell(120,5,$data_fact['facture_data20'],1,0);$pdf->Cell(20,5,$data_fact['facture_data37'].' '.EURO,1,0,'R');$pdf->Cell(15,5,$data_fact['facture_data55'],1,0,'C');$pdf->Cell(25,5,$data_fact['facture_data2'].' '.EURO,1,1,'R');}
    if($_POST['facture3']=="0"){$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);}
    else{$pdf->Cell(120,5,$data_fact['facture_data21'],1,0);$pdf->Cell(20,5,$data_fact['facture_data38'].' '.EURO,1,0,'R');$pdf->Cell(15,5,$data_fact['facture_data56'],1,0,'C');$pdf->Cell(25,5,$data_fact['facture_data3'].' '.EURO,1,1,'R');}
    if($_POST['facture4']=="0"){$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);}
    else{$pdf->Cell(120,5,$data_fact['facture_data22'],1,0);$pdf->Cell(20,5,$data_fact['facture_data39'].' '.EURO,1,0,'R');$pdf->Cell(15,5,$data_fact['facture_data57'],1,0,'C');$pdf->Cell(25,5,$data_fact['facture_data4'].' '.EURO,1,1,'R');}
    if($_POST['facture5']=="0"){$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);}
    else{$pdf->Cell(120,5,$data_fact['facture_data23'],1,0);$pdf->Cell(20,5,$data_fact['facture_data40'].' '.EURO,1,0,'R');$pdf->Cell(15,5,$data_fact['facture_data58'],1,0,'C');$pdf->Cell(25,5,$data_fact['facture_data5'].' '.EURO,1,1,'R');}
    if($_POST['facture6']=="0"){$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);$pdf->Cell(0,0,'',0,0);}
    else{$pdf->Cell(120,5,$data_fact['facture_data28'],1,0);$pdf->Cell(20,5,$data_fact['facture_data41'].' '.EURO,1,0,'R');$pdf->Cell(15,5,$data_fact['facture_data59'],1,0,'C');$pdf->Cell(25,5,$data_fact['facture_data6'].' '.EURO,1,1,'R');}
    Bon je sait que c'est pas la meilleurs façon de générer un tableau mais c'est la seul façon que je connaisse....

    merci d'avance pour vos réponse.

    Roland

  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
    Par défaut
    Tu veux dire quoi par "restent visibles" ? Tu rentres dans le cas Else ou bien tu as un cellule sans rien dedans ?

    Utilise var_dump() pour voir ce que contient une variable réellement.

    Il faudrait sérieusement penser a faire des boucles et présenter ton code proprement, c'est illisible actuellement.
    Pour cela, pense a utiliser des champs de formulaire en tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name="facture_data[36]"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 154
    Par défaut
    En dehors de ce qu'à déjà dit Sabotage (tu devrai vraiment écouter ses conseils), moi ce que je ne comprends pas, c'est pourquoi tu te plains d'avoir des cellules vides. C'est exactement ce que tu demande à FPDF:
    Ce code affiche bien une cellule vide. Si tu ne veux pas qu'elle soit visible, je dirai qu'il te suffit de ne pas demander à FPDF de l'afficher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if($_POST['facture1']!="0"){
        $pdf->Cell(120,5,$data_fact['facture_data19'],1,0);...
    }
    if($_POST['facture2']!="0"){
        $pdf->Cell(120,5,$data_fact['facture_data20'],1,0);...
    }
    Soit dit en passant -et comme le soulignait Sabotage-, ta syntaxe est absolument immonde.
    Quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $nF=0;//N° de facture (de ligne?)
    while($nF<6){
        $nF++;
        if($_POST['facture'.$nF]!="0"){
            //pour ton cas particulier
            if($nF==6)
                    $pdf->Cell(120,5,$data_fact['facture_data28'],1,0);
            else
                    $pdf->Cell(120,5,$data_fact['facture_data'.($nF+18)],1,0);
            $pdf->Cell(20,5,$data_fact['facture_data'.($nF+35)].' '.EURO,1,0,'R');
            $pdf->Cell(15,5,$data_fact['facture_data'.($nF+53)],1,0,'C');
            $pdf->Cell(25,5,$data_fact['facture_data'.$nF].' '.EURO,1,1,'R');
        }
    }
    serait tout de même beaucoup moins verbeux et beaucoup plus clair. Ce qui n’empêche pas qu'une syntaxe en tableau serait plus appropriée.
    D'une manière générale, on a inventé la machine pour faire les trucs chiants que l'homme n'aimait pas faire (et donc là ou il risquait de faire des erreurs). A fortiori avec l'ordinateur pour faire des calculs (c'est chiant les calculs, moi si tu me dis 12*9=? et bien je prends une calculette). Pourquoi vouloir toi-même faire le boulot chiant (et les erreurs, et d'ailleurs si ton "cas particulier" vu plus haut était une erreur de saisie, ce serait un cas d'école magistral). Soit fainéant, tu vivra longtemps (réfléchit un peu à comment tu peux déléguer le boulot chiant à la machine, en écrire le moins possible). Dis toi que le niveau de compétences d'un développeur est inversement proportionnel à la verbosité de son code, donc proportionnel à la taille du poil qui est dans sa main.
    @+
    Piero

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Merci pour vos réponses et je prend bonne note de vos conseils.
    Mon pb. est que si j'envoie rien ou un champ vide (sans données quoi...) il ne faut qu'il soit affiché théoriquement...

    exe:
    je post
    cell1:a=1,
    cell2:b=1,
    cell3:c= rien,
    cell4:d=1
    etc...

    donc avec les conditions IF , ELSE, etc je devrais avoir comme résultat :
    cell1:1
    cell2:1
    cell4:1
    (cell3 ne doit pas être visible puisque je n'ai rien envoyé ou du moins ct vide) et bien non... cell3 reste visible quoi que je fasse...
    Mais je continue et je cherche un autre moyen pour générer mon code (plus propre)

    Merci

  5. #5
    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
    C'est quoi une cellule "pas visible" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 154
    Par défaut
    Je comprends rien ou tu as pas lu ma réponse?

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

Discussions similaires

  1. [PHP 5.2] Mon else n'est pas pris en compte
    Par beegees dans le forum Langage
    Réponses: 2
    Dernier message: 14/05/2009, 09h16
  2. getline(cin,s) pas pris en compte ?
    Par FinalSpirit dans le forum SL & STL
    Réponses: 3
    Dernier message: 19/01/2006, 01h18
  3. [Mail] Les sauts de lignes pas pris en compte
    Par Anduriel dans le forum Langage
    Réponses: 15
    Dernier message: 14/12/2005, 19h13
  4. [Plugi][phpeclipse] point d'arrêt pas pris en compte
    Par damjal dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 22/11/2005, 23h58
  5. Mon script cron n'est pas pris en compte
    Par tomnie dans le forum Linux
    Réponses: 11
    Dernier message: 31/03/2004, 11h19

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