Parse error: syntax error, unexpected '$bdd' (T_VARIABLE),

Résolu/Fermé
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 7 juin 2015 à 14:45
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 8 juin 2015 à 21:11
Bonjour,

J'ai cette erreur : Parse error: syntax error, unexpected '$bdd' (T_VARIABLE), expecting '{' in C:\wamp\www\rs\functions\liste_membre.func.php on line 5

Sachant que je voulais convertir ce script (membre.func.php) en pdo :
<?php
//la function qui va récupérer le pseudo et l'avatar des membres sauf de celui connecté
function recuperer_pseudo_avatar()
{
$results = array();
$query = mysql_query("SELECT pseudo,avatar FROM utilisateurs WHERE pseudo!='{$_SESSION['pseudo']}'");
while($row = mysql_fetch_assoc($query))
{
$results[] = $row;
}
return $results;
}
?> 


J'ai fais :
<?php
//la function qui va récuperer le pseudo et l'avatar du membre sauf de celui connecté
function recuperer_pseudo_avatar()

$bdd = new PDO('mysql:host=localhost;dbname=rs;charset=utf8', 'root', '');
    //donc la, la verification:
$req = $bdd->query('SELECT COUNT(*) FROM utilisateurs WHERE pseudo="'.$pseudo.'" AND avatar="'.$avatar.'"');
$etat = $req->fetchColumn();  

if($etat == 0){
return 0;
}else{
 return 1;

     }
}

?>


Pouvez-vous me corriger svp et voir mon erreur ? Merci d'avance :)

4 réponses

NHenry Messages postés 15190 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 février 2025 353
7 juin 2015 à 14:51
{ oubliée.
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
7 juin 2015 à 14:54
J'ai maintenant 3 erreurs :

Notice: Undefined variable: pseudo in C:\wamp\www\rs\functions\liste_membre.func.php on line 7

Notice: Undefined variable: avatar in C:\wamp\www\rs\functions\liste_membre.func.php on line 7

Warning: Invalid argument supplied for foreach() in C:\wamp\www\rs\pages\liste_membre.php on line 10
0
NHenry Messages postés 15190 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 février 2025 353
7 juin 2015 à 15:04
Avant :
pseudo!='{$_SESSION['pseudo']}'
Après :
pseudo="'.$pseudo.'"

Si tu veux utiliser une variable globale dans une fonction, tu dois la redéclarer comme Globale (oui, c'est pas toujours évident/logique PHP).
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
7 juin 2015 à 15:12
Corrigez mon code svp :

<?php
//la function qui va récuperer le pseudo et l'avatar du membre sauf de celui connecté
function recuperer_pseudo_avatar() {
	global $bdd; // déclaration globale de BDD

$bdd = new PDO('mysql:host=localhost;dbname=rs;charset=utf8', 'root', '');
    //donc la, la verification:
$req = $bdd->query('SELECT COUNT(*) FROM utilisateurs WHERE pseudo="'.$pseudo.'" AND avatar="'.$avatar.'"');
$etat = $req->fetchColumn();  

if($etat == 0){
return 0;
}else{
 return 1;

     }
}

?>
0
NHenry Messages postés 15190 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 février 2025 353
7 juin 2015 à 16:45
Je t'ai donné des pistes de recherche, a toi de voir, j'ai l'impression qui tu attends une réponse toute faite.

Si tu rencontre un soucis, décris-le. le problème de variable a déjà été décrit dans mon précédent message.
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
7 juin 2015 à 21:38
Bonsoir,

Ces variables, elles sont issues de la session active (si le membre A est connecté, ce sont les infos d membre A qui s'affichent) ?
0
jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 734
Modifié par jordane45 le 8/06/2015 à 20:34
Bonsoir, je vais me méler un peu de cette discussion...

Déjà ... NE REMETS PAS la connexion à ta BDD dans ton code !
Tu as un fichier de connexion.. tu l'importe via un REQUIRE ça suffira ! (comme on l'a fait dans tes autres codes !!!!)

Ton souci de variable BDD non déclarée... vient du fait qu'il faut que tu penses à mettre un global $bdd; dans chacune de tes fonctions !


<?php
//la function qui va récuperer le pseudo et l'avatar du membre sauf de celui connecté
function recuperer_pseudo_avatar($pseudo,$avatar="defaut.jpg") {
 global $bdd; // déclaration globale de BDD

$req = $bdd->query('SELECT COUNT(*) FROM utilisateurs WHERE pseudo="'.$pseudo.'" AND avatar="'.$avatar.'"');
$etat = $req->fetchColumn();  

// ceci ne fonctionnera jamais !
/*if($etat == 0){
return 0;
}else{
 return 1;

     }
*/

// commence par faire un PRINT de ta variable $etat pour savoir ce qu'elle contient 
print_r($etat);

// Ensuite si ton but est de savoir si la requête a retourné quelquechose tu peux faire:
return count($etat)>0 ? 1 : 0 ;

}

?>



Penses aussi à nous montrer COMMENT tu appelles la fonction dans ton code .... quels arguments tu lui passes (car il en faut... il faut le pseudo.. ET l'avatar .... )*



Cordialement,
Jordane
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
8 juin 2015 à 20:39
(script liste_membre.php juste au dessus)

J'ai entré ceci :
<?php
//la function qui va récuperer le pseudo et l'avatar du membre sauf de celui connecté
function recuperer_pseudo_avatar($pseudo,$avatar="defaut.jpg") {
 global $bdd; // déclaration globale de BDD

$req = $bdd->query('SELECT COUNT(*) FROM utilisateurs WHERE pseudo="'.$pseudo.'" AND avatar="'.$avatar.'"');
$etat = $req->fetchColumn();  


// commence par faire un PRINT de ta variable $etat pour savoir ce qu'elle contient 
print_r($etat);

// Ensuite si ton but est de savoir si la requête a retourné quelquechose tu peux faire:
return count($etat)>0 ? 1 : 0 ;

}

?>


et j'obtiens :
Warning: Missing argument 1 for recuperer_pseudo_avatar(), called in C:\wamp\www\rs\pages\liste_membre.php on line 8 and defined in C:\wamp\www\rs\functions\liste_membre.func.php on line 3

Notice: Undefined variable: pseudo in C:\wamp\www\rs\functions\liste_membre.func.php on line 6

Warning: Invalid argument supplied for foreach() in C:\wamp\www\rs\pages\liste_membre.php on line 10
0
jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 734
8 juin 2015 à 20:42
Tu veux récupérer l'avatar de tous les users sauf de celui qui est connecté ?
Dans ce cas... ta requête n'est pas bonne !

Change le code ainsi :

//la function qui va récuperer le pseudo et l'avatar du membre sauf de celui connecté
function recuperer_pseudo_avatar() {
 global $bdd; // déclaration globale de BDD

$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo'] : NULL;
$strWhere = $pseudo ? " WHERE pseudo !='$pseudo'  " : '' ;

$sql = "SELECT pseudo, avatar FROM utilisateurs $strWhere";

 $req = $bdd->query($sql);
 return $req->fetchColumn();  

}



Et donc là .. dans ta page liste_membre.php
<?php 
include('functions/membre.func.php');
include('body/header.php');
include('body/menu.php');
?>
<h3>Liste des membres</h3>
<?php 
$pseudos_avatars = recuperer_pseudo_avatar();

  foreach($pseudos_avatars as $pseudo_avatar) {
    echo "<p><a href=''>".$pseudo_avatar['pseudo']."</a></p>
              <img src='avatar/".$pseudo_avatar['avatar']."' height='100' width='100' alt='avatar'>";
  }


PS: Tu remarqueras que j'ai tout fait dans le PHP .. pour éviter d'ouvrir/fermer des balises php un peu partout dans le code !
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
8 juin 2015 à 20:44
Merci! j'obtiens : Fatal error: Call to undefined function recuperer_pseudo_avatar() in C:\wamp\www\rs\pages\liste_membre.php on line 8
0
jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 734
8 juin 2015 à 20:46
Tu peux remplacer l'inclde par un REQUIRE_ONCE de la ligne :
include('functions/membre.func.php');


==>>
require_once('functions/membre.func.php');
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
8 juin 2015 à 20:51
malgré ceci j'ai : Fatal error: Call to undefined function recuperer_pseudo_avatar() in C:\wamp\www\rs\pages\liste_membre.php on line 8
Call Stack
0
jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 734 > Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020
8 juin 2015 à 20:55
tu peux nous poster de nouveau le code de ta page functions/membre.func.php ?
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
8 juin 2015 à 20:59
<?
//la function qui va récuperer le pseudo et l'avatar du membre sauf de celui connecté
function recuperer_pseudo_avatar() {
 global $bdd; // déclaration globale de BDD

$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo'] : NULL;
$strWhere = $pseudo ? " WHERE pseudo !='$pseudo'  " : '' ;

$sql = "SELECT pseudo, avatar FROM utilisateurs $strWhere";

 $req = $bdd->query($sql);
 return $req->fetchColumn();  

}
0
jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 734
8 juin 2015 à 21:08
Désolé.. pas besoin de mettre de fecth avec query ...
Mais de toutes façons.. il vaut mieux passer par les requête préparées :

function recuperer_pseudo_avatar() {
 global $bdd; // déclaration globale de BDD

$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo'] : NULL;
$strWhere = $pseudo ? " WHERE pseudo !='$pseudo'  " : '' ;

$sql = "SELECT pseudo, avatar FROM utilisateurs $strWhere";

 $req = $bdd->prepare($sql);
 $req->execute();  
 $resultat = $req->fetchall();
return $resultat;
}


Et pour tester,

<?php 
require_once('functions/membre.func.php');
include('body/header.php');
include('body/menu.php');
?>
<h3>Liste des membres</h3>
<?php 
$pseudos_avatars = recuperer_pseudo_avatar();

// le temps des tests :
print_r($pseudos_avatars);

 foreach($pseudos_avatars as $pseudo_avatar) {
    echo "<p><a href=''>".$pseudo_avatar['pseudo']."</a></p>
              <img src='avatar/".$pseudo_avatar['avatar']."' height='100' width='100' alt='avatar'>";
  }


0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
8 juin 2015 à 21:11
j'obtiens : Array ( [0] => Array ( [pseudo] => jean [0] => jean [avatar] => defaut.jpg [1] => defaut.jpg ) )

jean

c'est parfait ! Merci encore, que Dieu vous garde !
0