Fonctions et fichier include

Petit nouveau ! | 5 Messages

02 août 2005, 23:09

Bonjour,

j'essaye de créer une fonction qui va me générer automatique un cadre "graphique" autour d'un tableau contenu dans un autre fichier:
<?
 $variable = include("non_du_fichier.php");
cadre($variable);
?>
voici le script de la fonction:
<?
function cadre($variable){

echo "<table align='center' width='100%' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr>";
echo "<td width='5' height='7'><img src='Navi/coinHG.gif' width='5' height='7'></td>";
echo "<td background='Navi/barredessus.gif'><img src='Navi/barredessus.gif' height='7' width='100%'></td>";
echo "<td width='5' height='7'><img src='Navi/coinHD.gif' width='5' height='7'></td>";
echo "</tr>";
echo "<tr>";
echo "<td background='Navi/barregauche.gif'><img src='Navi/barregauche.gif' width='5'></td>";
echo "<td bgcolor='#2059A6'>";

echo $variable;

echo "</td>";
echo "<td background='Navi/barredroite.gif'><img src='Navi/barredroite.gif' width='5'></td>";
echo "</tr>";
echo "<tr>";
echo "<td width='5' height='7'><img src='Navi/coinBG.gif' width='5' height='7'></td>";
echo "<td background='Navi/barredessous.gif'><img src='Navi/barredessous.gif' height='7'></td>";
echo "<td width='5' height='7'><img src='Navi/coinBD.gif' width='5' height='7'></td>";
echo "</tr>";
echo "</table>";
}
?>
Je mets le fichier include:
<?
echo "<table width='100%' border='0' cellpading='0' cellspacing='0'>";
echo "<tr><td>";

// on récupère les paramétres 

$query= "SELECT * FROM $table9";
$resultat= mysql_query ($query);

while ($ligne=mysql_fetch_array($resultat)){
	
	$vitesse = $ligne ["Vitesse"];
	$sens = $ligne ["Sens"];
}
echo "<MARQUEE behavior='scroll' direction='$sens' scrolldelay='$vitesse' onmouseover=\"this.stop()\" onmouseout=\"this.start()\">";

// on récupère les messages

$query= "SELECT * FROM $table8 ORDER BY `Ordre` ASC";
$resultat= mysql_query ($query);

while ($ligne=mysql_fetch_array($resultat)){
	
	$message = $ligne ["Message"];
	
	echo "$message<br><br><br><br>";
}

echo "</marquee>";
echo "</tr></td>";
echo "</table>";
?>
à l'affichage j'ai bien le cadre, mais au lieu d'avoir mon texte qui défile j'ai la valeur 1 qui est retournée...

A votre bon coeur.
Merci

Mammouth du PHP | 19672 Messages

02 août 2005, 23:29

Ton premier bout de code ne signifie pas grand chose: si tu veux le contenu du fichier, tu devrais explorer les fonction de manipulation de fichier : fopen() par exemple. Il semblerai que ça affiche "1" parce que le retour que tu obtiens de l'initialisation de ta variable est "true" qui est converti en "1"... qui s'affiche dans ta balise <marquee>

Ensuite une chose : si tu veux optimiser ton code et le rendre en plus nettement plus facile à lire, sépare correctement PHP et HTML;

Code te ta fontion:
<?
function cadre($variable)
{
?>
<table align="center" width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="5" height="7"><img src="Navi/coinHG.gif" width="5" height="7"></td>
    <td background="Navi/barredessus.gif"><img src="Navi/barredessus.gif" height="7" width="100%"></td>
    <td width="5" height="7"><img src="Navi/coinHD.gif" width="5" height="7"></td>
  </tr>
  <tr>
    <td background="Navi/barregauche.gif"><img src="Navi/barregauche.gif" width="5"></td>
    <td bgcolor="#2059A6"><?php echo($variable); ?></td>
    <td background="Navi/barredroite.gif"><img src="Navi/barredroite.gif" width="5"></td>
  </tr>
  <tr>
    <td width="5" height="7"><img src="Navi/coinBG.gif" width="5" height="7"></td>
    <td background="Navi/barredessous.gif"><img src="Navi/barredessous.gif" height="7"></td>
    <td width="5" height="7"><img src="Navi/coinBD.gif" width="5" height="7"></td>
  </tr>
</table>
<?php
}
?>
Ensuite le code pour l'affichage :
<table width="100%" border="0" cellpading="0" cellspacing="0">
  <tr>
    <td>
<?
// on récupère les paramétres
$query= "SELECT Vitesse, Sens FROM ". $table9;
$resultat= mysql_query ($query);

while ($ligne=mysql_fetch_array($resultat))
{
    $vitesse = $ligne ["Vitesse"];
    $sens = $ligne ["Sens"];
}
?>
      <marquee behavior="scroll" direction="$sens" scrolldelay="$vitesse" onmouseover="this.stop();" onmouseout="this.start();">
<?php
// on récupère les messages

$query= "SELECT Message FROM ". $table8 ." ORDER BY `Ordre` ASC";
$resultat= mysql_query ($query);
while ($ligne=mysql_fetch_array($resultat))
{
    $message = $ligne ["Message"];
    echo($message ."<br>\n<br>\n<br>\n<br>\n";
}
?>
      </marquee>
    </tr>
  </td>
</table>
C'est plus propre comme ça. Ensuite note les petites corrections que j'ai faites: si tu n'as besoin que de la valeur d'un ou deux champ dans une table de ta base, il est inutile de faire un SELECT * : SELECT champ est largement suffisant et ça améliore aussi les performances.

Ré-essaye comme ça et reviens voir si tu as toujours le même problème.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 5 Messages

02 août 2005, 23:33

Merci,

Je ferais un test demain...