Page 1 sur 6

Problème affichage résultats sql

Posté : 14 nov. 2010, 23:20
par kilian78
Bonsoir,

je souhaite afficher tous les résultat de ma base, le problème c'est que je n'ai que le dernier résultat qui s'affiche...
Voici mes codes :

mon fichier fonctions.php
  if (isset($_SESSION['utilisateur'])) {
      $utilisateur = $_SESSION['utilisateur'] ;
      $user = rech_user_enregistrer($utilisateur);

  }


function rech_user_enregistrer($login_user)
{
  $conn = db_connect();
  $sql = "SELECT * FROM offre  where login_user = '$login_user'";
  $result = mysql_query($sql, $conn);
  return(mysql_fetch_array($result));
}
ET ma page d'affichage :

if ($_SESSION['utilisateur']) 
	{
 include_once("include_fns.php");
 $utilisateur = $_SESSION['utilisateur'];
	
 $user = rech_user_enregistrer($utilisateur);
	 if ($_SESSION['utilisateur'] ) {
		 		
//  si NULL
	
	if ($user[publier] == NULL) {

			echo "<hr>";

	echo "&nbsp; à valider <br>&nbsp; <b style='color:#F00'>".stripSlashes(htmlentities($user[titre]))."</b>"; 
	}
	else {

echo "<hr>";
//  si non NULL
	echo "&nbsp;Validé";
	echo "<li class=\"a-blanc\"><a href=\"index.php?affichage=articlepefac&id=".stripslashes(mb_strtoupper($user[id]))."\">".stripSlashes(htmlentities($user[titre]))."</a></li>"; }
	
	echo "<br>";

Re: Problème affichage résultats sql

Posté : 14 nov. 2010, 23:36
par xTG
mysql_fetch_array() te retourne le résultat suivant en fait.
Donc tu ne retournes qu'un seul résultat c'est un fait.

Créés un tableau avant de retourner le résultat dans ta fonction :
$tab = array();
while( $tab[] = mysql_fetch_array($result) );
return $tab;

Re: Problème affichage résultats sql

Posté : 14 nov. 2010, 23:43
par kilian78
Merci :D .

ça :
$tab = array();
return $tab;
je dois l'intégrer à mon fihcier fonction.php?

et ça :
while( $tab[] = mysql_fetch_array($result) );
dans ma page d'affichage ?

que dois-je mettre entre les [] du while ?

Re: Problème affichage résultats sql

Posté : 14 nov. 2010, 23:50
par xTG
En fait je n'ai réécris que la fin de ta fonction.

Les crochets indiquent qu'à chaque itération une nouvelle clé sera générée toute seule.

En gros ce code :
for($i=1; $i<=5; $i++)
  $tab[] = $i;
Formera cet array :
array( 0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5 )

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 00:04
par kilian78
je suis désolé je ne comprends pas ou je dois placé ce que tu m'as écrit... :(

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 11:29
par kilian78
Bonjour,
est-ce que quelqu'un pourrait me dire ou je dois intégrer la nouvelle partie de code dans mon code...?
Merci.

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 12:09
par charabia
En fait je n'ai réécris que la fin de ta fonction.
xTG t'as tout dit là

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 12:22
par kilian78
ça se place donc comme ça ?
function rech_user_enregistrer($login_user)
{
  $conn = db_connect();
  $sql = "SELECT * FROM offre  where login_user = '$login_user'";
  $result = mysql_query($sql, $conn);
  return(mysql_fetch_array($result));
$tab = array();
while( $tab[] = mysql_fetch_array($result) );
return $tab;
}
et je n'ajoute rien dans ma page d'affichage ...?

Merci

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 12:25
par stealth35
ca te choque pas de faire 2 mysql_fetch_array et 2 return ?

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 12:47
par kilian78
je dois l'écrire comme ça ?
function rech_user_enregistrer($login_user)
{
  $conn = db_connect();
  $sql = "SELECT * FROM offre  where login_user = '$login_user'";
$tab = array();
while( $tab[] = mysql_fetch_array($result) );
return $tab;
}
et ne rien changer sur ma page d'affichage ...?

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 14:31
par charabia
Fais des tests...

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 15:24
par kilian78
rien ne fonctionne...

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 15:30
par charabia
ça ne nous aide pas beaucoup. Des détails sur ton résultat : erreur...etc
while( $tab[] = mysql_fetch_array($result) );
return $tab;
}
Sinon tu ne remarques rien à ce niveau ?

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 15:59
par kilian78
quand je fais ça :
function rech_user_enregistrer($login_user)
{
  $conn = db_connect();
  $sql = "SELECT * FROM offre  where login_user = '$login_user'";
$tab = array();
while( $tab[] = mysql_fetch_array($result) );
return $tab;
}
ça ne change rien.
En fait il n'y a pas d'erreur, soit les éléments s'affichent soit il ne s'affichent pas... tout dépend de ce j'écris dans la fonction... lorsque ça s'affiche, seul le dernier enregistrement apparaît...

Re: Problème affichage résultats sql

Posté : 15 nov. 2010, 16:00
par stealth35
ce que je comprend pas c'est que tu peux avoir plusieurs personne du même login ?