Problème d'invitation et function recup_invitation

Résolu/Fermé
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - Modifié par Zakarya93 le 18/06/2015 à 20:40
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 18 juin 2015 à 23:28
Bonjour,

1/ Quand je me connecte sur mon site avec le compte xzak47 qui recoit l'invitation, normalement il devrait y avoir sur le profil de l'émetteur (jean) : Demande en cours, verifiez vos invitations / quand il clique sur le profil qui lui a envoyé la demande

voici mon code :
<?php
//-----------------------------
 //Profile.php 
//-----------------------------

include_once('body/header.php');
include_once('body/menu.php');

$pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$arr_infos = recuperer_info_membre_choisi($pseudo);
$accepter_demande = accepter_demande();
$demande_existe = demande_existe();
$verifier_expediteur = verifier_expediteur();

// Le temps des tests :
echo "<div id='debug'>
            <br>accepter_demande => ".$accepter_demande."
            <br>demande_existe => ".$demande_existe."
            <br>verifier_expediteur => ".$verifier_expediteur."
           </div>";


echo "<div class='info'>";

 if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){

  foreach($arr_infos as $R) {
  if($demande_existe == 0){
     echo "<div class='error'>
           Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br />
          <a href='index.php?page=envoi&pseudo=".$R['pseudo']."'>Envoyer une invitation</a>
        </div>";  
    }else if( $accepter_demande == 0 && $verifier_expediteur == 1){    
     echo "<div class='success'>Demande envoyée 
     <a href='index.php?page=annuler&pseudo=".$R['pseudo']."'>Annuler la demande</a></div>";   
   }else if($accepter_demande == 0 && $verifier_expediteur == 0){
        echo "<div class='success'>Demande en cours<br />
      Verifiez vos invitations
      </div>";     
     }
     echo"<img src='avatar/". $R['avatar']."' height='200' width='200' alt='avatar'>";
     echo "<p><strong>Email : </strong><em>".$R['email']."</em></p>";
     echo "<p><strong>Sexe : </strong><em>".$R['sexe']."</em></p>";
     echo "<p><strong>A propos de vous : </strong><em>".$R['apropos']."</em></p>";
  }//fin du foreach  
 }else{
  header("Location:index.php?page=membre"); 
 }
 echo "</div>";
?>


2/ Sachant que le script mysql_ de ma function recup_invitation est :
<?php
//la functions va recuperer les invitations
 
function recup_invitations()
{
     
$query = mysql_query("SELECT pseudo_exp,date_invitation,active,avatar
FROM amis
INNER JOIN users ON users.pseudo=amis.pseudo_exp
WHERE pseudo_dest='{$_SESSION['pseudo']}'
ORDER BY date_invitation DESC
");
$results=array();
while($row=mysql_fetch_assoc($query))
{
$results[]=$row;
}
return $results;
 
}
?>


pouvez-vous corrigé le code que j'ai fais ?

<?php
//la function qui va recuperer les invitations
function recup_invitations() {
global $bdd;

  //récupération des variables PROPREMENT !
  $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
  $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;

 $result= array();
 if($pseudo_exp && $pseudo_dest){
  $sql = "SELECT pseudo_exp,date_invitation,active,avatar
         FROM amis
   INNER JOIN utilisateurs ON utilisateurs.pseudo = amis.pseudo_exp
        WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)
            OR  (pseudo_exp = :get_pseudo AND pseudo_dest = :session_pseudo)";

  // je place les  params dans une variable avant de l'utiliser :
  $params = array('session_pseudo' => $pseudo_exp , 'get_pseudo' => $pseudo_dest);
  
  $query = $bdd->prepare($sql);
  $query ->execute($params);  
  $requete = $query->fetchall();
 }
 // le return
 return $result;
}


Merci d'avance :)

5 réponses

jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
18 juin 2015 à 20:30
Dans ta requête ...
  $sql = "SELECT pseudo_exp,date_invitation,active,avatar
         FROM amis
		 INNER JOIN utilisateurs ON utilisateurs.pseudo = amis.pseudo_exp
         WHERE (pseudo_dest = :get_pseudo)";	

Tu y as combien de paramètres ??

Et dans le params.... tu en as combien ?
  $params = array('session_pseudo' => $pseudo_exp , 'get_pseudo' => $pseudo_dest);
  


... à ton avis... est-ce bon ?

0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
18 juin 2015 à 20:30
Requete : 4 paramètres
params : 2 paramètres
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
18 juin 2015 à 20:32
params : 2 => Oui
Requête 4 ????

Combien de variable avec les ":" ?
Il n'y a que :get_pseudo
...
Quoi qu'il en soit ... le nombre doit être identique entre la requête et le params...
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
18 juin 2015 à 20:40
C'est mieux comme ça ?
$sql = "SELECT pseudo_exp,date_invitation,active,avatar
         FROM amis
   INNER JOIN utilisateurs ON utilisateurs.pseudo = amis.pseudo_exp
        WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)
            OR  (pseudo_exp = :get_pseudo AND pseudo_dest = :session_pseudo)";
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707 > Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020
18 juin 2015 à 21:29
Je ne pense pas que le souci venait de la requête ........ mais plutôt du $params....
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
18 juin 2015 à 21:32
  $params = array('get_pseudo' => $pseudo_dest);

comme ceci ?
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
18 juin 2015 à 21:45
Donc... le code devrait donner :
<?php
//la function qui va recuperer les invitations
function recup_invitations() {
global $bdd;

  //récupération des variables PROPREMENT !
  $pseudo_get= isset($_GET['pseudo'])?$_GET['pseudo']:NULL;

 $result= array();
 if($pseudo_exp && $pseudo_dest){
  $sql = "SELECT pseudo_exp
                      ,date_invitation
                      ,active
                      ,avatar
            FROM amis
	    INNER JOIN utilisateurs ON utilisateurs.pseudo = amis.pseudo_exp
            WHERE pseudo_dest = :get_pseudo";

  // je place les  params dans une variable avant de l'utiliser :
  $params = array(':get_pseudo' => $pseudo_get);
  
  $query = $bdd->prepare($sql);
  $query ->execute($params);  
  $requete = $query->fetchall();
 }
 // le return
 return $result;
}




Après... que doit retournée cette fonction ?
un booleen ( 1 ou 0 )
ou bien .. un tableau contenant toutes les données de la BDD corresponds à la requête ?

Si c'est un booleen que tu veux... il faut modifier le return ainsi
return count($result)>0?1:0;


0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
18 juin 2015 à 21:49
je devrais avoir un array avec les données de l'utilisateur qui envoie la demande (j'ai fais un print sur annuler.php)

j'obtiens ça sinon : Notice: Undefined variable: pseudo_exp in C:\wamp\www\rs\functions\invitations.func.php on line 10
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
Modifié par jordane45 le 18/06/2015 à 21:57
oupsss...

<?php
//la function qui va recuperer les invitations
function recup_invitations() {
global $bdd;

  //récupération des variables PROPREMENT !
  $pseudo_get= isset($_GET['pseudo'])?$_GET['pseudo']:NULL;

 $result= array();
 if($pseudo_get){
  $sql = "SELECT pseudo_exp
                      ,date_invitation
                      ,active
                      ,avatar
            FROM amis
     INNER JOIN utilisateurs ON utilisateurs.pseudo = amis.pseudo_exp
            WHERE pseudo_dest = :get_pseudo";

  // je place les  params dans une variable avant de l'utiliser :
  $params = array(':get_pseudo' => $pseudo_get);
  
  $query = $bdd->prepare($sql);
  $query ->execute($params);  
  $requete = $query->fetchall();
 }
 // le return
 return $result;
}

0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
Modifié par Zakarya93 le 18/06/2015 à 21:56
j'obtiens toujours : Notice: Undefined variable: pseudo_dest in C:\wamp\www\rs\functions\invitations.func.php on line 10

avec un Array()
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707 > Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020
18 juin 2015 à 21:57
Change dans le IF
 if($pseudo_get){
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
18 juin 2015 à 22:00
j'ai mtn un Array ( ) qui s'affiche
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
18 juin 2015 à 22:04
Tu obtiens quoi dans phpmyadmin si tu lances la requête
SELECT pseudo_exp
                      ,date_invitation
                      ,active
                      ,avatar
            FROM amis
     INNER JOIN utilisateurs ON utilisateurs.pseudo = amis.pseudo_exp
            WHERE pseudo_dest = 'jean'


et avec

SELECT pseudo_exp
                      ,date_invitation
                      ,active
                      ,avatar
            FROM amis
     INNER JOIN utilisateurs ON utilisateurs.pseudo = amis.pseudo_exp
            WHERE pseudo_dest = 'xzak47'



Et aussi .. que donnes ce code ?


/la function qui va recuperer les invitations
function recup_invitations() {
global $bdd;

  //récupération des variables PROPREMENT !
  $pseudo_get= isset($_GET['pseudo'])?$_GET['pseudo']:NULL;

 $result= array();
 if($pseudo_get){
  $sql = "SELECT pseudo_exp
                      ,date_invitation
                      ,active
                      ,avatar
            FROM amis
     INNER JOIN utilisateurs ON utilisateurs.pseudo = amis.pseudo_exp
            WHERE pseudo_dest = :get_pseudo";

  // je place les  params dans une variable avant de l'utiliser :
  $params = array(':get_pseudo' => $pseudo_get);
  
  $query = $bdd->prepare($sql);
  $query ->execute($params);  
  $requete = $query->fetchall();
 }

// pour les tests :
echo "<br> PARAMS :<br>";
print_r($params);

 // le return
 return $result;
}


0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
18 juin 2015 à 22:09
le code me donne : Notice: Undefined variable: params in C:\wamp\www\rs\functions\invitations.func.php on line 29 avec un params et un array qui s'affichent

pour la première requete 1/ : MySQL a retourné un résultat vide (aucune ligne). (Traitement en 0.0200 sec)

respectivement, la 2/ : MySQL a retourné un résultat vide (aucune ligne). (Traitement en 0.0010 sec)
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707 > Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020
18 juin 2015 à 22:13
Visiblement;.. tu n'as rien dans la variable GET ...
testes ça :
function recup_invitations() {
global $bdd;

  //récupération des variables PROPREMENT !
  $pseudo_get= isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
  
 $result= array();
 if($pseudo_get){
  $sql = "SELECT pseudo_exp
                      ,date_invitation
                      ,active
                      ,avatar
            FROM amis
     INNER JOIN utilisateurs ON utilisateurs.pseudo = amis.pseudo_exp
            WHERE pseudo_dest = :get_pseudo";

  // je place les  params dans une variable avant de l'utiliser :
  $params = array(':get_pseudo' => $pseudo_get);
  
  // pour les tests :
  echo "<br> PARAMS :<br>";
  print_r($params);

  $query = $bdd->prepare($sql);
  $query ->execute($params);  
  $requete = $query->fetchall();
 }else{
   echo "<br> Erreur .. aucun pseudo ! ";
   print_r($_GET);
}
 // le return
 return $result;
}
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
18 juin 2015 à 22:19
pas d'erreurs mais j'obtiens : Erreur .. aucun pseudo ! Array ( [page] => invitations ) Array ( )
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707 > Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020
18 juin 2015 à 22:23
C'est un souci de requête ET de variable ...
En fait .. c'est par rapport à la variable en SESSION que tu veux récupérer les infos ... donc:
function recup_invitations() {
global $bdd;

  //récupération des variables PROPREMENT !
  $pseudo_dest= isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
  
 $result= array();
 if($pseudo_dest){
  $sql = "SELECT pseudo_exp
                      ,date_invitation
                      ,active
                      ,avatar
            FROM amis
          INNER JOIN utilisateurs ON utilisateurs.pseudo = amis.pseudo_exp
            WHERE pseudo_dest = :session_pseudo";

  // je place les  params dans une variable avant de l'utiliser :
  $params = array(':session_pseudo' => $pseudo_dest);
  
  // pour les tests :
  echo "<br> PARAMS :<br>";
  print_r($params);

  $query = $bdd->prepare($sql);
  $query ->execute($params);  
  $requete = $query->fetchall();
 }else{
   echo "<br> Erreur .. aucun pseudo ! ";
}
 // le return
 return $result;
}

0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
18 juin 2015 à 22:26
j'obtiens :
PARAMS :
Array ( [:session_pseudo] => xzak47 ) Array ( )

or je devrais avoir les données du profil :/
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
18 juin 2015 à 22:39
Ah oui dans la requete ! j'obtiens : MySQL a retourné un résultat vide (aucune ligne). (Traitement en 0.0170 sec)
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
18 juin 2015 à 22:43
Tu peux nous dire ce que donne :
SELECT *
FROM amis
 WHERE pseudo_dest = 'xzak47'
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10 > jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024
18 juin 2015 à 22:44
MySQL a retourné un résultat vide (aucune ligne). (Traitement en 0.0000 sec)
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
18 juin 2015 à 22:46
.... zak a reçu une invitation au moins ????
Ne te tromperais tu pas avec jean ???

essayes avec jean pour voir
SELECT *
FROM amis
 WHERE pseudo_dest = 'jean'
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10 > jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024
18 juin 2015 à 22:48
j'ai : MySQL a retourné un résultat vide (aucune ligne). (Traitement en 0.0010 sec)
Oui c'est zak qui a recu
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
18 juin 2015 à 22:57
L'enregistrement de la demande est-il bien présent dans la base de données ?
0

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

Posez votre question
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
18 juin 2015 à 23:28
MERCI A VOUS 2 :D
0