requette sur plusieurs tables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requette sur plusieurs tables

Re: requette sur plusieurs tables

par xTG » 11 janv. 2011, 10:21

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

Re: requette sur plusieurs tables

par olivxii » 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 :)

Re: requette sur plusieurs tables

par xTG » 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. ;)

Re: requette sur plusieurs tables

par olivxii » 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.

Re: requette sur plusieurs tables

par xTG » 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.

Re: requette sur plusieurs tables

par olivxii » 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

Re: requette sur plusieurs tables

par xTG » 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.

Re: requette sur plusieurs tables

par olivxii » 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

Re: requette sur plusieurs tables

par xTG » 09 janv. 2011, 19:28

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

Re: requette sur plusieurs tables

par olivxii » 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

Re: requette sur plusieurs tables

par xTG » 09 janv. 2011, 19:21

Comment faire le lien entre le chien de mon grand père et le chat de ma voisine ?
On utilise : Nombre de pattes ? Nombre de dents ? Ou peut être le nombre de narine ?
Hum je pense qu'on pourra chercher une solution pendant longtemps. :p

Il te faut l'id de la personne dans ta table whosisonline, sinon tu ne t'en sortiras pas.

Re: requette sur plusieurs tables

par olivxii » 09 janv. 2011, 19:18

bais oui c'est ce que je voit .. y a pas de solution ?

Re: requette sur plusieurs tables

par xTG » 09 janv. 2011, 19:16

Pour ce que j'en vois tu n'as aucun lien entre la table whosonline et les deux autres.
Tous les champs n'ont aucune concordance de type.
Comment veux-tu pouvoir les lier, ce n'est pas possible. :/

Re: requette sur plusieurs tables

par olivxii » 09 janv. 2011, 19:06

en faite je voudrais recuperer des infos sur une table mais c'est infos ne varie pas quand l'on se connect et ne sont pas en rapport avec les autre tables.

en image de table 1 a table 3

Image

Image

Image

donc en faite ce que je desire c'est afficher ne nom et prenom de la personne connecté.

Re: requette sur plusieurs tables

par moogli » 09 janv. 2011, 18:06

je réitère ma demande
- Schéma des tables (create table)
- Explication claire des relations entre les tables
- ré explication simple de ce que tu souhaite (pour le cas ou :))

@+