Parse error: syntax error, unexpected '$bdd' (T_VARIABLE),
Résolu
Zakarya93
Messages postés
1026
Statut
Membre
-
Zakarya93 Messages postés 1026 Statut Membre -
Zakarya93 Messages postés 1026 Statut Membre -
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
-
{ oubliée.
-
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 -
-
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; } } ?> -
-
-
-
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-
(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
-
-
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 !-
-
-
-
-
<? //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 :
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'>"; }