Function accepter_demande() en pdo
Résolu
Zakarya93
Messages postés
1026
Statut
Membre
-
Zakarya93 Messages postés 1026 Statut Membre -
Zakarya93 Messages postés 1026 Statut Membre -
Bonjour,
Je dois convertir ce code mysql en pdo :
J'ai tenté, j'ai fais :
Pouvez-vous me corriger entièrement svp ? Merci d'avance :)
Je dois convertir ce code mysql en pdo :
//la function qui va verifier si le destinataire a accepté la demande
function accepter_demande()
{
$query = mysql_query("
SELECT active FROM amis WHERE (pseudo_exp = '{$_SESSION['pseudo']}' AND pseudo_dest = '{$_GET['pseudo']}')
OR
(pseudo_exp = '{$_GET['pseudo']}' AND pseudo_dest = '{$_SESSION['pseudo']}')
");
while($row = mysql_fetch_assoc($query))
{
if($row['active'] == 0)
{
return false;
}else{
return true;
}
}
J'ai tenté, j'ai fais :
//la function qui va verifier si le destinataire a accepté la demande
function accepter_demande()
{
$bdd = new PDO('mysql:host=localhost;dbname=rs;charset=utf8', 'root', '');
//donc la, la verification:
$req = $bdd->query('SELECT COUNT(*) FROM amis WHERE pseudo_exp="'.$pseudo_exp.'" AND pseudo_dest="'.$pseudo_dest.'"');
$etat = $req->fetchColumn();
if($row == 0){
return false;
}else{
return true;
}
}
Pouvez-vous me corriger entièrement svp ? Merci d'avance :)
16 réponses
-
Pouvez-vous me corriger entièrement svp ? Merci d'avance :)
Ce coup-ci .. NON !
Tu vas pas nous demander de te corriger tous les codes du tuto que tu es en train de faire quand même ?????
Après ta question d'hier ... je pensais que tu essaierais de comprendre à minima ce que tu fais ... le tout .. en t'inspirant des NOMBREUX code qu'on t'a déjà corrigé ET Expliqué ...
Et bon.. je ne veux pas dire ... mais si tu regardes bien.. c'est pratiquement la même fonction que celle que je t'ai corrigé cette nuit !
Tu n'as qu'as t'en inspirer !
-
Bon aller ... je t'ai suffisamment fait réfléchir pour ce soir ...
//la function qui va verifier si le destinataire a accepté la demande function accepter_demande(){ global $bdd; //récupération des variables PROPREMENT ! $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $sql = "SELECT active FROM amis FROM amis WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo) OR (pseudo_ dest = :get_pseudo AND pseudo_dest = :session_pseudo)"; // je place les params dans une variable avant de l'utiliser : $params = array('get_pseudo' => $pseudoGet, 'session_pseudo' => $pseudoSession) ; $query = $bdd->prepare($sql); $query ->execute($params); $result = $query->fetchall(); //On récupère le contenu de la colonne 'active' $active = $result[0]['active']; // le return : // si active == 0 on retourne false .. sinon true : return $active == 0 ? false : true ; }
-
c'est un pb de copier/coller
remplace le code :// je place les params dans une variable avant de l'utiliser : $params = array('get_pseudo' => $pseudoGet, 'session_pseudo' => $pseudoSession) ;// je place les params dans une variable avant de l'utiliser : $params = array('get_pseudo' => $pseudo_exp , 'session_pseudo' => $pseudo_dest) ; -
J'ai tenté de faire le code, je l'ai posté dites moi ce qui ne va pas svp
-
ok.. ce qui ne va pas donc :
- Pourquoi remets tu la connexion à ta BDD dans ta fonction ...... alors que tu disposes déjà d'une variable qui la contient ??
- Dans ton code... d'où provient la variable $row ?
- Où sont initialisées tes variables $pseudo_exp et $pseudo_sess ?
- Pourquoi ta requête n'est pas la même que celle de la fonction que tu essayes de traduire en pdo ??
Voila... si tu arrives à répondre à ces questions.. je penses que tu réussira à corriger ton code par toi même -
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
global $bdd; // déclaration globale de BDD //récupération des variables PROPREMENT ! $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; // je mets la requête dans une variable AVANT de l'utiliser // PS : j'ai ajouté un ALIAS (COUNT(id_invitation) as NB) afin de pouvoir plus facilement // utiliser le résultat de la requête... $sql = "SELECT COUNT(id_invitation) as NB FROM amis WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo) OR (pseudo_ dest = :get_pseudo AND pseudo_dest = :session_pseudo)"; // je place les params dans une variable avant de l'utiliser : $params = array('get_pseudo' => $pseudoGet, 'session_pseudo' => $pseudoSession) ; $query = $bdd->prepare($sql); $query ->execute($params); $result = $query->fetchall(); //on récupère le NB de ta requête... $nb = $result[0]['NB']; //On fait un RETURN pour envoyer le résultat vers ton code... return $nb; }
ce serait bon comme ceci ? -
//la function qui va verifier si le destinataire a accepté la demande function accepter_demande() global $bdd; // déclaration globale de BDD $req = $bdd->prepare('SELECT COUNT(*) FROM amis WHERE pseudo_exp=:pseudo_exp AND pseudo_dest=:pseudo_dest'); $req->execute(array(':pseudo_exp'=>$pseudo_exp, 'pseudo_dest'=>$pseudo_dest)); $check = $req->fetchColumn(); if($check > 0){ // Il y a des valeurs. soit return true; } else{ // Pas de valeur. soit return false; } }
Celui ci est bon ? -
....
reprenons dans l'ordre ....
Déjà ... quelle est la requête sql que tu dois réaliser ?
-
Ouii c'est une instruction qui va permettre d'interroger ma bdd
-
Et donc... pour ta fonction accepter_demande .. laquelle dois tu utiliser ?
PS: "qui va permettre d'interroger ma bdd" ... pas seulement... une requête peut permettre d'interroger une BDD ( requête SELECT ) .. de mettre à jour des champs dans une table ( requête UPDATE ) .. d'insérer des nouvelles données dans une table ( requête INSERT )...
-
-
-
-
.......... tu me dis savoir ce qu'est une requête SQL ....et tu n'es pas en mesure de me dire laquelle tu dois utiliser ?
Pour t'aider : indique nous, la requête utilisée dans le code que tu posté dans ta question.... (le code que tu veux convertir en PDO ) ...
Autrement dit ... que contient la variable $sql ?? -
-
-
$sql =" SELECT active FROM amis WHERE (pseudo_exp = '{$_SESSION['pseudo']}' AND pseudo_dest = '{$_GET['pseudo']}') ";-
c'est bien celle là ...
Sauf qu'en l'état ... les variables ne sont pas bien passées ....
Il faut que tu utilises la syntaxe de la pdo...
Comme dans le code :$sql = "SELECT COUNT(id_invitation) as NB FROM amis WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo) OR (pseudo_ dest = :get_pseudo AND pseudo_dest = :session_pseudo)"; // je place les params dans une variable avant de l'utiliser : $params = array('get_pseudo' => $pseudoGet, 'session_pseudo' => $pseudoSession) ; $query = $bdd->prepare($sql); $query ->execute($params); $result = $query->fetchall();
-
-
Merci vous êtes trop sympathique ^^
sinon j'ai 3 erreurs :
Notice: Undefined variable: pseudoGet in C:\wamp\www\rs\functions\profile.func.php on line 63
Notice: Undefined variable: pseudoSession in C:\wamp\www\rs\functions\profile.func.php on line 63
Notice: Undefined offset: 0 in C:\wamp\www\rs\functions\profile.func.php on line 70
<?php //----------------------------- //Profile.func.php //----------------------------- // la fonction qui va recuperer les informations de la personne choisie par l'utilisateur function recuperer_info_membre_choisi($pseudo = NULL) { global $bdd; // déclaration globale de BDD $result = array(); $sql = "SELECT * FROM utilisateurs WHERE pseudo=:pseudo" ; $query = $bdd->prepare($sql); $query->execute(array(':pseudo' =>$pseudo)); $result=$query->fetchall(); return $result; } //la function qui va vérifier si une demande existe entre les deux membres function demande_existe() { global $bdd; // déclaration globale de BDD //récupération des variables PROPREMENT ! $pseudoSession = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudoGet = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; // je mets la requête dans une variable AVANT de l'utiliser // PS : j'ai ajouté un ALIAS (COUNT(id_invitation) as NB) afin de pouvoir plus facilement // utiliser le résultat de la requête... $sql = "SELECT COUNT(id_invitation) as NB FROM amis 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('get_pseudo' => $pseudoGet, 'session_pseudo' => $pseudoSession) ; $query = $bdd->prepare($sql); $query ->execute($params); $result = $query->fetchall(); //on récupère le NB de ta requête... $nb = $result[0]['NB']; //On fait un RETURN pour envoyer le résultat vers ton code... return $nb; } //la function qui va verifier si le destinataire a accepté la demande function accepter_demande(){ global $bdd; //récupération des variables PROPREMENT ! $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $sql = "SELECT active FROM amis FROM amis WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo) OR (pseudo_ dest = :get_pseudo AND pseudo_dest = :session_pseudo)"; // je place les params dans une variable avant de l'utiliser : $params = array('get_pseudo' => $pseudoGet, 'session_pseudo' => $pseudoSession) ; $query = $bdd->prepare($sql); $query ->execute($params); $result = $query->fetchall(); //On récupère le contenu de la colonne 'active' $active = $result[0]['active']; // le return : // si active == 0 on retourne false .. sinon true : return $active == 0 ? false : true ; } -
J'ai toujours ce : Notice: Undefined offset: 0 in C:\wamp\www\rs\functions\profile.func.php on line 70
malgré la modif ligne 70 -
<?php //----------------------------- //Profile.func.php //----------------------------- // la fonction qui va recuperer les informations de la personne choisie par l'utilisateur function recuperer_info_membre_choisi($pseudo = NULL) { global $bdd; // déclaration globale de BDD $result = array(); $sql = "SELECT * FROM utilisateurs WHERE pseudo=:pseudo" ; $query = $bdd->prepare($sql); $query->execute(array(':pseudo' =>$pseudo)); $result=$query->fetchall(); return $result; } //la function qui va vérifier si une demande existe entre les deux membres function demande_existe() { global $bdd; // déclaration globale de BDD //récupération des variables PROPREMENT ! $pseudoSession = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudoGet = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; // je mets la requête dans une variable AVANT de l'utiliser // PS : j'ai ajouté un ALIAS (COUNT(id_invitation) as NB) afin de pouvoir plus facilement // utiliser le résultat de la requête... $sql = "SELECT COUNT(id_invitation) as NB FROM amis 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('get_pseudo' => $pseudoGet, 'session_pseudo' => $pseudoSession) ; $query = $bdd->prepare($sql); $query ->execute($params); $result = $query->fetchall(); //on récupère le NB de ta requête... $nb = $result[0]['NB']; //On fait un RETURN pour envoyer le résultat vers ton code... return $nb; } //la function qui va verifier si le destinataire a accepté la demande function accepter_demande(){ global $bdd; //récupération des variables PROPREMENT ! $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $sql = "SELECT active FROM amis FROM amis WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo) OR (pseudo_ dest = :get_pseudo AND pseudo_dest = :session_pseudo)"; // je place les params dans une variable avant de l'utiliser : $params = array('get_pseudo' => $pseudo_exp , 'session_pseudo' => $pseudo_dest) ; $query = $bdd->prepare($sql); $query ->execute($params); $result = $query->fetchall(); //On récupère le contenu de la colonne 'active' $active = isset($result) ? $result[0]['active'] : 0; // le return : // si active == 0 on retourne false .. sinon true : return $active == 0 ? false : true ; } -
1 millions de merci; mon site est bientot terminé :)
-