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

Petit nouveau ! | 7 Messages

29 mai 2009, 13:29

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

ViPHP
ViPHP | 2291 Messages

29 mai 2009, 14:00

Salut,

L'entête de ton tableau doit être en dehors de ta boucle, sinon il crée une nouvelle entête à chaque ligne.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 7 Messages

29 mai 2009, 14:04

Oui il y est en dehors :)

ViPHP
ViPHP | 2291 Messages

29 mai 2009, 14:06

Montre nous le code complet de ta page.
Et ta balise <table> elle se trouve ou :?: en dehors ou dans ta boucle :?:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 7 Messages

29 mai 2009, 14:15

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

ViPHP
ViPHP | 2291 Messages

29 mai 2009, 14:44

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>


ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 7 Messages

29 mai 2009, 14:52

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^

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 mai 2009, 15:15

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 7 Messages

29 mai 2009, 15:18

Oui merci je ne me rappelais plus laquelle était la bonne ^^

Merci bien :)

ViPHP
ViPHP | 2291 Messages

29 mai 2009, 15:22

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
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 7 Messages

29 mai 2009, 15:25

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 !
Modifié en dernier par Guignon le 29 mai 2009, 15:27, modifié 1 fois.

ViPHP
ViPHP | 2291 Messages

29 mai 2009, 15:27

Oui je les ai liées, et tu penses que si mon idswitch=idpc sa rétablira la chose ?
Essaye
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 7 Messages

29 mai 2009, 15:27

sa marche ;)

Merci bien

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

ViPHP
ViPHP | 2291 Messages

29 mai 2009, 15:32

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:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.