Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
790 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  2 table dans 1 tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

2 table dans 1 tableau

n°1087844
kontas
Photographe amateur daltonien
Posté le 18-05-2005 à 14:20:00  profilanswer
 

Salut a tous.
 
J'essaye en vain de faire un tableau qui permet d'afficher des données provenant de 2 tables differentes (c'est la meme base :O)
 
Les 2 tables:
 
TABLE1:
id_pc
num_serie
nom_pc
salle
statut (ok/en panne)
 
TABLE 2:
id_panne
date_panne
date_reparation
num_serie
declarant
detail
etat (ok/en panne)
 
Le but étant d'afficher les pc qui ont dans la table 1, statut=ok et dans la table2, etat=ok. le truc c'est qu'il y'a une concordance avec le num_serie qui est commun au deux tables.
 
ce qui devrait donnée une fois la requete SQL traité:
 


|Id panne|Nom du PC|Salle|Date de Réparation | Date de panne       | declarant | Numero de serie  | Détail | statut  
|   1    |  pc1    |  G1 |2005-05-17 16:15:37| 2005-05-09 14:07:54 | yoann     | 12345            | Cassé  | OK      
|   3    |  pc2    |  G2 |2005-05-17 16:55:03| 2005-05-17 16:54:51 | yoann     | 654321           | HS     | OK      


Donc on peut observé que le l'id_panne, date de réparation, date de panne, declarant, detail provient de la table2, mais que le nom_pc provient de la table1.
 
 
Le souci c'est que mon resultat actuel n'est pas vraiment au point :lol:.
Voila le resultat
 


 
|Id panne | Nom du PC | Date de Réparation |   Date de panne     | déclarant | Numero de serie |  Détail | Statut  
|1        | pc1       |2005-05-17 16:15:37 | 2005-05-09 14:07:54 | yoann     |12345            |cassé    | OK  
|3        | pc1       |2005-05-17 16:55:03 | 2005-05-17 16:54:51 | yoann     |12345            | HS      | OK
|1        | pc2       |2005-05-17 16:15:37 | 2005-05-09 14:07:54 | yoann     |2512040102       |cassé    | OK
|3        | pc2       |2005-05-17 16:55:03 | 2005-05-17 16:54:51 | yoann     |2512040102       | HS      | OK
 


 
Comme vous pouvez le voir il a tous mélangé :/
 
 
Voici ma requete SQL
 

Code :
  1. include ("config.inc.php" );
  2. $db = mysql_connect($global['serveur'], $global['loginbdd'], $global['passbdd']);
  3.   mysql_select_db($global['nombdd'],$db);
  4.    
  5.   $query="SELECT * FROM panne, parc_pc WHERE `panne`.etat='ok' LIMIT 0, 10";
  6. //AND(`parc_pc`.statut='ok')
  7.   $req = mysql_query($query) or die ('Erreur SQL !<br>'.$query.'<br>'.mysql_error());
  8.   $i=0;
  9.  
  10.   while($data = mysql_fetch_array($req))
  11.    
  12. {
  13.      
  14.     echo '<tr bgcolor=#c6d6e7>'; 
  15.     echo '<td>'.$data['id_panne'].'</td>';
  16.     echo '<td>'.$data['nom_pc'].'</td>';
  17.     echo '<td>'.$data['date_r'].'</td>';
  18.     echo '<td>'.$data['date_p'].'</td>';
  19.     echo '<td>'.$data['prof'].'</td>'; 
  20.     echo '<td>'.$data['num_serie'].'</td>';
  21.     echo '<td>'.$data['detail'].'</td>'; 
  22.     echo '<td>'.$data['rapport'].'</td>';
  23.     echo '</tr>'; 
  24. }
  25. mysql_close();


 
je comprend vraiment pas trop ou est l'erreur, alors si vous pouviez me filer un coup de main
 
Merci beaucoup a vous :)


Message édité par kontas le 18-05-2005 à 14:24:37
mood
Publicité
Posté le 18-05-2005 à 14:20:00  profilanswer
 

n°1087889
robbyone
Non pas !
Posté le 18-05-2005 à 14:46:02  profilanswer
 

Tu a omis de faire le lien entre les deux tables
Essayes la requête suivante :
 

Code :
  1. SELECT a.* , b.*
  2. FROM panne a, parc_pc b
  3. WHERE a.num_serie LIKE b.num_serie
  4. AND   a.etat      LIKE 'ok'
  5. AND   b.status    LIKE 'ok'
  6. LIMIT 0, 10


 
Tu peux ainsi identifier chaque champ que tu souhaites ramener (a.nom_pc, etc ...)
Je préfère 'LIKE' à '=' (dans des constructeurs de requête, tu sera amené parfois à utiliser '%' qui ne fonctionne qu'avec 'LIKE' ou 'NOT LIKE')

n°1088260
kontas
Photographe amateur daltonien
Posté le 18-05-2005 à 17:55:10  profilanswer
 

Merci a toi pour ton aide  :hello:  
 
quand j'ai essayer ton code j'avais plein d'erreur, comme si il traité que la premiere parti de la requete, puisque le message indiqué une erreur sur la selection des autres champs (table2)
 
mon collegue c'est penché dessus et a reussi a le faire marché, voici le code :)
 

Code :
  1. $query="SELECT * FROM panne, parc_pc WHERE (`panne`.etat='ok' AND panne.num_serie=parc_pc.num_serie) LIMIT 0, 10";


 
donc d'apres ce que je comprend il manqué la condition qui lier les 2 table, d'ou le panne.num_serie=parc_pc.num_serie

n°1088282
robbyone
Non pas !
Posté le 18-05-2005 à 18:12:46  profilanswer
 

Là tu m'étonnes !
Tu utilises quel type de bdd ?
J'ai volontairement scindé ma requête pour bien te faire comprendre la syntaxe. Tu as pensé à reformer la chaine avant ?
 

Code :
  1. $query="SELECT * FROM panne a, parc_pc b WHERE a.num_serie LIKE b.num_serie AND a.etat LIKE 'ok' AND b.status LIKE 'ok' LIMIT 0, 10";


 
Mais bon, l'essentiel c'est que tu sois parvenu à tes fins.


Message édité par robbyone le 18-05-2005 à 18:15:02
n°1088531
kontas
Photographe amateur daltonien
Posté le 18-05-2005 à 22:13:51  profilanswer
 

robbyone a écrit :

Là tu m'étonnes !
Tu utilises quel type de bdd ?
Heu, je vois pas trop ce que tu veu dire :/
J'ai volontairement scindé ma requête pour bien te faire comprendre la syntaxe. Tu as pensé à reformer la chaine avant ?Erf, j'ai vriament de grosse lacune, je comprent pas non plus ce que tu veu dire
 

Code :
  1. $query="SELECT * FROM panne a, parc_pc b WHERE a.num_serie LIKE b.num_serie AND a.etat LIKE 'ok' AND b.status LIKE 'ok' LIMIT 0, 10";


 
Mais bon, l'essentiel c'est que tu sois parvenu à tes fins.ben j'aimerais aussi apprendre au passage  [:canaille]



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  2 table dans 1 tableau

 

Sujets relatifs
Reinitialisation d'un tableau dynamiqueTable générée a partir d'autres tables...
[C] charger un fichier texte en tableau[Delphi]Ressource limite de la table temporaire
[ C++ ] Passer par adresse un vecteur à 2 dimensions + mallocedition table
[Résolu] Identifier une table à partir de la valeur de sa clé primairetableau croise ou pivot table
[MySQL] Sauvegarder un tableau dans une tabletable dans un tableau
Plus de sujets relatifs à : 2 table dans 1 tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR