Problème d'invitation et function recup_invitation
Résolu
Zakarya93
Messages postés
1026
Statut
Membre
-
Zakarya93 Messages postés 1026 Statut Membre -
Zakarya93 Messages postés 1026 Statut Membre -
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 :
2/ Sachant que le script mysql_ de ma function recup_invitation est :
pouvez-vous corrigé le code que j'ai fais ?
Merci d'avance :)
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 :)
A voir également:
- Problème d'invitation et function recup_invitation
- Comment envoyer une invitation sur facebook - Guide
- Invitation annulée facebook visible ✓ - Forum Facebook
- Impossible d'envoyer l'invitation facebook - Forum Mail
- Annulation demande d'ajout ami Facebook ✓ - Forum Facebook
- Invitation envoyée - Forum Facebook
5 réponses
Dans ta requête ...
Tu y as combien de paramètres ??
Et dans le params.... tu en as combien ?
... à ton avis... est-ce bon ?
$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 ?
Donc... le code devrait donner :
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
<?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;
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;
}
Tu obtiens quoi dans phpmyadmin si tu lances la requête
et avec
Et aussi .. que donnes ce code ?
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;
}
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)
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)
Visiblement;.. tu n'as rien dans la variable GET ...
testes ça :
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;
}
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:
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;
}
Ah oui dans la requete ! j'obtiens : MySQL a retourné un résultat vide (aucune ligne). (Traitement en 0.0170 sec)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
params : 2 paramètres
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...
$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)";$params = array('get_pseudo' => $pseudo_dest);comme ceci ?