Aller au contenu
Funky-Emulation Recrute
  • 0
Playzer

en cours Soucis Boolean

Question

Bonsoir à tous, j'ai un petit problème sur mon code, on m'indique que ma fonction fetch est un boolean, quelqu'un pourrais m'expliquer le soucis et m'aider à résoudre ce petit problème ?

 

Erreur rencontrés :

 

Fatal error: Uncaught Error: Call to a member function fetch() on boolean in C:\xampp\htdocs\Ancestral\Modules\Site\Views\classement.php:34 Stack trace: #0 C:\xampp\htdocs\Ancestral\Modules\Site\classement.php(4): include() #1 C:\xampp\htdocs\Ancestral\index.php(20): include('C:\\xampp\\htdocs...') #2 {main} thrown in C:\xampp\htdocs\Ancestral\Modules\Site\Views\classement.php on line 34

 

Code de ma page :

 

<?php
   $reponse = $pdo->query('SELECT player.name, player.level, player.exp, empire, IFNULL(guild.name, "Pas de guilde") guild FROM player INNER JOIN player_index ON player_index.id = account_id LEFT JOIN guild_member ON pid = player.id LEFT JOIN guild ON guild.id = guild_id ORDER BY player.level DESC, player.exp DESC LIMIT 10');
   $place = 1;
   $imgs = ['gold.png', 'silver.png', 'bronze.png'];

   while ($donnees = $reponse->fetch()) { ?>

           <?php if(isset($imgs[$place-1])): ?>

           <?php else: ?>
<?php echo $place; ?>
           <?php endif; ?>
<?php echo $donnees->name; ?>
<?php echo $donnees->level; ?>
<?php echo $donnees->exp; ?>
<?php echo $donnees->guild; ?>
<?php echo $donnees->empire; ?>

       <?php
       $place++;
   }
?>

 

En vous remerciant d'avance.

Partager ce message


Lien à poster
Partager sur d’autres sites

5 réponses à cette question

Messages recommandés

  • 0

Déjà utilise correctement ton while ainsi que les données à l’intérieur :)

 

$donnees->name

 

en

 

$donnees['name']

 

etc en fonction du nom de la colonne dans la bdd ;)

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Il faut que tu sélectionnes la DB player auparavant, sinon la requête SQL ne sait pas dans quelle base de données chercher :

 

$pdo->query("USE player");

 

tu peux aussi ajouter player. en préfixe de chaque colonne dans la requête, mais un peu moins propre

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

J'ai fais ce que m'a dit Asikoo j'ai ceci en erreur :

 

Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'account.player' doesn't exist in C:\xampp\htdocs\Ancestral\Modules\Site\Views\classement.php:30 Stack trace: #0 C:\xampp\htdocs\Ancestral\Modules\Site\Views\classement.php(30): PDO->query('SELECT player.n...') #1 C:\xampp\htdocs\Ancestral\Modules\Site\classement.php(4): include('C:\\xampp\\htdocs...') #2 C:\xampp\htdocs\Ancestral\index.php(20): include('C:\\xampp\\htdocs...') #3 {main} thrown in C:\xampp\htdocs\Ancestral\Modules\Site\Views\classement.php on line 30

 

Ma requête :

 

$reponse = $pdo->query('SELECT player.name, player.level, player.exp, empire, IFNULL(guild.name, "Pas de guilde") guild FROM player INNER JOIN player_index ON player_index.id = account_id LEFT JOIN guild_member ON pid = player.id LEFT JOIN guild ON guild.id = guild_id ORDER BY player.level DESC, player.exp');

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Il faut que tu sélectionnes la DB player auparavant, sinon la requête SQL ne sait pas dans quelle base de données chercher :

 

$pdo->query("USE player");

 

tu peux aussi ajouter player. en préfixe de chaque colonne dans la requête, mais un peu moins propre

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Du coup je suis obligé de faire ça :

 

$pdo = new PDO('mysql:host=192.168.1.75;dbname=account;charset=utf8', 'root', 'pF5tfiUH3f7KDyT49rQu52Hu88');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
$pdo1 = new PDO('mysql:host=192.168.1.75;dbname=player;charset=utf8', 'root', 'pF5tfiUH3f7KDyT49rQu52Hu88');
$pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo1->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

×

Information importante

By using this site, you agree to our Conditions d’utilisation.