Requête SQL qui marche pas
Cool-man
-
974_Vin's_974 Messages postés 554 Statut Membre -
974_Vin's_974 Messages postés 554 Statut Membre -
Bonjour,
J'ai fais la table utilisateur_amis sql pour le module 'mes amis'
ce que je veux c'est affiché les amis en commun entre deux utilisateur qui sont pas forcément ami
j'ai fait la requête suivante
La dans cette exemple normalement ça doit m'afficher le numéro 2, mais voila ca n'affiche RIEN (et ca me rond fout)
et quand je met un OR a la place du AND ça affiche et bien tous les amis des l'utilisateurs 3 et 1 réunis
Voila mon problème j'ai besoin d'une requête qui me donne les amis commun entre deux utilisateur.
Merci.
J'ai fais la table utilisateur_amis sql pour le module 'mes amis'
+-----------------+----------------+ | Utilisateur_id | ami_id | +-----------------+----------------+ | 1 | 2 | +-----------------+----------------+ | 2 | 1 | +-----------------+----------------+ | 3 | 2 | +-----------------+----------------+ | 3 | 6 | +-----------------+----------------+ | 8 | 10 | +-----------------+----------------+
ce que je veux c'est affiché les amis en commun entre deux utilisateur qui sont pas forcément ami
j'ai fait la requête suivante
$recuper = mysql_query("SELECT ami_id FROM utilisateur_ami WHERE utilisateur_id='1' AND utilisateur_id='3' GROUP BY ami_id") or die(mysql_error());
while($donne = mysql_fetch_assoc($recuper)) echo $donne['ami_id'].'<br/>';
La dans cette exemple normalement ça doit m'afficher le numéro 2, mais voila ca n'affiche RIEN (et ca me rond fout)
et quand je met un OR a la place du AND ça affiche et bien tous les amis des l'utilisateurs 3 et 1 réunis
Voila mon problème j'ai besoin d'une requête qui me donne les amis commun entre deux utilisateur.
Merci.
A voir également:
- Requête SQL qui marche pas
- Logiciel sql - Télécharger - Bases de données
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Sql (+) - Forum Programmation
- Cherche des haricot vendez les moi ✓ - Forum DS
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Android
4 réponses
C'est normal:
utilisateur_id='1' signifie que utilisateur_id!='3' donc tu ne peux pas avoir l'un ET l'autre. En effet, il s'agit de deux lignes différentes, même si la valeur est la même.
utilisateur_id='1' signifie que utilisateur_id!='3' donc tu ne peux pas avoir l'un ET l'autre. En effet, il s'agit de deux lignes différentes, même si la valeur est la même.
Merci pour la réponse Apatik,
Tu n'aurai pas une idé sur la requête qu'il faut pour avoir les amis en commun entre deux utilisateur
les amis en commun des utilisateur 1 et 3 par exemple, Merci.
Tu n'aurai pas une idé sur la requête qu'il faut pour avoir les amis en commun entre deux utilisateur
les amis en commun des utilisateur 1 et 3 par exemple, Merci.
Il fait faire 2 requetes:
Si jamais tu as plusieurs amis associés au même utilisateurs, il faut faire une boucle:
C'est le matin, donc je suis pas sur à 100% du 2ème code.
<?php
$rep = mysql_fetch_array(mysql_query("SELECT ami_id FROM utilisateur_ami WHERE utilisateur_id='1'));
$ami_commun = $rep[ami_id];
$rep = mysql_fetch_array(mysql_query("SELECT utilisateur_id FROM utilisateur_ami WHERE ami_id=$ami));
$ami = $rep[utilisateur_id];
echo "L\'ami en commun de l'utilisateur 1 et de l'utilisateur $ami est l'utilisateur $ami_id";
?>
Si jamais tu as plusieurs amis associés au même utilisateurs, il faut faire une boucle:
<?php
$rep = mysql_fetch_array(mysql_query("SELECT ami_id FROM utilisateur_ami WHERE utilisateur_id='1'));
while ($ami_commun = $rep[ami_id])
{
$rep = mysql_fetch_array(mysql_query("SELECT utilisateur_id FROM utilisateur_ami WHERE ami_id=$ami));
$ami = $rep[utilisateur_id];
echo "L\'ami en commun de l'utilisateur 1 et de l'utilisateur $ami est l'utilisateur $ami_id";
}
?>
C'est le matin, donc je suis pas sur à 100% du 2ème code.
Il faut en effet faire plusieurs requetes..
Tu recherches tout d'abord l'ami de l'utilisateur 1 ..
Voila en espérant qu'tai compris un peu ;)
Cordialement..
Tu recherches tout d'abord l'ami de l'utilisateur 1 ..
$sql = "SELECT ami_id FROM utilisateur_ami WHERE utilisateur_id='1'";
$resultsql = mysql_query($sql) or die('Erreur SQL! '.$sql.''.mysql_error()); // en cas d'erreure
$rep = mysql_fetch_assoc($resultsql);
$ami = $rep[ami_id]
$sql2 = "SELECT utilisateur_id FROM utilisateur_ami WHERE ami_id='$ami'";
$resultsql2 = mysql_query($sql2) or die('Erreur SQL! '.$sql2.''.mysql_error()); // en cas d'erreure
$nb=mysql_numrows($resultsql2);//Le nombre de resultat retourné est sauvegarder
L'ami numéro $ami est ami avec $nb utilisateurs :
while ($rep2 = mysql_fetch_assoc($resultsql2))
{
echo $rep2['utilisateur_id'] //Affichage de tous les utilisateurs ayant pour ami le ami_id = $ami
}
Voila en espérant qu'tai compris un peu ;)
Cordialement..