cs_Chewba
Messages postés90Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention10 septembre 2006
-
26 août 2006 à 20:25
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 2014
-
28 août 2006 à 13:55
Bonjour,
Je cherche comment je peux faire pour afficher les données provenant de 2 tables différentes dans un tableau.
J'ai une table Roster_members et une tabel DKP.
Le champs en commun est name pour la table Roster_members et personnage pour la table DKP.
On affiche donc dans la 1ère colonne les données venant de Roster_members et dans la deuxième les données de la table DKP
Mais si il n'y a pas d'enregistrement correspondant dans la table DKP, on affiche malgré tout dans la 1ère colonnes les données de la table Roster_members et dans la deuxième colonne on affiche 0 si aucun enregistrement trouvé par rapport à chaque donnée de la première table.
Voici un bout du code:
<?
// on se connecte à notre base
$base = mysql_connect ('HOST', 'SERVER', 'PASSWORD');
mysql_select_db ('TABLE', $base);
// on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
$sql = 'SELECT count(*) FROM Roster_members';
// on exécute cette requête
$resultat = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_array($resultat);
// on teste si ce nombre de vaut pas 0if (($nb_total $nb_total[0]) 0) {
echo 'Aucune réponse trouvée';
}
else {
//echo 'Nom</td>';
// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
// début du tableau
echo '<center>';
echo '<table bgcolor=\"#000000\">'.\"\n\";
// première ligne on affiche les titres nom et classe dans 2 colonnes
echo '----
';
echo 'Personnage, ';
echo 'DKP, ';
//echo 'Niveau, ';
echo ''.\"\n\";
$nb_affichage_par_page = 25;
// Préparation de la requête avec le LIMIT
$sql = 'SELECT name, class, level FROM Roster_members ORDER BY name ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {
// on affiches les résultats dans la <table>
// on stocke dans $couleur la valeur retournée par l'appel de la fonction qui prend en paramètres $couleur1 et $couleur2
$couleur = alt_couleur($couleur1, $couleur2);
echo '----
';
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 28 août 2006 à 13:46
cette requête :
select r.
name, class, level, DKP.tonchamp
from Roster_members r
left outer join DKP d on r.name= d.personnage limit 0,30
prend les lignes de la table Roster_members et fait la jointure externe gauche avec la table DKP sur le champ name/personnage (et rajoute les lignes de la table Roster_members pour lesquels il n'a pas d'information correspondante dans la table DKP, elle met des NULL à la place)