[Codage PHP] Affichage résumé d'une ligne
Oasis
-
oasisdudesert Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
oasisdudesert Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je tiens à prévenir que je suis débutant en PHP.
J'administre un Jeu en ligne.
J'aimerai ajouter un résumé venant des informations sur les effets d'un objet.
Pour etre plus clair, voici un bout de code de ma page:
Où cette ligne print, affiche des infos sur l'objet, je voudrai ajouter la variable "effect1" , en l'ajoutant avec le print j'obtiens ceci (qui n'est pas pratique pour un joueur lol):
Qui comprant toutes les infos que je veux rajouter : Will est la volonté, neg est le sens de l'effet de l'objet (credit ou débit) , percent signifie que cette valeur est en poucentage (d'autres objets sont en valeur numeraire), inc_amount est la valeur de credit ou débit.
Pour résumer: Cet objet apporte 5% de Volonté (will) en l'utilisant.
J'aimerai en fait que cette ligne soit traduite et n'affiche que:
J'espere avoir été assez clair sur mon probleme, merci par avance aux bons codeurs de votre aide.
Je tiens à prévenir que je suis débutant en PHP.
J'administre un Jeu en ligne.
J'aimerai ajouter un résumé venant des informations sur les effets d'un objet.
Pour etre plus clair, voici un bout de code de ma page:
print "\n<tr><td>{$r['itmname']}</td><td>{$r['itmdesc']}</td><td>\${$r['itmbuyprice']}</td><td>\${$r['itmsellprice']}</td><td><form action='itembuy.php?ID={$r['itmid']}' method='post'>Qté: <input type='text' STYLE='color: black; background-color: white;' name='qty' value='1' /><input type='submit' STYLE='color: black; background-color: white;' value='Acheter' /></form></td></tr>";
Où cette ligne print, affiche des infos sur l'objet, je voudrai ajouter la variable "effect1" , en l'ajoutant avec le print j'obtiens ceci (qui n'est pas pratique pour un joueur lol):
a:4:{s:4:"stat";s:4:"will";s:3:"dir";s:3:"neg";s:8:"inc_type";s:7:"percent";s:10:"inc_amount";i:5;}
Qui comprant toutes les infos que je veux rajouter : Will est la volonté, neg est le sens de l'effet de l'objet (credit ou débit) , percent signifie que cette valeur est en poucentage (d'autres objets sont en valeur numeraire), inc_amount est la valeur de credit ou débit.
Pour résumer: Cet objet apporte 5% de Volonté (will) en l'utilisant.
J'aimerai en fait que cette ligne soit traduite et n'affiche que:
Volonté: + 5%
J'espere avoir été assez clair sur mon probleme, merci par avance aux bons codeurs de votre aide.
A voir également:
- [Codage PHP] Affichage résumé d'une ligne
- Codage ascii - Guide
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Codage binaire - Guide
- Affichage double ecran - Guide
19 réponses
Pardon, j'ajoute qu'en fait je pense que c'est une condition dont j'ai besion: si percent alors j'affiche % etc...
Encore merci
Encore merci
ça ressemble à du json ce que tu as, il faut que tu le parcours.
Tu peux faire un print_r($r); et nous dire ce que ça retourne?
avec une boucle foreach ou un for tu dois pouvoir avoir les infos que tu souhaites
Tu peux faire un print_r($r); et nous dire ce que ça retourne?
avec une boucle foreach ou un for tu dois pouvoir avoir les infos que tu souhaites
Merci déjà de te pencher dessus ;)
Voici le résultat du print_r($) :
Qui est fort pratique dailleurs merci , j'allais sur la base pour savoir moi :)
Bref, je peux donc confirmer qu'il s'agit bien de la ligne effect1,effect2 et effect 3 qui resument bien ce que je veux afficher.
Je vais regarder pour le boucle foreach et le for mais c'est fort pas gagné car je ne connais pas du tout.
Merci encore de bien vouloir m'aider.
Voici le résultat du print_r($) :
Array ( [sitemID] => 32 [sitemSHOP] => 16 [sitemITEMID] => 49 [itmid] => 49 [itmtype] => 16 [itmname] => Arc et ses fleches [itmdesc] => Arc milieu de gamme, silencieux et efficace [itmbuyprice] => 425 [itmsellprice] => 210 [itmbuyable] => 1 [effect1_on] => 1 [effect1] => a:4:{s:4:"stat";s:6:"energy";s:3:"dir";s:3:"neg";s:8:"inc_type";s:7:"percent";s:10:"inc_amount";i:3;} [effect2_on] => 1 [effect2] => a:4:{s:4:"stat";s:7:"agility";s:3:"dir";s:3:"neg";s:8:"inc_type";s:6:"figure";s:10:"inc_amount";i:2;} [effect3_on] => 1 [effect3] => a:4:{s:4:"stat";s:6:"energy";s:3:"dir";s:3:"neg";s:8:"inc_type";s:6:"figure";s:10:"inc_amount";i:10;} [weapon] => 3 [armor] => 0 [itmtypeid] => 16 [itmtypename] => Armes blanches )
Qui est fort pratique dailleurs merci , j'allais sur la base pour savoir moi :)
Bref, je peux donc confirmer qu'il s'agit bien de la ligne effect1,effect2 et effect 3 qui resument bien ce que je veux afficher.
Je vais regarder pour le boucle foreach et le for mais c'est fort pas gagné car je ne connais pas du tout.
Merci encore de bien vouloir m'aider.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Personne ne peut m'aider ?
J'ai du mal a comprend la command foreach
J'aimerai essayé avec la commande if de la facon suivante :
if (contenu de [effect1] contient energy)
echo "Energie":
elseif (contenu de [effect1] contient agility)
echo "Agilité"
if (contenu de [effect1] contient pos)
echo "+"
De facon à ce que ca ecrive Energie +5%
J'ai du mal a comprend la command foreach
J'aimerai essayé avec la commande if de la facon suivante :
if (contenu de [effect1] contient energy)
echo "Energie":
elseif (contenu de [effect1] contient agility)
echo "Agilité"
if (contenu de [effect1] contient pos)
echo "+"
De facon à ce que ca ecrive Energie +5%
je pense que ton tableau est sérialisé il te faut donc faire l'inverse avec la fonction unserialize()
$test = unserialize($r["effect1"]);
ensuite traite la variable $test normalement.
$test = unserialize($r["effect1"]);
ensuite traite la variable $test normalement.
Cette ligne contient toutes les infos dont j'ai besoin, le type d'effet, selon si cet effet est croissant ou decroissant, exprimé en pourcentage ou en valeur.
Voici le contenu complet de ma page :
Crois tu pouvoir m'aider sur skype ou autre ? je pourrais t'expliquer en detail
Voici le contenu complet de ma page :
<?php /************************************************************************************************** | Software Name : | Software Author : | Software Version : V | Website : | E-mail : |************************************************************************************************** | The source files are subject to the Ravan Scripts End-User License Agreement included in License Agreement.html | The files in the package must not be distributed in whole or significant part. | All code is copyrighted unless otherwise advised. | Do Not Remove Powered By Ravan Scripts without permission . |************************************************************************************************** | Copyright (c) . All rights reserved. |**************************************************************************************************/ include "globals.php"; $_GET['shop'] = abs((int) $_GET['shop']); if(!$_GET['shop']) { print " <div class='generalinfo_txt'> <div><img src='images/info_left.jpg' alt='' /></div> <div class='info_mid'><h2 style='padding-top:10px;'> Magasins </h2></div> <div><img src='images/info_right.jpg' alt='' /></div> </div> <div class='generalinfo_simple'><br> <br><br> Vous faites le tour des magasins du Pays.<br />"; $q=$db->query("SELECT * FROM shops WHERE shopLOCATION={$ir['location']}"); print "<table width=85% cellspacing=1 border=1 class='table'><tr style='background: gray;'><th>Shop</th><th>Description</th></tr>"; while($r=$db->fetch_row($q)) { print "<tr><td><a href='shops.php?shop={$r['shopID']}'>{$r['shopNAME']}</a></td><td>{$r['shopDESCRIPTION']}</td></tr>"; } print "</table></div><div><img src='images/generalinfo_btm.jpg' alt='' /></div><br></div></div></div></div></div>"; } else { $sd=$db->query("SELECT * FROM shops WHERE shopID={$_GET['shop']}"); if($db->num_rows($sd)) { $shopdata=$db->fetch_row($sd); if($shopdata['shopLOCATION'] == $ir['location']) { print " <div class='generalinfo_txt'> <div><img src='images/info_left.jpg' alt='' /></div> <div class='info_mid'><h2 style='padding-top:10px;'> {$shopdata['shopNAME']} </h2></div> <div><img src='images/info_right.jpg' alt='' /></div> </div> <div class='generalinfo_simple'><br> <br><br> Parcours d'objets à <b> {$shopdata['shopNAME']} ...</b><br /> <table cellspacing=1 class='table'><tr style='background: gray;'><th>Objet</th><th>Description</th><th>Prix</th><th>Prix de vente</th><th>Acheter</th></tr>"; $qtwo=$db->query("SELECT si.*,i.*,it.* FROM shopitems si LEFT JOIN items i ON si.sitemITEMID=i.itmid LEFT JOIN itemtypes it ON i.itmtype=it.itmtypeid WHERE si.sitemSHOP={$_GET['shop']} ORDER BY i.itmtype ASC, i.itmbuyprice ASC, i.itmname ASC"); $lt=""; while($r=$db->fetch_row($qtwo)) { if($lt!=$r['itmtypename']) { $lt=$r['itmtypename']; print "\n<tr style='background: gray;'><th colspan=5>{$lt}</th></tr>"; } print_r($r); print "\n<tr><td>{$r['itmname']}</td><td>{$r['itmdesc']}<br>{$r['effect1']}</td><td>\${$r['itmbuyprice']}</td><td>\${$r['itmsellprice']}</td><td><form action='itembuy.php?ID={$r['itmid']}' method='post'>Qté: <input type='text' STYLE='color: black; background-color: white;' name='qty' value='1' /><input type='submit' STYLE='color: black; background-color: white;' value='Acheter' /></form></td></tr>"; } print "</table></div><div><img src='images/generalinfo_btm.jpg' alt='' /></div><br></div></div></div></div></div>"; } else { print "Vous tentez d\'acceder à un magasin d\'un autre Pays!"; } } else { print "Vous tentez d\'acceder à une magasin innexistant!"; } } $h->endpage(); ?>
Crois tu pouvoir m'aider sur skype ou autre ? je pourrais t'expliquer en detail
Je ne comprend pas,
Que fais unserialize concretement ? et comment le traiter ?
Merci a toi de m'aider, je suis débutant en php
Que fais unserialize concretement ? et comment le traiter ?
Merci a toi de m'aider, je suis débutant en php
Je dois m'absenter pfff, j'espere trouver la solution en revenant vers 19h30
Merci de ton aide encore
Merci de ton aide encore
Pour récupérer les valeur tu fait:
$test = unserialize($r["effect1"]);
$stat = $test["stat"];
$dir = $test["dir"];
$type = $test["inc_type"];
$amount = $test["inc_amount"];
$test = unserialize($r["effect1"]);
$stat = $test["stat"];
$dir = $test["dir"];
$type = $test["inc_type"];
$amount = $test["inc_amount"];
$test = unserialize($r["effect1"]); $stat = $test["stat"]; $dir = $test["dir"]; $type = $test["inc_type"]; $amount = $test["inc_amount"]; print "\n<tr><td>{$r['itmname']}</td><td>{$r['itmdesc']}" <br> if ($stat=energy) { print "Energie" } else { break; } print " </td><td>\${$r['itmbuyprice']}</td><td>\${$r['itmsellprice']}</td><td><form action='itembuy.php?ID={$r['itmid']}' method='post'>Qté: <input type='text' STYLE='color: black; background-color: white;' name='qty' value='1' /><input type='submit' STYLE='color: black; background-color: white;' value='Acheter' /></form></td></tr>";
N'est ce pas correct ?
J'aimerai que si le contenu de $stat est energy le traduire en Energie sinon continuer . Je me ferai le reste en if a moins qu'il n'y ait mieux.
Edit: visiblement non car syntax error, où est ce que je plante?
Que la condition soit verifiée ou pas il m'affiche quand meme meme le mot traduit en mettant :
{
if ($stat=energy)
print "Energie";
}
Ou est ce que j'ai faux pour ne l'afficher que si verifié?
{
if ($stat=energy)
print "Energie";
}
Ou est ce que j'ai faux pour ne l'afficher que si verifié?
Ca fonctionne tres bien grace a toi Flog78 ,
J'ai codé comme ceci :
Comment mettre la condition pour que si effec1_on est a 1 car j'ai essayé :
mais ca ne fonctionne pas, je ne sais pas comment mettre la syntaxe
J'ai codé comme ceci :
//Effet 1******************************************************************************************************************** $test = unserialize($r["effect1"]); $stat = $test["stat"]; $dir = $test["dir"]; $type = $test["inc_type"]; $amount = $test["inc_amount"]; print "\n<tr><td>{$r['itmname']}</td><td>{$r['itmdesc']}<br>"; if ($stat==energy) { echo "Energie"; }else if ($stat==will) {echo "<img src='images/v.png' alt='Volonté' />Volonté"; }else if ($stat==strength) {echo "<img src='images/muscle.png' alt='Force' />Force"; }else if ($stat==agility) {echo "Agilité"; }else if ($stat==guard) {echo "Defense"; }else if ($stat==labour) {echo "Travail"; }else if ($stat==robskill) {echo "Subtilisation"; }else if ($stat==IQ) {echo "QI"; }else if ($stat==brave) {echo "Courage"; }else if ($stat==hp) {echo "<div><img src='images/icon-health.png' alt='Sante' />Santé</div>"; }else if ($stat==hospital) {echo "Temps Hopital"; }else if ($stat==jail) {echo "Temps Prison"; }else if ($stat==money) {echo "Cash"; }else if ($stat==crystals) {echo "Cristaux"; }else if ($stat==crimexp) {echo "EXP Crimes"; } if ($dir==pos) { echo "+"; } else { echo "-"; } echo "$amount"; if ($type==percent) {echo"%"; }
Comment mettre la condition pour que si effec1_on est a 1 car j'ai essayé :
if (effect1_on==1) { commande }
mais ca ne fonctionne pas, je ne sais pas comment mettre la syntaxe