[RESOLU] problème affichage avec variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] problème affichage avec variable

Re: problème affichage avec variable

par two3d » 22 mai 2022, 09:46

le message d'erreur:
Notice: Undefined variable: tile_avatar in /home/clients/78f15c369c0786c4a419608e9e60028a/web/map.php on line 86...
Quelle est la ligne 86 dans map.php ?

or1 a raison, ton code est mal indenté, valide mais mal indenté, regarde la correction qu'il ta fait et prend exemple, ya un minimum de règles à respecter quand on écrit du code, (dans tous les langages), certes chacun aura sa touche perso (comme accolade en dessous de la condition ou juste après la condition mais l'accolade fermante pas après le point-virgule)

Perso, j’écrirais ton code comme ceci :
if(!empty($membreSession)){
    $tile = $membreSession['tile'];
    $tile_avatar = $membreSession['tile_avatar'];
}
Certains l'écrivent comme ceci :
if(!empty($membreSession))
{
    $tile = $membreSession['tile'];
    $tile_avatar = $membreSession['tile_avatar'];
}
D'autres l'écrivent comme ceci :
if( !empty( $membreSession ) ) {
    $tile = $membreSession['tile'];
    $tile_avatar = $membreSession['tile_avatar'];
}

référence : https://pear.php.net/manual/en/standards.php
traduit : https://pear-php-net.translate.goog/man ... x_tr_hl=fr

Re: problème affichage avec variable

par or 1 » 21 mai 2022, 22:04

je n'ai pas dit qu'il n'était pas valide.

Re: problème affichage avec variable

par nestor94 » 21 mai 2022, 21:56

non, non, le code est correct.. l'accolade fermante est en bout de ligne....
if (!empty($membreSession )) { 
$tile = $membreSession['tile'];
$tile_avatar = $membreSession['tile_avatar'];}

Re: problème affichage avec variable

par or 1 » 20 mai 2022, 16:49

il faudrait indenter le code correctement.
if (!empty($membreSession )) { 
  $tile = $membreSession['tile'];
  $tile_avatar = $membreSession['tile_avatar'];
}
après ce code, la variable $tile_avatar peut ne pas exister si cela ne rentre pas dans le if, d'où le warning.

problème affichage avec variable

par nestor94 » 20 mai 2022, 16:40

Je galère depuis quelques temps sur ce sujet et ne trouve pas la soluce adéquate?
Je souhaite afficher tous les avatars des joueurs sur la map de jeu.

Ce qui fonctionne actuellement: (ici, on affiche seulement que les tiles "terrain")
$sql = "SELECT tile FROM map LEFT JOIN membres ON map.pos_x= membres.pos_x-3 AND map.pos_y = membres.pos_y+3  WHERE membres.id=:id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch(); 
if (!empty($membreSession )) { 
$tile = $membreSession['tile'];}
else {
$tile = '/relief/tile_blank.gif';}    
echo '<img src='.$tile.'>';?></td>

Ce qui ne fonctionne pas et que je souhaite mettre en place (affichage de la tile terrain OU tile avatar si présent).

$sql = "SELECT tile, tile_avatar FROM map LEFT JOIN membres ON map.pos_x= membres.pos_x-3 AND map.pos_y = membres.pos_y+3 WHERE membres.id=:id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch(); 
if (!empty($membreSession )) { 
$tile = $membreSession['tile'];
$tile_avatar = $membreSession['tile_avatar'];}
if($tile_avatar!= '') {
echo '<img src='.$tile_avatar.'>';}	
else {
echo '<img src='.$tile.'>';} ?></td>
le message d'erreur:
Notice: Undefined variable: tile_avatar in /home/clients/78f15c369c0786c4a419608e9e60028a/web/map.php on line 86...

tile_avatar est bien présent en table (par défaut "vide") mais incrémenté lors du déplacement du joueur sur la map.