Requete sql

moza2409 Messages postés 45 Date d'inscription mercredi 12 octobre 2011 Statut Membre Dernière intervention 4 août 2012 - 28 nov. 2011 à 14:19
moza2409 Messages postés 45 Date d'inscription mercredi 12 octobre 2011 Statut Membre Dernière intervention 4 août 2012 - 6 déc. 2011 à 08:08
Bonjour à tous,
Je bloque sur un probleme de requete sql sur 2 tables.
J'explique mon probleme :
J'ai une table qui ce nome Client avec les champs id, cliprenom, login, avatar.... et une autre table qui se nome Coms avec les champs idmess, message exp, desti.

Je souhaiterais récuperer l'avatar de l'expediteur(exp) mais je ne sais pas quel requete utiliser.

Merci de votre aide

9 réponses

JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
29 nov. 2011 à 08:58
C'est une simple question de jointure. Il faut savoir quel champ dans tes 2 tables servent à "faire le lien".

Tu peux jetter un oeil là: http://www.epershand.net/developpement/mysql-bdd/comprendre-jointures-inner-left-right-join-mysql pour avoir une idée de comment ça se fait.
0
moza2409 Messages postés 45 Date d'inscription mercredi 12 octobre 2011 Statut Membre Dernière intervention 4 août 2012
29 nov. 2011 à 14:13
Merci de ton aide, j'ai jetter un oeil sur ton lien.
J'ai fait plusieur test mais je n'arrive pas ( je suis debutant)
J'ai essayé la requette :
"SELECT * FROM client AS p, coms AS c WHERE p.login = c.exp ";
.
Le probleme c'est que pour tous les commentaires ca m'affiche le meme avatar.
0
JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
29 nov. 2011 à 14:46
Essaie un truc du genre

SELECT * FROM coms AS c, client AS p WHERE p.login = c.exp
0
moza2409 Messages postés 45 Date d'inscription mercredi 12 octobre 2011 Statut Membre Dernière intervention 4 août 2012
29 nov. 2011 à 18:30
ca ne marche toujours pas je met le script complet
<LINK REL=StyleSheet HREF="CSS/style.css" TYPE="text/css">

<?php
include('mesinfos.php');
?>	

<?php
//on teste si connecté sinon impossible d'envoyer un message

$l=$_SESSION['valid'];
$page=isset($_REQUEST['page']) ? $_REQUEST['page'] : null;
$supp=isset($_REQUEST['supp']) ? $_REQUEST['supp'] : null;

if($supp=='ok'){
    $i=0;
    $nncoch=$_REQUEST['ncoch'];
    while ($i < count($nncoch))
{
$req="DELETE FROM coms WHERE idmess=" . $_REQUEST['ncoch'][$i];
    $resultat=mysql_query($req,$cnx);
    $i=$i+1;
}
    echo "Suppression effectuée
";
}

//on initialise les limit
$x=0;
$y=10;
 
 //puis pour chaque page on rajoute 10*par le nbre de page
$xi=$x+(10*$page);
$yi=$y+(0*$page);
 
//on compte le nbre de mess pour l'affichage des [1]-[2] etc

//on affiche ensuite en fonction des limit chaque page contient 10messages
 
// Nb d'enregistrement total
$nb_total = mysql_query("SELECT COUNT(*) as nbmess FROM coms where desti='$l'");
$nb_total = mysql_fetch_array($nb_total);
$nb_total = $nb_total['nbmess']; 
 
echo"


Vous avez ".($nb_total)." commentaires



";


$req="SELECT * from coms WHERE desti='$l' ORDER BY datemess DESC LIMIT $xi,$yi ";
$res=mysql_query($req,$cnx);
$ligne=mysql_fetch_assoc($res);

//affichage des pages dispos

//si 10mess ou moins
echo"


";

include('inc/pagination.php');

echo"
<form action=index.php?genre=mescoms&m=$l&supp=ok method=post>
  


";

echo" 


";
while($ligne)
{
//la fonction smileys filtre le message et affiche les images si il ya les caractères appropriés




$reqq="SELECT * FROM client AS p, coms AS c WHERE p.login = c.exp ";
$ress=mysql_query($reqq,$cnx);
$lignee=mysql_fetch_assoc($ress);

//on boucle dabord les avatars

echo 
("	

");


echo" 


 Le ".$ligne['datemess']."


";

if($ligne['nveau']==1){
echo"

".(stripslashes($ligne['message']))."


<fieldset class='field'>
<label></label>


</fieldset>

";
}
else{
//si nouveau message fond jaune
echo"	
".(stripslashes($ligne['message']))."
<td></td>
";
}
$ligne=mysql_fetch_assoc($res);
}

echo"</table></form>";
//une fois ouvert on update tous les messages de l'utilisateurs aucun n'est nouveau maintenant
$req2="UPDATE coms SET nveau=1 WHERE desti='$l'";
$res2=mysql_query($req2,$cnx);


//affichage des pages dispos

//si 10mess ou moins
echo"


";

echo"






";
?>


Voila si tu as une idée de la requete a utiliser
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
moza2409 Messages postés 45 Date d'inscription mercredi 12 octobre 2011 Statut Membre Dernière intervention 4 août 2012
1 déc. 2011 à 18:50
Personne a une idée ??
0
JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
1 déc. 2011 à 19:41
Tu peux nous filer la source HTML qui est générée par ton code (idéalement mise en forme pour être lisible)? Ca pourait nous donner une idée de ce qui cloche.

Après, il faut dire que ta façon d'afficher les commentaires est plutôt étrange, perso je vois pas trop comment ils sont organisés en fait, du coup ça aide pas à débugger... Tu arrives à nous décrire comment tu aimerais que ça s'affiche?
0
moza2409 Messages postés 45 Date d'inscription mercredi 12 octobre 2011 Statut Membre Dernière intervention 4 août 2012
1 déc. 2011 à 20:54
J'ai pratiquement reussi, le probleme maintenent c'est que ca m'affiche tous les commentaires de la bdd or je voudrais que seul les commentaires du membre soit affiché.

voila la requete que j'ai utilisé
$req="SELECT * FROM client AS p, coms AS c WHERE p.login = c.exp   ORDER BY datemess DESC LIMIT $xi,$yi ";
0
moza2409 Messages postés 45 Date d'inscription mercredi 12 octobre 2011 Statut Membre Dernière intervention 4 août 2012
4 déc. 2011 à 23:14
up
0
moza2409 Messages postés 45 Date d'inscription mercredi 12 octobre 2011 Statut Membre Dernière intervention 4 août 2012
6 déc. 2011 à 08:08
j'ai fini par résoudre mon probleme merci JulSoft
0