Problème affichage résultats sql

Eléphant du PHP | 70 Messages

14 nov. 2010, 23:20

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>";

ViPHP
xTG
ViPHP | 7331 Messages

14 nov. 2010, 23:36

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;

Eléphant du PHP | 70 Messages

14 nov. 2010, 23:43

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 ?

ViPHP
xTG
ViPHP | 7331 Messages

14 nov. 2010, 23:50

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 )

Eléphant du PHP | 70 Messages

15 nov. 2010, 00:04

je suis désolé je ne comprends pas ou je dois placé ce que tu m'as écrit... :(

Eléphant du PHP | 70 Messages

15 nov. 2010, 11:29

Bonjour,
est-ce que quelqu'un pourrait me dire ou je dois intégrer la nouvelle partie de code dans mon code...?
Merci.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 nov. 2010, 12:09

En fait je n'ai réécris que la fin de ta fonction.
xTG t'as tout dit là

Eléphant du PHP | 70 Messages

15 nov. 2010, 12:22

ç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

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 12:25

ca te choque pas de faire 2 mysql_fetch_array et 2 return ?

Eléphant du PHP | 70 Messages

15 nov. 2010, 12:47

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 ...?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 nov. 2010, 14:31

Fais des tests...

Eléphant du PHP | 70 Messages

15 nov. 2010, 15:24

rien ne fonctionne...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 nov. 2010, 15:30

ç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 ?

Eléphant du PHP | 70 Messages

15 nov. 2010, 15:59

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...

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 16:00

ce que je comprend pas c'est que tu peux avoir plusieurs personne du même login ?