A propos des tableaux...

Résolu
fra1ft Messages postés 35 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 24 septembre 2012 - 14 janv. 2011 à 12:22
fra1ft Messages postés 35 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 24 septembre 2012 - 15 janv. 2011 à 01:14
Bonjour à tous.
Un petit soucis sur un source...
J'ai le lien suivant .../affiche.php?variable1machin=0(ou 1)&variable1truc=0(ou 1)&variable2machin=0(ou 1)&variable2truc=0(ou 1)& ect provenant du parsing d'une page txt générée et déposée sur serveur distant par un soft local.

J'ai fait le nécessaire pour extraire mes variables et leurs valeurs et y afficher dans un tableau html, en php...
Désormais, j'aurai besoin de compter le nombre de cellules sur une colonne précise contenant uniquement des 1 afin d'appliquer une formule de calcul de pourcentage (pour cette formule, ca marche). Seulement, je n'arrive pas à extraire ces fameux 1 de cette colonne!
J'ai tout essayé (peut être et sûrement mal) d'appliquer un array, le foreach ou le while (qui me sort une boucle infinie, donc qu'il ne trouve pas de différence ente 1 ou 0 ou alors je pointe pas au bon endroit...)

Donc, là je butte... Je me positionne dans le rang des débutants, malgré la lecture et relecture de la doc en ligne php (ou j'ai sauté une page).

Une âme charitable pour me venir en aide svp?

Merci d'avance!

Le lien d'où proviennent les variables:
http://192.168.1.100/... jusqu'à 18 variables parent.
La colonne qui m'intéresse, une fois le tableau html généré, est celle contenant Computer[x]_State.

La portion de code contenant les variables affichées dans le tableau html:
for ($i=1;$i<=$ComputerCount;$i++){

$etatposte = $_GET['Computer'.$i.'_State'];
$xposte = $_GET['Computer'.$i.'_X'];
$yposte = $_GET['Computer'.$i.'_Y'];
$consoleposte = $_GET['Computer'.$i.'_ConsoleType'];
echo '<tr><td></td><td>
'.$i.'
</td><td>
'.$etatposte.'
</td><td>
'.$xposte.'
</td><td>
'.$yposte.'
</td><td>
'.$consoleposte.'
</td></tr>';
}




Amiga user for ever...

6 réponses

fra1ft Messages postés 35 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 24 septembre 2012
15 janv. 2011 à 01:02
Je te remercie pour tes explications et d'avoir surtout répondu.
Ton source ne résout pas tout à fait mon problème mais l'empire, je ne puis ventiler les données affichées dans un tableau html ordonné (à moins d'une suite de code complexe, sans résultat probable)

Cependant, ton source m'a fait penser à l'utilisation de array_keys, si bien qu'en appliquant mon source pour afficher le tableau html ordonné et en ajoutant:
$val[]=$etatposte; avant le } de fin de boucle puis après:

$machin = array_keys($val, 1);
$valeur= count($machin);

echo 'Utilisés: '.$valeur.'
';


cela m'affiche bien le nombre de cellules contenant seulement 1 dans la colonne désirée.

Après, je peux donc appliquer ma formule de pourcentage, soit:

function cacul_pourcentage($nombre,$total,$pourcentage)
{ 
  if ($nombre == 0) {
  $resultat = 0;
  }
  else {
    $resultat = ($nombre/$total) * $pourcentage;
  }
  return round($resultat);
} 

$nombre_client = $valeur;
$total_client = $ComputerCount;
$valeur_pourcentage = 100;
?>
</table>
Pourcentage d'utilisation: <?php echo cacul_pourcentage($nombre_client,$total_client,$valeur_pourcentage)." %";?>



Amiga user for ever...
3
fra1ft Messages postés 35 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 24 septembre 2012
14 janv. 2011 à 12:44
Oublié:
Le $ComputerCount provient de $ComputerCount= $_GET['ComputerCount']; en tête de source...


Amiga user for ever...
0
fra1ft Messages postés 35 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 24 septembre 2012
14 janv. 2011 à 13:17
Pour info:
Je viens d'essayer avec ceci dans la boucle for:


$total = array(
$affiche => $ComputerCount
);
// apres le } de la boucle for
print_r($total);


Donc si Computer1_State=1 et 2=1 et 3=1, print_r me sort bien trois postes à 1 mais si je rajoute le 5=1 en laissant le 4=0, il m'affiche 5 postes à 1 alors qu'il n'y en a que 4... Là je cale!

Amiga user for ever...
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
14 janv. 2011 à 21:01
for ($i=1;$i<=$ComputerCount;$i++){

$etatposte = $_GET['Computer'.$i.'_State'];
$xposte = $_GET['Computer'.$i.'_X'];
$yposte = $_GET['Computer'.$i.'_Y'];
$consoleposte = $_GET['Computer'.$i.'_ConsoleType'];
echo '<tr><td></td><td>
'.$i.'
</td><td>
'.$etatposte.'
</td><td>
'.$xposte.'
</td><td>
'.$yposte.'
</td><td>
'.$consoleposte.'
</td></tr>';
}


bonsoir les varaibles que tu transmets par l'url par la methode GET sont pas des tableaux même si elles sont stockées comme éléments d'un tableau
$_GET

TU ENVOIES 1 valeur par $_GET
je comprends pas la boucle for


foreach ($_GET AS $k => $value){

echo $k.' a pour valeur '.$value.'
';

$mesvaleurs[]=$value;

}

echo '';
print_r($mesvaleurs)
echo '

';

voilà ce qui arrive par l'url

exemple


[recu.php?toto=1&titi=2&tata=vri&tutu=new test]




recu.php
<?php
foreach ($_GET AS $k => $value){

echo $k.' a pour valeur '.$value.'
';

$mesvaleurs[]=$value;

}

echo 'hr';

echo '';
print_r($mesvaleurs); 
echo '

';

echo 'hr';

var_dump($mesvaleurs);

?>



a++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
14 janv. 2011 à 21:05
echo 'hr';

excuses j'ai tapé trop vite c'est

echo '<hr>'; dans recu.php ... a++
0
fra1ft Messages postés 35 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 24 septembre 2012
15 janv. 2011 à 01:14
Oublié:

La boucle for me sert à comptabiliser le nombre de lignes jusqu'à $ComputerCount, en l'occurence "18".
Après, me reste à dispatcher dans les bonnes cellules du tableau les variables obtenues par $_GET['trucmuche'.$i.'bidule'] ce, jusqu'à la fin de la boucle for.
Non?


Amiga user for ever...
0
Rejoignez-nous