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 :)
A voir également:
- Unexpected variable php
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Error 1962 ✓ - Forum PC fixe
- Playback error reconnect in 3s (1/5) francais - Forum Box et Streaming vidéo
- Bad request error 403 paiement ✓ - Forum Réseaux sociaux
- A javascript error occurred in the main process - Forum Matériel & Système
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).
<?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; } } ?>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) ?