Page 1 sur 1
Problème de boucle et variable
Posté : 21 oct. 2012, 01:57
par jycs
Salut,
Voici ma requète :
Code : Tout sélectionner
public function getMostDistancer2() {
$res = mysql_query('SELECT `uuid` AS name, SUM(`distance_traveled`) AS sum_distance
FROM players
WHERE distance_traveled != -1
GROUP BY `uuid`
ORDER BY sum_distance DESC
LIMIT 3') or die(mysql_error());
while($row = mysql_fetch_assoc($res)) { $rows[] = $row; }
return $rows;
}
Que j'appelle ainsi :
Code : Tout sélectionner
<?php
$ar = $serverObj->getMostDistancer2();
$player = $serverObj->getPlayer($ar['name']);
if ($player) {
echo(STRING_ALL_DISTANCER);
?>
: </h2>
<h3 class="ca-sub"> <a class="fort" href="?view=player&uuid=<?php echo($player->getUUID()); ?>"><?php echo($player->getName()); ?></a>
<?php
print_r($ar);
foreach ($ar as $row) {
echo '<div style=" display: block;">';
echo '<a class="fort" href="?view=player&uuid=<?php echo($player->getUUID()); ?>"><?php echo($player->getName()); ?></a>';
echo $row['sum_distance'];
echo '</div>';
}
?>
<?php echo(STRING_ALL_DISTANCER_UNIT); ?>
<?php } else echo(STRING_ALL_NONE); ?>
Mon problème, c'est que je souhaiterais afficher $ar[0]['name'] dans la 1ere boucle $ar[1]['name'] dans la 2eme et $ar[2]['name'] dans la 3eme.
Une aide serait bienvenue
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 02:28
par moogli
Salut,
Le parcourt d'un tableau se fait avec foreach ou un for.
Plus d'info dans la doc.
@+
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 02:56
par jycs
Je le sais, c'est dans le code, le problème c'est que je ne sais pas faire ce que j'ai demandé...
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 03:48
par jycs
Omg j'ai quasiment réussi, mais gros pb :
Code : Tout sélectionner
<?php
$ar = $serverObj->getMostDistancer2();
$player = $serverObj->getPlayer($ar['name']);
if ($player) {
echo 'Les plus grands coursiers';
?>
: </h2>
<h3 class="ca-sub"> <a class="fort" href="?view=player&uuid=<?php echo($player->getUUID()); ?>"><?php echo($player->getName()); ?></a>
<?php
for ($numero = 0; $numero < 3; $numero++)
{
echo $ar[$numero]['name'] . '<br />';
echo '<a class="fort" href="?view=player&uuid=';
echo $ar[$numero]['name'];
echo '">';
echo ($ar[$numero]['name']->getName());
echo "?></a>";
}
foreach ($ar as $row) {
echo '<div style=" display: block;">';
echo (QueryUtils::formatDistance($row['sum_distance']));
echo '</div>';
}
?>
Le echo ($ar[$numero]['name']->getName()); me retourne un
Fatal error: Call to a member function getName() on a non-object
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 07:23
par sirakawa
Salut,
Le parcours d'un tableau se fait avec foreach ou un for.
Plus d'info dans la doc
@+
qui, justement, utilise un while... Sachant que toutes les boucles peuvent se traiter avec un while (for , foreach, do until ne sont que des faciliés)....
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 17:13
par jycs
Sur un autre forum, on me dit que mon code est pourri, je trouve ce comportement débile, peut être ici quelqu'un voudra bien m'aider ?
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 17:20
par moogli
Salut,
Le parcours d'un tableau se fait avec foreach ou un for.
Plus d'info dans la doc
@+
qui, justement, utilise un while... Sachant que toutes les boucles peuvent se traiter avec un while (for , foreach, do until ne sont que des faciliés)....
ben oui mais justement la facilité c'est bien aussi des fois
@+
Sur un autre forum, on me dit que mon code est pourri, je trouve ça odieux comme comportement, peut être ici quelqu'un voudra bien m'aider ?
ben sur que c'est pas du boulot de pro mais en même temps tu ne demanderais pas d'aide sinon ^^
donc ton message d'erreur est du soit :
- au fait que tu tente d'utiliser un index qui n'existe pas dans $ar
- soit que que ce qui existe dans $ar[numero] n'est pas un objet
la c'est la seconde solution qui prime, tu n'as pas d'objet dans $ar juste du texte.
pour affiche le "name" courant c'est juste echo $ar[$numero]['name'].
revois un peu les bases, tu ne devrais pas mélanger poo et procédurale, dans un premier temps, tu te mélange trop les piceaux
@+
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 17:30
par jycs
ben sur que c'est pas du boulot de pro mais en même temps tu ne demanderais pas d'aide sinon ^^
donc ton message d'erreur est du soit :
- au fait que tu tente d'utiliser un index qui n'existe pas dans $ar
- soit que que ce qui existe dans $ar[numero] n'est pas un objet
la c'est la seconde solution qui prime, tu n'as pas d'objet dans $ar juste du texte.
pour affiche le "name" courant c'est juste echo $ar[$numero]['name'].
Code : Tout sélectionner
<?php
$ar = $serverObj->getMostDistancer2();
$player = $serverObj->getPlayer($ar['name']);
if ($player) {
echo 'Les plus grands coursiers';
?>
<?php
for ($numero = 0; $numero < 3; $numero++)
{
echo '<a class="fort" href="?view=player&uuid=';
echo $ar[$numero]['name'];
echo '">';
echo ($ar[$numero]['name']->getName());
echo "?></a>";
}
foreach ($ar as $row) {
echo '<div style=" display: block;">';
echo (QueryUtils::formatDistance($row['sum_distance']));
echo '</div>';
}
?>
C'est ce que j'ai fait echo $ar[$numero]['name'] ?!
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 17:43
par moogli
non pas deux lignes en dessous : echo ($ar[$numero]['name']->getName());
Dans les messages d'erreur il y a aussi les numéros de liges tu peux te gourer.
si ton éditeur de texte ne sais pas afficher les numéros de lignes changes pour un mieux (notepad ++, eclipse, netbeans, ou beaucoup d'autre, perso j'ai pas tous testé mais je préfère zend studio qui est payant ^^)
@+
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 18:10
par jycs
non pas deux lignes en dessous : echo ($ar[$numero]['name']->getName());
Dans les messages d'erreur il y a aussi les numéros de liges tu peux te gourer.
si ton éditeur de texte ne sais pas afficher les numéros de lignes changes pour un mieux (notepad ++, eclipse, netbeans, ou beaucoup d'autre, perso j'ai pas tous testé mais je préfère zend studio qui est payant ^^)
@+
Le problème c'est que j'ai besoin du getName() pour convertir l'ID en pseudo.
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 18:22
par sam12
Il te retourne quoi le $ar[$numero]['name'] alors?
Re: Problème de boucle et variable
Posté : 21 oct. 2012, 19:35
par moogli
Un string, simplement parce que c'est le retour d'une requête SQL (cf 1er post)
Donc pas de getName qui tiens le nom tu l'a déjà avec ce que je t'ai donné tu le passe (sans le echo) comme ça en paraître de ta seconde méthode et c'est bon.
@+