Page 1 sur 1

Problème avec l'affichage de la premiere ligne

Posté : 11 avr. 2005, 11:51
par Darkbibou
Voici mon code qui affiche chaque ligne d'enregistrement d'une base sous forme de tableau après avoir lancé la requête de sélection de tt les champs :

Mon probleme est que la première ligne de la base ne s'affiche pas :

<HTML>


<HEAD>

<TITLE> Affichage des données de la table gestion_machine </TITLE>

</HEAD>


<BODY>

<BR>
<H2 align="center">Voici la liste des machines répertoriées</H2>
<BR>

Cliquez sur les l'adresse IP pour accéder à la page d'acceuil de l'imprimante ou pour prendre la main sur la machine !
<BR><BR> <!-- Sauter une ligne -->
Sinon cliquez sur le lien ci dessous pour accèder au formulaire de recherche :
<BR><BR>
<A href="Recherche_Machine.html">Formulaire de recherche</A>
<BR><BR>

<!-- Debut du script en php -->
<?
//connexion à la base de données:
$liendb=mysql_connect("localhost","root","")or die("la connexion à la base a échoué");
// selection de la base à remplir:
mysql_select_db("technique")or die("Impossible de se connecter à la base de données");
;

// requête de contrôle de l'affichage
$sql="SELECT * FROM gestion_machine";

$resultat=mysql_query($sql);
$lgn=mysql_num_rows($resultat);
$nbcol=mysql_num_fields($resultat);

echo("<TABLE>");

/*affichage des données*/
while($tab=mysql_fetch_array($resultat))/*crée un tableau de variable a partir du résultat de la requête*/
{
echo"<TABLE border=1>";
for($i=0;$i<$lgn;$i++)
{

$affchamp = mysql_fetch_row($resultat);

echo"<TR>";
echo"<TD>".$affchamp[0]."</TD>";
echo"<TD>".$affchamp[1]."</TD>";
echo"<TD>".$affchamp[2]."</TD>";
if ($affchamp[5]=="Imprimante"){
$url2 = "http://"."$affchamp[3]";
echo"<TD>"."<A href='".htmlentities($url2)."'>$affchamp[3]</A>"."</TD>";
}elseif ($affchamp[5]=="Ordinateur bureau"){
$url2 = "http://"."$affchamp[3]".":5800";
echo"<TD>"."<A href='".htmlentities($url2)."'>$affchamp[3]</A>"."</TD>";
}elseif ($affchamp[5]=="Ordinateur portable"){
$url2 = "http://"."$affchamp[3]".":5800";
echo"<TD>"."<A href='".htmlentities($url2)."'>$affchamp[3]</A>"."</TD>";
}else{
echo"<TD>".$affchamp[3]."</TD>";
}
echo"<TD>".$affchamp[4]."</TD>";
echo"<TD>".$affchamp[5]."</TD>";
echo"<TD>".$affchamp[6]."</TD>";
echo"</TR>";
}

echo"</TABLE>";

}
// Fermeture de la base
mysql_close($liendb);
?>
<!-- fin du script en php -->

</BODY>


</HTML>

Si quelqu'un voit où se trouve l'erreur qui empeche d'afficher la première ligne alors merci d'avance :D

Posté : 11 avr. 2005, 14:09
par Darkbibou
SVP j'ai besoin d'aide, j'arrive pas à me debloquer, la premiere ligne ne s'affiche pas :(

Posté : 11 avr. 2005, 14:15
par flitox
Tu n'as pas besoin d'une boucle for dans ton while.

Enlève la surtout si comme je le constate, tu ne l'utilises pas en te servant du $i qui s'incrémente.

Posté : 11 avr. 2005, 14:30
par Darkbibou
Dsl si j'enlève la boucle fort la table qui s'affiche est tt déformée et il manque encore plus de ligne :S

Quelqu'un à une autre idée ?

Posté : 11 avr. 2005, 14:39
par flitox
J'ai refais ton code et j'ai modifié pas mal de choses car tu t'emmêles complètement dans l'affichage de texte et de variables sur la même ligne.

Tu fermes/ouvres les double quotes au mauvais endroit et tu fais des blocs de code que j'ai aéré pour une meilleure compréhension :
<HTML>
<HEAD>
<TITLE> Affichage des données de la table gestion_machine </TITLE>
</HEAD>

<BODY>

<BR>
<H2 align="center">Voici la liste des machines répertoriées</H2>
<BR>

Cliquez sur l'adresse IP pour accéder à la page d'acceuil de l'imprimante ou pour prendre la main sur la machine !
<BR><BR> <!-- Sauter une ligne -->
Sinon cliquez sur le lien ci dessous pour accèder au formulaire de recherche :
<BR><BR>
<A href="Recherche_Machine.html">Formulaire de recherche</A>
<BR><BR>

<!-- Debut du script en php -->
<?
//connexion à la base de données:
$liendb=mysql_connect("localhost","root","")or die("la connexion à la base a échoué");
// selection de la base à remplir:
mysql_select_db("technique")or die("Impossible de se connecter à la base de données");

// requête de contrôle de l'affichage
$sql="SELECT * FROM gestion_machine";

$resultat = mysql_query($sql);
$lgn = mysql_num_rows($resultat);
$nbcol = mysql_num_fields($resultat);

echo "<TABLE>";

/*affichage des données*/
while($tab = mysql_fetch_array($resultat))/*crée un tableau de variable a partir du résultat de la requête*/
{
	echo "<TABLE border=1>";
	
	$affchamp = mysql_fetch_row($resultat);
	
	echo "<TR>";
	echo "<TD>".$affchamp[0]."</TD>";
	echo "<TD>".$affchamp[1]."</TD>";
	echo "<TD>".$affchamp[2]."</TD>";
	if ($affchamp[5] == "Imprimante")
		{
			$url2 = "http://".$affchamp[3];
			echo"<TD><A href='".htmlentities($url2)."'>".$affchamp[3]."</A></TD>";
		}
	elseif ($affchamp[5] == "Ordinateur bureau")
		{
			$url2 = "http://".$affchamp[3].":5800";
			echo"<TD><A href='".htmlentities($url2)."'>".$affchamp[3]."</A></TD>";
		}
	elseif ($affchamp[5] == "Ordinateur portable")
		{
			$url2 = "http://".$affchamp[3].":5800";
			echo "<TD><A href='".htmlentities($url2)."'>".$affchamp[3]."</A></TD>";
		}
	else
		{
			echo "<TD>".$affchamp[3]."</TD>";
		}
		
	echo "<TD>".$affchamp[4]."</TD>";
	echo "<TD>".$affchamp[5]."</TD>";
	echo "<TD>".$affchamp[6]."</TD>";
	echo "</TR>";

	echo "</TABLE>";

}
// Fermeture de la base
mysql_close($liendb);
?>
<!-- fin du script en php -->

</BODY>



Posté : 11 avr. 2005, 15:12
par Darkbibou
Merci mais je vient juste de résoudre mon problème :)

Posté : 18 avr. 2005, 10:12
par D1n2
Comment as tu resolu ton pb car g le meme et je ne vois po comment faire?