Voilà, j'ai un petit site. Afin que d'autres personnes puissent y ajouter des infos, j'ai créé un admin.
Mon problème se porte sur la rubrique "Goodies" puis sous-rubrique "Objets VW". Dans les messages de collections, il y a des espaces non-désirés entre le titre et les photos, car j'ai dû créer un tableau pour que les photos soient alignées 2 par 2.
Il y a cependant déjà un tableau dans le fichier php. je sais pas si ça parait clair.
Voici le code php :
<?PHP
include("head.php");
?>
<p><font family='verdana' size='2,5' color='#3FDCC4'>Début de création des fichiers de goodies</font><br>
<?PHP
function StartFile($Fp,$Titre,$entete)
{
    $lines = file ('../head.htm');
    // Affiche toutes les lignes du tableau comme code HTML, avec les numéros de ligne
    foreach ($lines as $line_num => $line) {
      fputs ($Fp,$line."\r\n");;
    }
    fputs ($Fp,"<H2 >Goodies</H2>\r\n");
	fputs ($Fp,"<br> \r\n");
	fputs ($Fp,"<H3>".$Titre."</H3>\r\n");
	fputs ($Fp,"<p class=\"paragraphe\">".$entete."<br>\r\n");
	fputs ($Fp,"<br> \r\n");
	fputs ($Fp,"<hr>\r\n");
	fputs ($Fp,"<table width=\"100%\">\r\n");
}
function goodiesInFile($Fp,$Obj)
{
  list($date) = explode(" ",$Obj->date);
  list($Annee,$Mois,$Jours) = explode("-",$date);
  $date = $Jours."/".$Mois."/".$Annee;
  fputs ($Fp,"<div class=\"news\">".$Obj->titre."</div>\r\n\n"); 
  fputs ($Fp,"<div class=\"paragraphe\">".nl2br($Obj->texte)."</div>\r\n\n");
  fputs ($Fp,"<div class=\"paragraphe3\">Par ".$Obj->user.", le ".$date."<hr></div>\r\n");
}
function EndFile($Fp,$Num,$Ji,$fichier)
{
// fputs ($Fp," <tr>\r\n <td>Page : \r\n");
  fputs ($Fp," <div class=\"page\">Page : \r\n");
  for($i=1;$i <= ceil($Num/10);$i++)
  {
	if($i==$Ji){
	fputs ($Fp," $i \r\n");
	}else{
	fputs ($Fp," <a class=\"page\" href=\".$fichier.$i.\">".$i."</a> \r\n");
	}
  }
fputs ($Fp," </div>\r\n");
fputs ($Fp," </table>\r\n");
    $lines = file ('../foot.htm');
    // Affiche toutes les lignes du tableau comme code HTML, avec les numéros de ligne
    foreach ($lines as $line_num => $line) {
      fputs ($Fp,$line."\r\n");;
    }
}
// connexion à la base de données
include("../mysql.lib.php");
include("../conf.inc.php");
$DB = new MysqlDataBase($DB_Serveur,$DB_User,$DB_Password,$DB_Db);
// requête objets
$query = "SELECT * FROM `goodies` WHERE `cat`=1 order by Date DESC";
$DB->execute($query);
$I = 0;
$J = 1;
$FP= 0;
// traitement des enregistrements
while($DB->object)
{
  if($FP==0)
  {
    $Fichier = "objets".$J.".html";
    echo "<font family='verdana' size='2,5' color='#3FDCC4'>Création du fichier </font><a href=\"../goodies/".$Fichier."\">".$Fichier."</a><br>";
    $FP = fopen ("../goodies/".$Fichier,"w") ;
    StartFile($FP, "Objets VW", "Photos de nos petites collections persos.");
  }
  goodiesInFile($FP,$DB->object);
  $I++;
  if($I==10)
  {
	echo "<font family='verdana' size='2,5' color='#3FDCC4'>Création du fichier <a href=\"../goodies/".$Fichier."\">".$Fichier."</a> terminée.</font><br>";
	EndFile($FP,$DB->Num,$J,"objets");
	fclose($FP) ;
	$J++;
	$I = 0;
	$FP =0;
  }
  $DB->NextObject();
}
if($FP!=0)
{
  echo "<font family='verdana' size='2,5' color='#3FDCC4'>Création du fichier goodies/objets terminée.</font><br>";
  EndFile($FP,$DB->Num,$J,"objets");
  fclose($FP);
  $I = 0;
  $FP =0;
}
// requête ouvrages
$query = "SELECT * FROM `goodies` WHERE `cat`=2 order by Date DESC";
$DB->execute($query);
$I = 0;
$J = 1;
$FP= 0;
// traitement des enregistrements
while($DB->object)
{
  if($FP==0)
  {
    $Fichier = "ouvrages".$J.".html";
    echo "<font family='verdana' size='2,5' color='#3FDCC4'>Création du fichier </font><a href=\"../goodies/".$Fichier."\">".$Fichier."</a><br>";
    $FP = fopen ("../goodies/".$Fichier,"w") ;
    StartFile($FP, "Ouvrages VW", "Recensement de nos mags et autres bouquins VW, une tite collection...<br> Remplissage de cette rubrique à venir.");
  }
  goodiesInFile($FP,$DB->object);
  $I++;
  if($I==10)
  {
	echo "<font family='verdana' size='2,5' color='#3FDCC4'>Création du fichier <a href=\"../goodies/".$Fichier."\">".$Fichier."</a> terminée.</font><br>";
	EndFile($FP,$DB->Num,$J,"ouvrages");
	fclose($FP) ;
	$J++;
	$I = 0;
	$FP =0;
  }
  $DB->NextObject();
}
if($FP!=0)
{
  echo "<font family='verdana' size='2,5' color='#3FDCC4'>Création du fichier goodies/ouvrages terminée.</font><br>";
  EndFile($FP,$DB->Num,$J,"ouvrages");
  fclose($FP);
  $I = 0;
  $FP =0;
}
// requête divers
$query = "SELECT * FROM `goodies` WHERE `cat`=3 order by Date DESC";
$DB->execute($query);
$I = 0;
$J = 1;
$FP= 0;
// traitement des enregistrements
while($DB->object)
{
  if($FP==0)
  {
    $Fichier = "divers".$J.".html";
    echo "<font family='verdana' size='2,5' color='#3FDCC4'>Création du fichier </font><a href=\"../goodies/".$Fichier."\">".$Fichier."</a><br>";
    $FP = fopen ("../goodies/".$Fichier,"w") ;
    StartFile($FP, "Divers", "Le tout et le nimp autour de la VW et des coccinelles [cligne]");
  }
  goodiesInFile($FP,$DB->object);
  $I++;
  if($I==10)
  {
	echo "<font family='verdana' size='2,5' color='#3FDCC4'>Création du fichier <a href=\"../goodies/".$Fichier."\">".$Fichier."</a> terminée.</font><br>";
	EndFile($FP,$DB->Num,$J,"divers");
	fclose($FP) ;
	$J++;
	$I = 0;
	$FP =0;
  }
  $DB->NextObject();
}
if($FP!=0)
{
  echo "<font family='verdana' size='2,5' color='#3FDCC4'>Création du fichier goodies/divers terminée.<br>
  All fichiers Goodies OK.</font><br>";
  EndFile($FP,$DB->Num,$J,"divers");
  fclose($FP);
  $I = 0;
  $FP =0;
}
?>
</p>
<?PHP include("foot.php")?>

Et voici le message :
<table width="100%"><tr><td>
<a href="/images/goodies/etagere1.jpg"><img src="/images/goodies/etagere1.jpg" class="tof" border="1" width="320" alt="étagère 1"></a>
</td>

<td>
<a href="/images/goodies/etagere2.jpg"><img src="/images/goodies/etagere2.jpg" class="tof" border="1" width="320" alt="étagère 2"></a>
</td></tr>

<tr><td>
<a href="/images/goodies/etagere3.jpg"><img src="/images/goodies/etagere3.jpg" class="tof" border="1" width="320" alt="étagère 3"></a>
</td><tr></table>


Si vous comprenez pourquoi il y a des espaces inutiles, ou si une alternative à deux tableaux existe, éclairez-moi svp.
Merci d'avance.
Modifié par MissGG (18 Feb 2007 - 06:07)
Bonjour à toi,

En parcourant ton site, j'ai noté plusieurs petite choses.
Mais tout d'abord, j'aurais une petite question : as-tu codé les border par défaut du tableau pour que celles-ci soient nulles ?
Car dans un tableau, il faut prendre en compte les deux types de bordures existantes : les bordures du tableau ainsi que les bordures des cellules. Car, pour supprimer les espaces, il convient de supprimer les deux.
Voici un article très bien fait qui devrait t'aider à habiller ton tableau comme tu l'entends Smiley cligne :
- Openweb - Habillage de tableaux avec des CSS

Sinon, si je peux me permettre, je te conseillerais fortement d'indiquer la taille de tes polices en em et non pas en pixel car cette unité interdit tout agrandissement -ou rétrécissement- de la police sous IE.. Ce qui peut être assez contraignant. Un autre petit lien :
- Typographie web : gérer la taille du texte avec les « em »

Et enfin...
Une dernière petite question :
Pourquoi utilises-tu des frames dans ton site ? Smiley rolleyes

Bonne journée Smiley smile
Bonjour Cygnus,

Merci de m'avoir répondu.

Pour les border, je suis désolé mais je n'ai pas compris c'qui pouvais clocher.
Et je comprends pas pourquoi j'ai des espaces supplémentaires. Cela vient selon moi du double tableau. Car comme, je passe par un admin, je suis obligé de mettre un tableau dans un tableau.

Pour ton conseil concernant la taille des polices, j'vais m'y atteler. Merci.

Lool pour les frames, j'essaye de les virer. J'ai fait un site test sans frame que tu peux critiquer dans le sujet "Mon passage des frames à l'overflow". Il me reste quelques trucs qui déconne avant de pouvoir le mettre en ligne. Smiley cligne

Bonne journée également et @ bientôt.
J'ai virer le 1er tableau qui ne servait à rien finalement.
Je pense que le problème vient du mélange "div" et "table" mais je n'en suis pas sûre et je ne trouve pas de solution.
C'est bon, le problème est réglé.
Une fois, mon premier tableau enlevé, plus de problème avec les div.
Ensuite, les espaces supplémentaires venaient de mon admin (C'était invisible mais évident quand j'y pense). D'où le mélange de <br> avec le tableau, ça pouvait pas coller. Valider mes pages en W3C m'a aidé à trouver ces erreurs une fois le 1er tableau enlevé. Pensez-y si vous avez un problème de code.
Je sais pas si ce problème peut arriver à quelqu'un d'autres car y'avait 2 problèmes en fait.
Donc, voici la solution, si ça peut aider quelqu'un d'autre.