Recuperer donnée mysql dans tableau php [Résolu]

Signaler
Messages postés
20
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
28 octobre 2007
-
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013
-
Hello tout le monde, J'ai un petit soucis,(qui n'en a pas) avec un de mes codes en php. Je vous explique.

Je dois crée une page de gestion de code pour des produits avec une
famille, une sous famille et le code correspondant. Dans une Famille,
il peu y'avoir plusieur article, et donc plusieur code different.

J'ai donc une page qui me permet d'ajouter dans une base de donnée les information utiles article par article.

Ensuite je veux que ma page principale affiche les données récuperés
dans la Bdd, et me les met sous forme de tableau, qu'il range les
grande familles par ordre alphabetique, et qu'il me fasse un tableau
par famille avec toutes les sous familles.

exemple.

---------------------------------------

|  Salade         |  Blonde         | 5687    |

|                     |  Frisé            | 4568    |

---------------------------------------

---------------------------------------


|  Tomate       |  Ronde          | 1234    |


|                    | Grappe          | 1244    |


---------------------------------------


Et ainsi de suite.


Voici ma source pour ma page index.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Index</title>

</head>








  <? include('header.php')?>



   ----

      Grande Famille Principal,

      Sous Famille ou vari&amp;eacute;t&amp;eacute;s,

      Code Produit,

   




  


  

  <?

require("config.inc.php3");


$db = @mysql_connect("$dbhost", "$dblogi", "$dbpass") OR
DIE("

<center>Désolé, la Base est Down
...</center>");

@mysql_select_db("$dbbase",$db) OR
DIE("

<center>Désolé, la Base n'est pas accessible
...</center>");


$req = MYSQL_QUERY("SELECT * FROM $TBL_code ORDER BY id DESC LIMIT 0, $limit_news");

$res = MYSQL_NUM_ROWS($req);


$i=0;

WHILE($i!=$res)

{

$id         = mysql_result($req,$i,"id");

$GdeFamille = stripslashes(trim(mysql_result($req,$i,"GdeFamille")));

$SsFamille  = stripslashes(trim(mysql_result($req,$i,"SsFamille")));

$Code       = stripslashes(trim(mysql_result($req,$i,"Code")));


?>

  

  <?

/*

<script language="JavaScript">

function PrintNews(data){

window.open('print_news.php3?news='+data,'Imprimer','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=1,resizable=0,width=620,height=450,left=0,top=0');

}

</script>*/?>

  

  

  

  </table>

  

  </td>

  </tr>



    ----

      <? echo $GdeFamille ?>,

      <? echo $SsFamille ?>,

      <? echo $Code ?>,

   


<?

 $i++;

}

?>





     <? include('footer.php');

 ?>

  



</html>

16 réponses

Messages postés
20
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
28 octobre 2007

En tout les cas je te remercie de ton aide.

Je classe le sujet comme reponse accepté, mais si quelqu'un connais la soluce.
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

operso je ferais la requete de la façon suivante:

d'abord tu fais un select distinct famille from...order by famille asc pour avoir la liste des différentes familles

ensuite pour chaque famille recuperee ainsi tu fais un select * from produits where famille=famille_recuperee_avant order by nom asc

voila
Messages postés
20
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
28 octobre 2007

J' ai pas tout a fais bien saisi le truc, je ne suis que debutant, j'arrive a faire des trucs assez complexe mais je ne connais pas en tous sur tous au niveau du mysql.
Si tu peu m'eclaircir un p'tit peu.
Merci
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

enf ait tu peux aussi le faire en une seule requete... tout est a faire avec le classement de tes resultats (order by mon ami...)

"SELECT * FROM $TBL_code ORDER BY GdeFamille,SsFamille ASC LIMIT 0, $limit_news"
Messages postés
20
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
28 octobre 2007

Pour la mise en ordre alphabetique sa fonctionne je te remerci.
Maintenant je voudrai savoir s'il était possible de n'avoir qu'une seule fois marquée la grande famille avec a coté les sous famille correspondante.
Je m'explique, Si j'ai plusieur sorte de salade, dans mon tableau j'ai une ligne marqué salade avec sa sous famille, la ligne suivante me remet salade avec son autre sous famille.
Est il possible qu'il ne marque qu'une seule foi salade,  et me fasse  autant de ligne qu'il n'ya de sous variété?
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

soit tu le fais comme expliqué plus haut en 2 requetes soit tu ruses...

la ruse c est ca:

au debut tu defini $gfamille='';
ensuite tu fais:

if($row['GdeFamille']!=$gfamille){
// c est la premier foi ke t as cette famille
echo $row['GdeFamille'];
$gfamille=$row['GdeFamille']
}
Messages postés
20
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
28 octobre 2007

Ca me met des erreur, j'ai fait un define ($gfamille='');
Puis j'ai mis le code que tu ma donnée, et voici ce qu'il me retourne.
Wrong parameter count for define() in /mnt/143/sda/9/f/peryann2002/gestion/index.php
Est ce que tu voi le pourquoi de la chose, est ce que ce serai pas le define qui ne serai pas bon?
En tout cas je te remerci pour ton aide
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

je sais pas,. j utilise pas define, t en as pas besoin ds ce cas la
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

en plus on veut pas une constante...
Messages postés
20
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
28 octobre 2007

non, c'est une variable, du moin je pense
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

bah du coup c est normal de pas utiliser define, qui est justement pour definir une constante...
Messages postés
20
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
28 octobre 2007

Le truc c'est que le tableau devrai avoir une seule ligne pour une meme grande famille, mais un ligne ne multiligne afin d'avoir les sous familles.
Messages postés
20
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
28 octobre 2007

Tient je met le lien si tu veux voir ce que ca donne.
Ici
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

il faut mettre ça dans ta premiere colonne, comme ca soit t as le nom de la famille soit un espace

if($row['GdeFamille']!=$gfamille){
// c est la premier foi ke t as cette famille
echo $row['GdeFamille'];
$gfamille=$row['GdeFamille']
}else{
echo " "
}
Messages postés
20
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
28 octobre 2007

Quand je met le code que tu vien de me donner je n'ai plus rien d'ecrit dans mes grandes familles.
C'est comme si pour chaque ligne il passe directement au else.
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

verifie le nom de la colonne (GdeFamille), car s'il est faux, t as forcement que c'est egal avec la chaine vide donc else...