Problème de style sur les bordures d'un tableau

Répondre
jackbocar
le 16/07/2008 à 13:20
jackbocar
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Tableau PDO</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
BODY {background: #f1f1f1;}
IMG {float: left;}
BODY, P, IMG {font-family: Arial, Helvetica, sans-serif;font-size: 10pt;margin: 0.5em;text-align:justify;}
.red {color: red;}
.cellule {color: #0C034F;text-align: justify;border: solid 1px #a0522d;}
.cadre {border: solid 1px #a0522d;background-color:#ffffff;}
.Lnav {text-decoration: none;font-weight: bold;color:#23698B;font-size : 10pt;}
.Lnav:hover {text-decoration: underline;font-weight: bold;color:#990000;font-size : 10pt;}
</style>
</head>

<body>

Bonjour,

J'ai un tableau en PDO, il fonctionne parfaitement bien, mon seul problème est les STYLES du cadre et des cellules. Ils sont pour une part épais et pour une autre fin ?

Comment régler ce problème ?

Merci de votre aide

Jack Bocar


<?php

/*------------------------------------------------*/
/*
/* NE RIEN CHANGER ICI */
/*
/*------------------------------------------------*/
class Connexion extends PDO{
private $debug;
/*--- constructeur ne rien changer ----*/

function __construct($user,$mdp,$bdd,$host='localhost'){

$this->debug=false;
try{
parent::__construct('mysql:host='.$host.';dbname='.$bdd,$user,$mdp);
} catch(PDOEXCEPTION $e){
die ('Erreur : '.$e->getMessage() );
}
$this->exec('SET CHARACTER SET 8859-1');
}
function modeDebug(){
$this->debug=true;
}
/*--- execute une requete sql du type insert, delete ou update ---*/

function exec($requete){
$resultat=parent::exec($requete);
if($resultat===FALSE and $this->debug){
var_dump($resultat);
var_dump(parent::errorInfo());
}else{
return $resultat;
}
}
/*--- execute une requete du type select ---*/

function query($requete){
$resultat=parent::query($requete);
if($resultat===FALSE and $this->debug){
var_dump($this->errorInfo());
var_dump(parent::errorInfo());
$resultat->closeCursor();
}else{
return $resultat;
}
}
/*--- return : false si aucune valeur trouvee ----*/

function querySimple($select,$table,$where='',$groupBy='',$ordre='',$limit='',$defaut=false){
$requete='select '.$select.
' from '.$table;
if($where!=''){
$requete.=' where '.$where;
}
if($groupBy!=''){
$requete.=' group by '.$groupBy;
}

if($ordre!=''){
$requete.=' order by '.$ordre;
}
if($limit!=''){
$requete.=' limit '.$limit;
}
$resultat=$this->query($requete);
$resultat=$resultat->fetchAll(PDO::FETCH_BOTH);
if(isset($resultat[0][0])){
return $resultat[0][0];
}else{
return $defaut;
}
}
/*--- renvoie un tableau associatif contenant le résultat de la requete -----*/

function requete2tableau($requete){
$resultat=$this->query($requete);
if($resultat===false AND $this->debug){
echo $requete;
};
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
/*---renvoie un tableau html contenant le résultat de la requete---*/

/*----ON PEUT MODIFFIER LA TABLE SEULEMENT ----*/

function requete2html($requete,$border=0,$enteteColonne=true){
$resultat=$this->query($requete);
$texte='';
$texte.= '<center><table width="90%" cellpadding="0" cellspacing="0" border="'.$border.'" class="cadre">';
if($enteteColonne){
$texte.= '<tr valign="top">';
for($i=0;$i<$resultat->columnCount();$i++){
$col=$resultat->getColumnMeta($i);
$texte.= '<th class="red">'.$col['name'].'</th>';
}
$texte.= '</tr>';
}
$resultat->setFetchMode(PDO::FETCH_NUM);
foreach($resultat as $ligne){
$texte.= '<tr valign="top">';
foreach($ligne as $valeur){
$texte.= '<td class="cellule"><p>'.nl2br($valeur).'</p></td>';
}
$texte.= '</tr>';

/*-- espace vide entre chaque tableau ----*/

$texte.='<tr><td>&nbsp;</td></tr>';

/*---ON PEUT MODIFIER LES ARGUMENTS SELECT ---*/

}
$resultat->closeCursor();
$texte.='</table><br /><a href="#" class="Lnav">Top</a></center>';
return $texte;
}
}
$connexion=new Connexion('LOGIN','PASSWORD','BASE');
$connexion->modeDebug();
echo $connexion->requete2html('select id,Nouvelles as Nouvelles from tableau_1 ORDER BY id DESC',1);


/*-
ID, NEWS, INFO, OU TOUT AUTRE SUIVANT LA TABLE ON PEUT AUSSI AJOUTER DES ARGUMENTS
-*/
?>



<br />
<a href="tableau_2.php" class="Lnav">Tableau 2</a> &nbsp; <a href="tableau_3.php" class="Lnav">Tableau 3</a> &nbsp; <a href="tableau_4.php" class="Lnav">Tableau 4</a>
<br /><br />
</body>
</html>


--
-- Structure de la table `tableau_1`
--

CREATE TABLE `tableau_1` (
`id` int(11) NOT NULL auto_increment,
`Nouvelles` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
LA GLOBULE
le 16/07/2008 à 13:29
LA GLOBULE
Pourquoi ne pas avoir posté dans le forum html / css pour un tel problème ?

Sinon, tu n'aurais pas des cellules vides par moment ?
Si oui, regarde du côté de la propriété empty-cells.
jackbocar
le 16/07/2008 à 13:36
jackbocar
Bonjour,

Désolé, par habitude de poster dans le forum PHP.

Non, je n'ai pas de cellules vide, simplement elles n'ont pas la même épaisseur ?

Jack Bocar
LA GLOBULE
le 16/07/2008 à 14:08
LA GLOBULE
Tu ne pourrais pas nous donner le HTML gé néré de ta page plutot que le PHP ? Ca serait plus simple pour t'aider.
jackbocar
le 16/07/2008 à 15:57
jackbocar
J'ai supprimé les balises <TH> et les ai remplacées par <TD>.
J'ai supprimé la fonction $border et l'ai remplacé par border="0"
J'ai toujours comme un double border sur les cellules côté gauche et droit à l'intérieur du cadre

<style type="text/css">
BODY {
background: #f1f1f1;
}

IMG {
float: left
}

BODY, P, IMG {
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
margin: 0.5em;
text-align:justify;
}
.red {
font-family: Arial, Helvetica, sans-serif;
font-size: 12pt;
color: red;
font-weight: bold;
text-align:center;
}
.cellule {
color: #0C034F;
text-align: justify;
border: solid 1px #a0522d;
}
.cadre {
border: solid 1px #a0522d;
background-color:#ffffff;
}

.Lnav {
text-decoration: none;
font-weight: bold;
color:#23698B;
font-size : 10pt;
}

.Lnav:hover {
text-decoration: underline;
font-weight: bold;
color:#990000;
font-size : 10pt;
}

</style>
</head>

<body>
<center>
<table width="90%" cellpadding="0" cellspacing="0" border="0" class="cadre">
<tr valign="top">
<td class="red">id</td>
<td class="red">Nouvelles</td>
</tr>
<tr valign="top">
<td class="cellule"><p>4</p>
</td>
<td class="cellule"><p>Test du tableau et des styles des cadres.</p>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr valign="top">
<td class="cellule"><p>3</p>
</td>
<td class="cellule"><p>Test du tableau et des styles des cadres.</p></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr valign="top">
<td class="cellule"><p>2</p>
</td>
<td class="cellule"><p>Test du tableau et des styles des cadres.</p></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr valign="top">
<td class="cellule"><p>1</p>
</td>
<td class="cellule"><p>Test du tableau et des styles des cadres.</p></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
<br />
<a href="#" class="Lnav">Top</a>
</center>
jackbocar
le 16/07/2008 à 16:08
jackbocar
J'ai trouvé une solution, en supprimant :


.cellule {
color: #0C034F;
text-align: justify;
border: solid 1px #a0522d;
}



Et en remplaçant par :

.cellule {
color: #0C034F;
text-align: justify;
border-top: solid 1px #a0522d;
border-bottom: solid 1px #a0522d;
border-right: solid 1px #a0522d;
}



Il ne me reste plus qu'un double border à l'intérieur et du côté droit du tableau
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours