requette sur plusieurs tables

Eléphant du PHP | 119 Messages

09 janv. 2011, 19:25

je ne recupere que l'ip , apres l'ip se trouve dans la 2 eme table, dans la deuxieme table il y a id qui coressepond a uid de la table 3 et dans la table trois il y a le nom et le prenom ...

il devrais y a voir possibilite de faire ce chemin ... ou alors je suis dans un autre monde ;) ...c'est vrais que suis pas une bete a ce niveau c'est bien
pour cela que je fais appel a des BONS sur ce forum.

merci

ViPHP
xTG
ViPHP | 7331 Messages

09 janv. 2011, 19:28

ClpName c'est une IP ?
Car une ip c'est pas 20 caractères. :/

Eléphant du PHP | 119 Messages

09 janv. 2011, 19:53

oui en faite des que tu te connect sur la bdd elle recupere l'adresse ip pour indiquer un visiteur.

Image

ViPHP
xTG
ViPHP | 7331 Messages

09 janv. 2011, 20:01

Ok, le type de donnée m'a faussé c'est pour cela. Une adresse IP est composé de 15 caractères maximum.

Bon voici une requête mais pas en syntaxe ANSI, ainsi je suis sûr de pas me tromper :
SELECT up.user_id, up.name, up.firstname, us.IP 
FROM devolia_rsed_users_session AS us, devolia_rsed_user_profil AS up, whosisonline AS w
WHERE w.ClpName = us.IP AND us.uid = up.user_id;
A tester sous phpmyadmin. :)
PS : Je suis parti du principe que uid de la table devolia_rsed_user_profil correspondait au champs user_id.

Eléphant du PHP | 119 Messages

10 janv. 2011, 13:24

bonjour a tous, bon je vient de tester le code, j'ai fais quelques modif mais d'ordre syntax, car j'avis un message d'erreur, il fonctionne donc je ne pense pas qu'il y est d'erreur.
cependant j'ai toujours le nombre de visiteur au lieu du nom, je pense que cela vient de $nbResult = mysql_num_rows($result); qui n'est cencé m'afficher qu'un resultat et nom une chaine de lettre.

je te remet le code complet pour que tu me dise ce que tu en pense.

lien vers mon tableau/compteur : http://fr-findshare.grpminfo.fr/devolia ... index1.php
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
// inclusion des variable de configuration
include("config.php");
// connexion a la BD
include("connect.php");
$sql = "SELECT up.user_id, up.name, up.firstname, us.IP FROM devolia_rsed_users_sessions AS us, devolia_rsed_user_profil AS up, whoisonline AS w WHERE w.cIpName = us.IP AND us.uid = up.user_id";
$result = mysql_query($sql);
$nbResult = mysql_num_rows($result);
echo 'visiteur en ligne: '.$nbResult;
?>
merci

ViPHP
xTG
ViPHP | 7331 Messages

10 janv. 2011, 13:41

Une petite lecture de la documentation de la fonction mysql_num_rows() et la lecture d'un cours sur comment récupérer et afficher les données d'une table te seront du plus grand secours. ;)

Tu as des lacunes qui je pense ne se combleront pas si on te donne la réponse, en relisant des cours tu assimileras plus que le minimum pour te dépanner sur le fonctionnement des requêtes.

Eléphant du PHP | 119 Messages

10 janv. 2011, 18:20

oui je sait bien, je suis en plein dedans mais pas encore a ce stade, de plus j'ai regardé un peu sur le net, j'ai trouvé plusieurs reponses a mes questions.
le hic et comme tu le sait la table user_profil ou il y a les nom et prenom ne se modifie pas au moment de la connection elle stock uniquement les infos,
donc ne peu afficher le resultat, seul la users_session s'execute mais uniquement l'id ...
la est mon soucis.

ViPHP
xTG
ViPHP | 7331 Messages

10 janv. 2011, 23:16

Pour ce que j'ai vu ton soucis viendrai plutôt de l'utilisation correcte des fonctions mysql_****
mysql_num_rows() en l'occurrence ne fait que compter le nombre d'enregistrements renvoyé par la requête.
Elle ne permet pas de récupérer les champs du SELECT !

C'est la base des requêtes, c'est pour cela que je t'ai conseillé de te pencher sur des cours... :/
On ne peut pas parler une langue si on n'en comprend pas les mots, bah un langage de programmation c'est pareil. ;)

Eléphant du PHP | 119 Messages

10 janv. 2011, 23:20

regarde je bosse, j'ai fait ce code et il fonctionne ...
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT photo_profil,firstname,name,id FROM devolia_rsed_user_profil';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);


// si on a récupéré un résultat on l'affiche.
if($total) {
     echo '<table bgcolor="#FFFFFF" border="1">'."\n";
       
    while($row = mysql_fetch_array($result)) {
       echo '<td bgcolor="#ffffff"><span><a href ="http://fr-findshare.grpminfo.fr/result_'.$row["firstname"].' '.$row["name"].'.html" target="_blank">
	   <img src="http://grpminfo.fr/face/devoliarsed-custom/uploads/all/'.$row["photo_profil"].'" title="'.$row["firstname"].' '.$row["name"].'" ALT="'.$row["firstname"].'.'.$row["name"].'" width="50" height="50" BORDER="0" >
	   </a></td>';      
    }
    echo '</table>'."\n";
    
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);
resultat
http://fr-findshare.grpminfo.fr/devolia ... index3.php

maintenant je cherche a faire passer a la ligne les images toutes les 9 images car la elle se mettent en ligne ...
je trouve pas mais je persiste :)

ViPHP
xTG
ViPHP | 7331 Messages

11 janv. 2011, 10:21

Un petit modulo alors. :D
$nombre = 0;
while(....)
{
  echo".....";
  if( $nombre % 9 == 0 && $nombre != 0 )
    echo "<br />";
  $nombre++;
}