Parse error: syntax error, unexpected '$bdd' (T_VARIABLE),
Résolu
Zakarya93
Messages postés
984
Date d'inscription
Statut
Membre
Dernière intervention
-
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
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 :
J'ai fais :
Pouvez-vous me corriger svp et voir mon erreur ? Merci d'avance :)
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
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 !
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
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
(script liste_membre.php juste au dessus)
J'ai entré ceci :
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
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
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 :
Et donc là .. dans ta page liste_membre.php
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 !
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 !
<? //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(); }
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 :
Et pour tester,
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'>"; }
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
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).
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.
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) ?