Page 1 sur 1

Selectionner 3 tables à l'intétieur de 1 tableau

Posté : 29 mai 2009, 13:29
par Guignon
Bien le bonjour,

Voila je me trouve avec 3 tables dans ma BDD, je créé un tableau en HTML et je voudrais que mes données de mes tables, rentrent dans mon tableau.

Problème :
Je selectionne mes tables :
$sql="SELECT * FROM `pc`,`switch`,`table` "; //JE PRENDS TOUS LES CHAMPS DE MES TABLES
$reponse=mysql_query($sql);
Je mets en place une boucle pour que les données des 3 tables soit répété dans mon tableau :
while($donnees=mysql_fetch_array($reponse))
{
  
  echo '<tr>'.'<td>'.$donnees['CHAMPS].'</td>';
  echo '<td>'.$donnees['CHAMPS'].'</td>';
  //...
}	
La connexion marche, le code marche.
Mais les données se répètent 3 fois, vu qu'il y a 3 bases.

J'ai essayé les UNION en vain,
et aussi de me connecter à une base, puis à une autre.
Mais ma 2eme tables se retrouve en dessous de l'autre se qui laisse des trous et les données ne sont pas a leurs place...

Voila si vous avez une idées une des suggestions vous m'en faites part :)

En vous remercient

Posté : 29 mai 2009, 14:00
par dunbar
Salut,

L'entête de ton tableau doit être en dehors de ta boucle, sinon il crée une nouvelle entête à chaque ligne.

Posté : 29 mai 2009, 14:04
par Guignon
Oui il y est en dehors :)

Posté : 29 mai 2009, 14:06
par dunbar
Montre nous le code complet de ta page.
Et ta balise <table> elle se trouve ou :?: en dehors ou dans ta boucle :?:

Posté : 29 mai 2009, 14:15
par Guignon
Pour mon tableau :
<table id="tableau">
  
 <thead>
 <tr>
    <th>id</th>
    <th>Nom </th>
    <th>ip</th>
    <th>mac</th>
    <th>prise </th> 
    <th>Numero switch</th>
    <th>Salle</th>
</tr>
</thead>

//j'include un code php a la suite des th pour pouvoir rentré mes champs dans les td :

 <tbody>
   <?php include('tableauserveur.php'); ?>
   <?php include('tableauserveur2.php'); ?>
   <!--<?php include('tableauserveur3.php');?>-->
    
 </tbody>
</tables
</div>
Enfaite, pour chaque include j'ai 1 table.

Comme ceci :


J'essay de séparer au maximum pour que vous y voyez plus clair ^^
<?php


mysql_connect("localhost", "root", "");
if(!mysql_connect("localhost", "root", "")){
	echo "Impossible de se connecter ? la base de donn?es :".mysql_error();
	exit;
	}


mysql_select_db("table");
if(!mysql_select_db("table")){
	echo "Impossible d'acc?der ? la base de donn?es :".mysql_error();
	exit;
	}




$sql="SELECT * FROM `pc`";
$reponse=mysql_query($sql);



while($donnees=mysql_fetch_array($reponse))
{

  
  echo '<tr>'.'<td>'.'<a href="Mamachine.php">'.$donnees['idPc'].'</td>';
  echo '<td>'.$donnees['nom_pc'].'</td>';
  echo '<td>'.$donnees['adress_ip_pc'].'</td>';
  echo '<td>'.$donnees['adress_mac_pc'].'</td>';
  echo '<td>'.$donnees['prise_reseau'].'</td>';
  echo '<td>'.$donnees['date_installation_pc'].'</td>';
 
 
}		

 
mysql_close();
?>
Mon 2eme include :
<?php

mysql_connect("localhost", "root", "");
if(!mysql_connect("localhost", "root", "")){
	echo "Impossible de se connecter ? la base de donn?es :".mysql_error();
	exit;
	}



mysql_select_db("table");
if(!mysql_select_db("table")){
	echo "Impossible d'acc?der ? la base de donn?es :".mysql_error();
	exit;
	}




	
$sql="SELECT numero_switch FROM `switch` ";
$reponse=mysql_query($sql);



while($donnees=mysql_fetch_array($reponse))
{
 echo '<td>'.$donnees['numero_switch'].'</tr>'; 
}


?>
J'espère que sa va etre assez clair ^^

Posté : 29 mai 2009, 14:44
par dunbar
J'espère que sa va etre assez clair ^^
:? Euuuh , bon ont va dire que oui.
Comme ceci ça donne quoi :?:
<table id="tableau">

<thead>
<tr>
<th>id</th>
<th>Nom </th>
<th>ip</th>
<th>mac</th>
<th>prise </th>
<th>Numero switch</th>
<th>Salle</th>
</tr>
</thead>

//j'include un code php a la suite des th pour pouvoir rentré mes champs dans les td :

<tbody>
<?php include ('tableauserveur.php'); ?>
<?php include ('tableauserveur2.php'); ?>
<!--<?php include ('tableauserveur3.php'); ?>-->



Enfaite, pour chaque include j'ai 1 table.

Comme ceci :


J'essay de séparer au maximum pour que vous y voyez plus clair ^^



<?php
mysql_connect("localhost", "root", "");
if (!mysql_connect("localhost", "root", "")) {
    echo "Impossible de se connecter ? la base de donn?es :" . mysql_error();
    exit();
}
mysql_select_db("table");
if (!mysql_select_db("table")) {
    echo "Impossible d'acc?der ? la base de donn?es :" . mysql_error();
    exit;
}

$sql = "SELECT
			pc.idPc, pc.nom_pc, pc.adress_ip_pc, pc.adress_mac_pc, pc.prise_reseau, pc.date_installation_pc,
			sw.numero_switch
		FROM pc pc, switch sw";
$reponse = mysql_query($sql);


while ($donnees = mysql_fetch_array($reponse)) {


    echo '<tr>' . '<td>' . '<a href="Mamachine.php">' . $donnees['idPc'] . '</td>';
    echo '<td>' . $donnees['nom_pc'] . '</td>';
    echo '<td>' . $donnees['adress_ip_pc'] . '</td>';
    echo '<td>' . $donnees['adress_mac_pc'] . '</td>';
    echo '<td>' . $donnees['prise_reseau'] . '</td>';
    echo '<td>' . $donnees['date_installation_pc'] . '</td>';
    echo '<td>' . $donnees['numero_switch'] . '</tr>';


}


mysql_close();
?>
</tbody>
</tables>
</div>



Posté : 29 mai 2009, 14:52
par Guignon
Oué ! j'avais deja testé =D

Donc la oui sa marche, mais le tableau me montre que mes données se répète :

Par exemple :

Code : Tout sélectionner

id CHAMPS... 1 pepe pepe pepe pepe pepe sw1 2 M 1 0 0 0 sw1 1 pepe pepe pepe pepe pepe sw2 2 M 1 0 0 0 sw2
Je présice que se ne sont pas les champs qui se répètes, mais les lignes.

Code : Tout sélectionner

Ligne 1 de mon tableau :1 pepe pepe pepe pepe pepe sw1 Ligne 2 : 2 M 1 0 0 0 sw1 Ligne 3 : 1 pepe pepe pepe pepe pepe sw2 Ligne 4 : 2 M 1 0 0 0 sw2

Se n'est pas ma BDD ?je ne pense pas ^
C'est bizarre, de plus il y a les numero_switch a la fois sur pepe et a la fois sur M ^^

Donc je sais pas, peut-etre les td mal mit ou la manière de demender à 2 tables d'afficher leur données sur une meme ligne de tableau...

Merci^

Posté : 29 mai 2009, 15:15
par zeus
Modération :
Guignon, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Posté : 29 mai 2009, 15:18
par Guignon
Oui merci je ne me rappelais plus laquelle était la bonne ^^

Merci bien :)

Posté : 29 mai 2009, 15:22
par dunbar
Les données ont liées entre elle d'une manière ou d'une autre ?
parce que j'imagine que ci on ajoute un critère du genre
WHERE champ1 = champ2 ça devrais aller

Posté : 29 mai 2009, 15:25
par Guignon
Oui je les ai liées, et tu penses que si mon idswitch=idpc sa rétablira la chose ?

CEST BON SA MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARCHE héhé ralala j'ai galéré toute ma vie xD

Merci a toi dunbar !!!

A bientôt !

Posté : 29 mai 2009, 15:27
par dunbar
Oui je les ai liées, et tu penses que si mon idswitch=idpc sa rétablira la chose ?
Essaye

Posté : 29 mai 2009, 15:27
par Guignon
sa marche ;)

Merci bien

Et j'ai mit ma 3eme table, sa marche impect aussi :)

Posté : 29 mai 2009, 15:32
par dunbar
Parfait
Bon week-end :wink:
Et n'oublie pas le résolut sinon tu va t'attirer les foudres de ZEUS :langue:
Et pie j'aime être à l'origine des résolut, pour une fois :oops: