couleur tableau fct result valeur colonne csv - PHP - Programmation
Marsh Posté le 24-01-2013 à 17:48:14
je vous est induit en erreur (tests en cours)....désolé.
voici la bonne fin du script :
echo '<table width=150% BORDER="1">';
for ( $vNoLigne=1 ;$vNoLigne <= $vNoLigFicDon ; $vNoLigne++ ) {
echo '<tr>';
for ( $vNoColFicDon=1 ;$vNoColFicDon <= $vNbCol ; $vNoColFicDon++ ) {
echo '<td>';
if ( $vNoColFicDon == 4 ) echo '<font color="green"><b>';
if ( $vNoLigne == 1 ) echo '<font color="blue"><b>';
echo ''.Htmlentities( $tDonnesLues[$vNoLigne][$vNoColFicDon] ,ENT_QUOTES,'ISO-8859-15').'</td>';
}
echo '</tr>';
}
echo '</table>';
Marsh Posté le 25-01-2013 à 10:02:33
1- le code est illisible, il faut au moins le mettre dans des balises [code]
2- Tu mélanges le code Php et la page html. C'est mal, il faut séparer le traitement de l'affichage.
3- Tu fais ton code dans un énorme pâté de code indigeste, il faut séparer des fonctions
4- Tu colorises le texte avec une balise dépréciée depuis pas mal d'années. Il faut séparer la mise en forme de la sémantique, et utiliser du Css.
A ta place je commencerais par ça, ça m'étonnerait pas que ton problème se résolve de lui même.
Marsh Posté le 25-01-2013 à 10:15:05
bonjour,
Merci pour vos encouragement .... snif !
bon je l'admet, je ne suis pas un dieu en programmation php, je débute....
Merci pour votre indulgence.
je vous renvoie le code avec les balises :
Code :
|
Peut-être est-ce mieux...
Par contre je suis preneur d'un code plus à jour, si vous avez deux minutes...
Encore une fois, désolé si je ne suis pas un "pro" comme vous ... mais j'espère à le devenir... c'est super motivant...
Merci pour votre aide.
Marsh Posté le 25-01-2013 à 10:29:17
Dsl si j'ai semblé te prendre de haut, je ne connaissais pas ton niveau.
D'après ce que je comprends, il faut remplacer
Code :
|
par
Code :
|
J'ai pas testé donc il y a sans doute quelques erreurs de syntaxe à corriger, mais ça doit pas être loin.
Marsh Posté le 25-01-2013 à 10:48:21
Merci Gelatine_velue,
Bon, maintenant que mon niveau est découvert ...
Sinon, pas de soucis, je peux comprendre... pas facile avec ces débutants qui s'improvise "super bon" !
Voilà j'ai copier le code pour voir ce que cela donne, mais il me retourne :
"Notice: Undefined variable: value "
J'ai remplacer les guillemets par des ' ' mais toujours pareil...
Marsh Posté le 25-01-2013 à 10:52:03
il fallait "simpelment" mettre $valeur ....
Super pour votre aide....
Je vais voir si je peux maintenant ajouter une image de style "Alerte" derrière ma derniere colonne ou simplement remplacer le 0 ou le 1 par cette image...
Un grand merci .... vous avez trouvé en 2 minutes ce que j'ai chercher en plus de 8h00 sans trouver... Merci merci merci !
Marsh Posté le 25-01-2013 à 14:38:30
Bonjour,
Code :
|
Et bien comme quoi, le forum est incontournable
Marsh Posté le 25-01-2013 à 15:10:08
Oui c'est obligé quant on est mauvais comme moi ;-)
Et je crois que je vais pas tarder à reposter ...
pb pour afficher des champs supplémentaires à côté avec des images "red.jpg" et green.jpg"... correspondant aux colonne justement traiter avec vous auparavent !
pffff ....ah le code ... un vrai métier ! et surtout respect aux personnes qui maitrisent !
Marsh Posté le 25-01-2013 à 18:53:12
Je partage, si cela peut servir à qq ... :-)
Code :
|
Cordialement
ps: je ne sais pas si je peux, mais si vous avez 2 minutes, voici mon site photos.
(permet de se changer les idées, puis petit site non commercial !)
http://www.fx-photos.com
Marsh Posté le 24-01-2013 à 17:40:50
Bonjour,
Débutant avec PHP, j'aurais besoin de votre aide.
Existant :
- 1 fichier csv composé comme suit:
entete1;entete2;entete3;entete4;
valeur1;valeur11;valeur111;valeur1111;
valeur2;valeur22;valeur222;valeur2222;
valeur3;valeur33;valeur333;valeur3333;
valeur ......
J'affiche le tableau extrait du csv dans une page PHP avec balise de mise en forme (tableau html)
Par contre, je souhaiterais afficher toutes les valeurs "entete4" avec de la couleur.
si valeur1111 = "0" dans le csv then cellule du tableau dans page PHP = "green"
si valeur1111 = "1" dans le csv then cellule du tableau dans page PHP = "red"
si valeur2222 = "0" dans le csv then cellule du tableau dans page PHP = "green"
si valeur2222 = "1" dans le csv then cellule du tableau dans page PHP = "red"
Pourriez-vous m'aider ?
merci d'avance.
Voici mon code :
<?php
$vCSVdelimiter = ';'; $vCSVenclosure = '"'; $vCSVescape = '\\'; // paramètres CSV
$CheminDuCsv = '../csv/20130123-Sites.csv';
if ( !( ($vFichier = file_get_contents( $CheminDuCsv )) === FALSE ) ) {
$vFichier = str_replace( chr(13).chr(10) , chr(13) , $vFichier ); // remplace crlf par cr
$vFichier = str_replace( chr(10) , ' ' , $vFichier ); // remplace lf par un blanc ; (lf (0A) est utilisé par Excel pour les changements de lignes de texte à l'intérieur d'une cellule)
$lines = explode( chr(13) , $vFichier ); // converti la chaîne qui est dans $vFichier en tableau associatif ($lines)
if ( ! ( (strpos( $lines[0], $vCSVdelimiter)) === FALSE ) ) {
$vNbCol = substr_count( $lines[0], $vCSVdelimiter ) + 1 ; // nb colonnes de la première ligne
$vNoLigFicDon = 0 ; // init compteur numéro de ligne du fichier de données
$tDonnesLues = array();
foreach ($lines as $line) {
if ( ! ( strpos( $line, $vCSVdelimiter) === FALSE ) ) {
$tCsvDatas = str_getcsv( $line, $vCSVdelimiter, $vCSVenclosure, $vCSVescape) ;
$vNoLigFicDon++;
for ( $vNoColFicDon=1 ;$vNoColFicDon <= $vNbCol ; $vNoColFicDon++ ) {
if ( isset( $tCsvDatas[$vNoColFicDon-1] ) ) {
$vDonnee = preg_replace("( +)",' ',trim( $tCsvDatas[$vNoColFicDon-1] ) ) ; // avec suppr des blancs devant, derrière, et redondants
} else {
$vDonnee = '';
}
$tDonnesLues[$vNoLigFicDon][$vNoColFicDon] = $vDonnee ;
}
}
}
}
}
echo '<table width=150% BORDER="1">';
for ( $vNoLigne=1 ;$vNoLigne <= $vNoLigFicDon ; $vNoLigne++ ) {
echo '<tr>';
for ( $vNoColFicDon=1 ;$vNoColFicDon <= $vNbCol ; $vNoColFicDon++ ) {
echo '<td>';
print count($vNoLigFicDon) == 0 ? "not ok\n" : '<font color="blue"><b>';
// print count($vDonnee) == 1 ? "ok\n" : "not ok\n";
//if ( $vNoColFicDon == 4 ) echo '<font color="green"><b>';
if ( $vNoLigne == 1 ) echo '<font color="blue"><b>';
echo ''.Htmlentities( $tDonnesLues[$vNoLigne][$vNoColFicDon] ,ENT_QUOTES,'ISO-8859-15').'</td>';
}
echo '</tr>';
}
echo '</table>';
?>