Problème avec une requete SELECT

Fermé
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021 - 4 mai 2021 à 22:14
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 - 6 mai 2021 à 23:59
Bonjour,
Je ne vois pas comment coder correctement cette demande...
$sql = "SELECT avatar FROM membres WHERE pos_x AND pos_y =:id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
$resultat = $pdostat->fetch();    
$avatar = $resultat['avatar'];
?>


le but étant de sélectionner tous les avatars éventuels ayant la même position que $id

6 réponses

jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
4 mai 2021 à 22:30
Bonjour,

- Si ta question concerne une requête SQL .. c'est dans le forum MysQL qu'il faut la poser !!!!
Je la déplace au bon endroit ( encore une fois ! )


- Qu'est-ce contient ta variable $id ? A quoi fait elle référence ?

Si j'arrive à traduire ta question.. quand tu dis "La même position que l'id ..." tu veux dire la même position => donc mêmes valeurs pos_x et pos_y qu'une autre membre ayant pour id celui que tu veux envoyer en paramètre ??


0
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
Modifié le 4 mai 2021 à 22:33
Si c'est bien ce que j'ai compris, tu peux donc utiliser un inner Join
SELECT 
     select_list
FROM 
     t1
INNER JOIN t2 ON join_condition;


donc un truc du genre
SELECT avatar 
FROM membres T1
INNER JOIN  membres T2 ON  T1.pos_x = T2.pos_x AND T1.pos_y = T2.pos_y
WHERE T2.id = :id 
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
Modifié le 4 mai 2021 à 23:25
le soucis? c'est que je pars d'une seule table...
exemple avec les pseudos

table membres
PSEUDO POS_X POS_Y etc....
nestor pos_x pos_y (exemple 7 7)
jordane pos_x pos_y (exemple 7 7)
remy pos_x pos_y (exemple 7 9)

je souhaite sélectionner les pseudos qui sont sur la même position que moi (7 7)

SELECT bla bla bla
echo 'jordane';
0
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
4 mai 2021 à 23:01
Toujours pas clair....

Tu as regardé ma proposition ??
Ca ne correspond pas ?
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
5 mai 2021 à 08:59
Non, désolé je n'ai qu'une table (membres)

SELECT avatar FROM membres T1 INNER JOIN membres T2 ??

je souhaiterai parcourir toute la table membres pour affichage (éventuel) des membres ayant la meme pos_x et pos_y
0
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
5 mai 2021 à 09:05
Je sais que tu n'as qu'une table ..... et c'est bien en partant de ce constat que je t'ai proposé la requête n'utilises qu'une seule table ...
Donc je réitère ma question... AS TU TESTE LA REQUETE QUE JE T'AI DONNE avant de dire que ça ne marche pas !!! ???!!!
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
5 mai 2021 à 18:35
oui, oui (ne crie pas) je l'ai testé ce matin telle que:

$sql = "SELECT avatar FROM membres T1 INNER JOIN  membres T2 ON  T1.pos_x = T2.pos_x AND T1.pos_y = T2.pos_y WHERE T2.id = :id ";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
//$resultat = $pdostat->fetch();    
//$avatar = $resultat['avatar'];
while ($avatar = $pdostat->fetch(PDO::FETCH_OBJ))
{
  echo $avatar ;
}


PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Champ: 'avatar' dans field list est ambigu in
0
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
5 mai 2021 à 19:14
Il suffit de préfixe et avec T1
SELECT T1.avatar
0

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

Posez votre question
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
6 mai 2021 à 11:14
$sql = "SELECT T1.avatar FROM membres T1 INNER JOIN  membres T2 ON  T1.pos_x = T2.pos_x AND T1.pos_y = T2.pos_y  WHERE T2.id = :id ";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
while ($avatar = $pdostat->fetch(PDO::FETCH_OBJ))
{
 echo '<img src="'.$avatar.'">';  
}


Catchable fatal error: Object of class stdClass could not be converted to string in C:\wamp...
0
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
6 mai 2021 à 12:32
Ça n'a rien à voir avec la Requête...
Mais avec l'utilisation que tu fais du résultat de cette requête...
C'est tà variable $avatar qui n'est pas bonne.. du moins.. pas complette. Au niveau de ta balise img..
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
6 mai 2021 à 23:53
j'ai creusé un peu mais pas au bon endroit?

$sql = "SELECT T1.avatar FROM membres.T1 INNER JOIN  membres.T2 ON  T1.pos_x = T2.pos_x AND T1.pos_y = T2.pos_y  WHERE T2.id = :id ";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
while ($avatar = $pdostat->fetch(PDO::FETCH_OBJ))
{
 echo '<img src="'.$avatar.'">' ->fetch();  
}


Base table or view not found: 1146 La table 'membres.t1' n'existe pas in C:\wamp64\www\map_detail.php
0
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
6 mai 2021 à 23:59
Si tu n'es pas capable de faire de simples copier/coller ni de te relire alors qu'il n'y a qu'une seule ligne de code... là je ne peux plus rien pour toi...
0