PHP/mysql - souci affichage de données dans tableau HTMl

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP/mysql - souci affichage de données dans tableau HTMl

par Hermès » 30 mars 2006, 18:08

Non ça n'est pas à cause de ça je pense...

extract()

par Maitrepylos » 30 mars 2006, 17:59

Tu faisais appel a des variables qui n'existes pas
echo ('<tr><td><H1>'.$nomcontact.':</h1></td> <td>' .$telcontact.'</td></tr>'); 

dans ce cas c'est la tableau $ligne qu'il fallait appeler

ok merci c bon mais ...

par Sana » 30 mars 2006, 17:53

Merci ca marche,
Mais pourrais tu me dire où etait mon erreur ?
Je la voit tjs pas en faite ;)
ce n'etais que l'instruction extract($ligne); qui etait de trop peut etre.
Merci

par Maitrepylos » 30 mars 2006, 17:25

Bonjour,

Essaye ceci
<div id="contenu">
<h1>Contacts : </h1>
<?php $requete="SELECT nomcontact,telcontact FROM annuaire ORDER BY nomcontact";
$res=mysql_query($requete);
$nbLignes=mysql_num_rows($res);
?>
<table width="100%" >
nb de contacts : <?php echo $nbLignes ?><br>
<?php
while ($ligne=mysql_fetch_array($res)){

echo ('<tr><td><H1>'.$ligne['nomcontact'].':</h1></td> <td>' .$ligne['telcontact'].'</td></tr>');
echo('<tr><td colspan="2"><hr></td></tr>');
}
?>
</table>
</div> 

PHP/mysql - souci affichage de données dans tableau HTMl

par Sana » 30 mars 2006, 16:02

Bonjour,
Je suis a nouveau un debutant en PHP, et oui ca fait deja plusieurs fois que j'essai PHP ;)
Bref, j'ai un petit souci que je vous explique ci dessous,
J'ai reussi a le resoudre en bidouillant mais j'aimerais qd meme bien savoir où est l'erreur.

je recupere des données dans une table (sous mysql) je veux afficher le resultat dans un tableau HTMl.
Le souci est qu'il manque une des données dans le tableau ...
j'ai 5 enregistrements, et le tableau ne m'en affiche que 4 ...
J'ai bidouillé en affichant manuellement (hors de la boucle while) le 1 er enregistrement...

Mon code :
<div id="contenu">
	<h1>Contacts : </h1>
		 <?	$requete="SELECT nomcontact,telcontact FROM annuaire ORDER BY nomcontact";
			$res=mysql_query($requete);
			$ligne=mysql_fetch_array($res);
			$nbLignes=mysql_num_rows($res);
			
			echo ('<table width="100%" >');
			echo('<tr><td>'.$ligne[1].':</h1></td> <td>'.$ligne[2] .'</td></tr>');  [color=orange]// pour forcer l'affichage du 1 er enregistrement![/color]
			
			echo('nb de contacts : '.$nbLignes.'<br>');
			
			while ($ligne=mysql_fetch_array($res)) 
			
				{extract($ligne);
				
				echo ('<tr><td><H1>'.$nomcontact.':</h1></td> <td>' .$telcontact.'</td></tr>');
				echo('<tr><td colspan="2"><hr></td></tr>');
				}
			echo('</table>'); 
		 ?>
</div>
Ma table :

Code : Tout sélectionner

dcontact nomcontact telcontact 13 toto 0682549556 30 personne 0011223344 17 essai 0002225566 26 ab 8596321470 29 paul 12345678900
Ce qui donne dans ma page HTML :

Code : Tout sélectionner

Contacts : nb de contacts : 5 ab: 8596321470 // afficher hors de la boucle while essai: 0002225566 paul: 12345678900 personne: 0011223344 toto: 0682549556

Cordialement
Sana

Ps : j'ai essayé avec une boucle for, mais sans reussite :
<?	$requete="SELECT nomcontact,telcontact FROM annuaire ORDER BY nomcontact";
			$res=mysql_query($requete);
			$ligne=mysql_fetch_array($res);
			$nbLignes=mysql_num_rows($res);
			
			echo ('<table width="100%" >');
			//echo('<tr><td><H1> '.$ligne[1].':</h1></td> <td>'.$ligne[2] .'</td></tr>');
			echo('<tr><td colspan="2"><hr></td></tr>');
			echo('nb de contacts : '.$nbLignes.'<br>');

			for($i=0;$i<$nbLignes;$i++)
				{
				$ligne=mysql_fetch_array($res);
				echo ('<tr><td><H1> '.$ligne['nomcontact'].':</h1></td> <td>' .$ligne['telcontact'].'</td></tr>');
				echo('<tr><td colspan="2"><hr></td></tr>');
				}
			echo('</table>'); 
		 ?>