Php affichage double requete dan seul tableau

Fermé
roy mustang Messages postés 110 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 2 juin 2009 - 20 mai 2009 à 02:18
roy mustang Messages postés 110 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 2 juin 2009 - 21 mai 2009 à 12:35
Bonjour,
problème de syntaxe??? ce script ne m'a pas permit d'obtenir ce que je veux afficher le resultat d'une double requête dans un seul tableau, et ça marchera uniquement pour la première colonne, ou j'aurais tous mes $ligne1["des_typ_mat_pre"] autrement dés la 2ème colonne ça commence l'anarchie (aucun ordre dans les valeurs affichés) sinon mes requête sont fonctionnelle je les ai testé sur phpmyadmin!!
while ($ligne2=mysql_fetch_array($result2))
	 	{
	 while($ligne1=mysql_fetch_array($result1))
	 {
	 if($ligne1['code_typ_mat_pre']==$ligne2['code_typ_mat_pre']){
	  echo'<tr><td>'.$ligne1["des_typ_mat_pre"].'</td><td>'.$ligne2["pr_ttc"].'</td></tr>';
	  }
				else
				{
				echo'<tr><td>'.$ligne1["des_typ_mat_pre"].'</td><td>0</td></tr>';
				}		
}
}	
	mysql_close();
	  ?>

merci pour votre aide j'en ai besoin
A voir également:

6 réponses

bah! pkoi ne rassemble tu pas tes deux requêtes en une seule (avec un left outer join) ?
0
roy mustang Messages postés 110 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 2 juin 2009 2
20 mai 2009 à 03:20
euh voici mes requêtes
 $requete_gen="select * from type_matiere_premiere,matiere_premiere where        type_matiere_premiere.code_mat_pre=matiere_premiere.code_mat_pre"; $result1=mysql_query($requete_gen)OR die(mysql_error());

et la 2ème qui en relation avec une variable globale $n_cat
$requete_consom="select * from article,consommer,type_matiere_premiere,categorie,entree_stock where 				
	 entree_stock.code_typ_mat_pre=type_matiere_premiere.code_typ_mat_pre and article.n_cat=categorie.n_cat and article.n_art=consommer.n_art and consommer.code_typ_mat_pre=type_matiere_premiere.code_typ_mat_pre and categorie.n_cat='$n_cat'";

je n'ai aucune idée comment utiliser left inner join et en quoi ça me mènera!!
et je crois aussi pour utiliser une telle chose l'attribut de la jointure
code_typ_mat_pre
devra désigné en temps que une clef étrangère dans la table mysql qui hérite n'es ce pas??
aucune idée aussi comment le faire!
0
re

je suis désolé, mais j'abandonne.

vouloir avancer sur deux curseurs en même temps relève selon moi plus de la programmation en cobol que d'une programmation au goût du jour. et comme en plus tu disposes d'un sgbd puissant, ça m'énerve encore plus.

l'outer join devait selon moi rapatrier des colonnes de matiere_premiere pour compléter le second curseur (pour ne pas avoir à gérer cette double progression)
mais je ne vois pas quelle structure de données il faut obtenir, et mes conjectures me semblent toutes farfelues...
je me retrouve dans l'anarchie évoquée dans ton premier post et ça me va pas :-(
0
roy mustang Messages postés 110 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 2 juin 2009 2
20 mai 2009 à 22:28
en effet pebkac je devrais dans ma première requête faire appel à tous les enregistrements dans la 2ème c'est uniquement celle qui sont en relation avec une variable globale $n_cat
voici quelques structures de mes tables qui sont en cause
#
# Structure de la table `type_matiere_premiere`
#
 
CREATE TABLE type_matiere_premiere (
  code_typ_mat_pre int(20) NOT NULL auto_increment,
  code_mat_pre varchar(20) NOT NULL default '',
  couleur varchar(20) NOT NULL default '',
  des_typ_mat_pre varchar(20) NOT NULL default '',
  code_four varchar(20) NOT NULL default '',
  PRIMARY KEY  (code_typ_mat_pre)
) TYPE=MyISAM;
#
# Structure de la table `consommer`
#
CREATE TABLE consommer (
  qte_mat_pre varchar(20) NOT NULL default '',
  code_typ_mat_pre varchar(20) NOT NULL default '',
  n_art varchar(20) NOT NULL default '',
  PRIMARY KEY  (code_typ_mat_pre,n_art)
) TYPE=MyISAM;
#
# Structure de la table `entree_stock`
#
CREATE TABLE entree_stock (
  code_stock int(20) NOT NULL auto_increment,
  code_typ_mat_pre int(20) NOT NULL default '0',
  pr_ttc float NOT NULL default '0',
  qte_stock float NOT NULL default '0',
  PRIMARY KEY  (code_stock,code_typ_mat_pre)
) TYPE=MyISAM;
#
# Structure de la table `article`
#
CREATE TABLE article (
  n_art int(20) NOT NULL auto_increment,
  lib_art varchar(20) NOT NULL default '',
  prof_art varchar(20) NOT NULL default '',
  long_art varchar(20) NOT NULL default '',
  larg_art varchar(20) NOT NULL default '',
  haut_art varchar(20) NOT NULL default '',
  tum_art varchar(20) NOT NULL default '',
  tmc_art varchar(20) NOT NULL default '',
  n_clt varchar(20) NOT NULL default '',
  n_bon_liv varchar(20) NOT NULL default '',
  remise_art varchar(20) NOT NULL default '',
  n_cat varchar(20) NOT NULL default '',
  qte_art varchar(20) NOT NULL default '',
  PRIMARY KEY  (n_art,n_clt,n_bon_liv,n_cat)
) TYPE=MyISAM;

j'ai besoin quand même d'une aide :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
re

désolé, mais tes tables sont pas complètes : tu références matiere_pemiere dans un de tes posts et cette table n'est pas listée dans tes créations de tables.
il y a aussi un truc qui me chagrine : consommer associe des articles et des types de matière première alors que candidement, j'aurais dit que ça associe des articles et des matières premières

je te propose de "dessiner" la grille que tu souhaites avoir, ensuite tu vérifies d'où proviennent les données qui remplissent ta grille et comment ton moteur de données va les récupérer (dans Merise, c'est l'étape de la Validation). Si ça coince encore, vient donc nous "dessiner" la grille que tu souhaites avoir.

à bientôt

PS: en me relisant (et te relisant) j'ai l'impression que tu as transformé matiere_premiere <-> type_matiere_premiere en une seule table (on y trouve code_mat_pre & code_type_mat_pre), un peu comme si matiere_premiere avait absorbe type_matiere_premiere. pourquoi ?
0
roy mustang Messages postés 110 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 2 juin 2009 2
21 mai 2009 à 12:35
salut pebkac merci vraiment pour votre disponibilité en effet mon tableau de bord énorme et ces structures de quelque uns de mes tables mysql que j'ai cité étaient selon moi les plus importantes en tous pour commencer mais bon vous avez raison j'aurai du être encore plus précis
bon je donne encore la structure des tables qui manquent
#
# Structure de la table `matiere_premiere`
#

CREATE TABLE matiere_premiere (
  code_mat_pre int(20) NOT NULL auto_increment,
  des_mat_pre varchar(20) NOT NULL default '',
  PRIMARY KEY  (code_mat_pre)
) TYPE=MyISAM;
#
# Structure de la table `categorie`
#

CREATE TABLE categorie (
  n_cat int(20) NOT NULL auto_increment,
  lib_cat varchar(20) NOT NULL default '',
  n_f_prod varchar(20) NOT NULL default '',
  id_typ_cat varchar(20) NOT NULL default '',
  desc_typ_trav varchar(20) NOT NULL default '',
  PRIMARY KEY  (n_cat,n_f_prod,id_typ_cat)
) TYPE=MyISAM;

la table consommer associe bien le numéro d'article et les type matière première et comme je vous ai dis j'aurais besoin d'afficher tous les enregistrement de type_matiere_premiere.des_typ_mat_pre dans la première collone alors que la deuxième l'affichage sera selon la condition vérifié ou non!
merci pebkac!
0