Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1285 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP fonction retourne tableau : Résolu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP fonction retourne tableau : Résolu

n°1743353
zlatan40
Posté le 09-06-2008 à 10:17:49  profilanswer
 

Salu a tous
J'avais un code d'origine (que j'ai commenté pour le repérer) qui fonctionnait mais j'ai besoin de le réutiliser donc je veut le mettre dans une fonction tablo qui a un entier en paramètre et me retourne un tableau à 2 dimension.
 

Code :
  1. <?php
  2. //----------fonction que j'utilise dans la deuxième----------
  3. function sort_items($a, $b)
  4. {
  5.   if ($a['points'] != $b['points'])
  6.     return $a['points'] <= $b['points'];
  7.   elseif ($a['diff'] != $b['diff'])
  8.     return $a['diff'] <= $b['diff'];
  9.   else
  10.     return $a['bp'] <= $b['bp'];
  11. }
  12. function tablo($journeesel)
  13. {
  14. //------------------------------DEBUT DU CODE D'ORIGINE---------------
  15. $repon = mysql_query("SELECT nomeq FROM equipe ORDER BY points DESC" ) or die(mysql_error());
  16. while ($nom = mysql_fetch_array($repon) )
  17. {
  18. //------------------Initialisation des tableaux--------------------------
  19. $dom[$nom['nomeq']] = array ("points" => "0","matchjoués" => "0","gagnés" => "0","nuls" => "0","perdus" => "0","bp" => "0","bc" => "0","diff" => "0" );
  20. $ext[$nom['nomeq']] = array ("points" => "0","matchjoués" => "0","gagnés" => "0","nuls" => "0","perdus" => "0","bp" => "0","bc" => "0","diff" => "0" );
  21. for ($nb = 1; $nb <= $journeesel; $nb++)
  22. {
  23. //-------------------------Equipes domiciles--------------------
  24. $reponsedom = mysql_query("SELECT * FROM matchs WHERE journee='".$nb."' AND equipedom='".$nom['nomeq']."'" ) or die(mysql_error());
  25. $champsdom = mysql_fetch_array($reponsedom);
  26. if ($champsdom['equipedom']==$nom['nomeq'])
  27. {
  28.   if($champsdom['scoredom'] > $champsdom['scorext'])
  29.   {$points=3;$gagnés=1;$nuls=0;$perdus=0;}
  30.   if($champsdom['scoredom'] == $champsdom['scorext'])
  31.   {$points=1;$gagnés=0;$nuls=1;$perdus=0;}
  32.   if($champsdom['scoredom'] < $champsdom['scorext'])
  33.   {$points=0;$gagnés=1;$nuls=0;$perdus=1;}
  34. $dom[$champsdom['equipedom']] = array (
  35. "points" => $dom[$champsdom['equipedom']]['points']+$points,
  36. "matchjoués" => $dom[$champsdom['equipedom']]['matchjoués']+1,
  37. "gagnés" => $dom[$champsdom['equipedom']]['gagnés']+$gagnés,
  38. "nuls" => $dom[$champsdom['equipedom']]['nuls']+$nuls,
  39. "perdus" => $dom[$champsdom['equipedom']]['perdus']+$perdus,
  40. "bp" => $dom[$champsdom['equipedom']]['bp']+ $champsdom['scoredom'],
  41. "bc" => $dom[$champsdom['equipedom']]['bc']+ $champsdom['scorext'],
  42. "diff" => $dom[$champsdom['equipedom']]['diff']+ $champsdom['scoredom']-$champsdom['scorext']);
  43. }
  44. //-------------------------Equipes extérieures--------------------
  45. $reponsext = mysql_query("SELECT * FROM matchs WHERE journee='".$nb."' AND equipext='".$nom['nomeq']."'" ) or die(mysql_error());
  46. $champsext = mysql_fetch_array($reponsext);
  47. if ($champsext['equipext']==$nom['nomeq'])
  48. {
  49.   if($champsext['scorext'] > $champsext['scoredom'])
  50.   {$points=3;$gagnés=1;$nuls=0;$perdus=0;}
  51.   if($champsext['scorext'] == $champsext['scoredom'])
  52.   {$points=1;$gagnés=0;$nuls=1;$perdus=0;}
  53.   if($champsext['scorext'] < $champsext['scoredom'])
  54.   {$points=0;$gagnés=1;$nuls=0;$perdus=1;}
  55. $ext[$champsext['equipext']] = array (
  56.     "points" => $ext[$champsext['equipext']]['points']+$points,
  57.     "matchjoués" => $ext[$champsext['equipext']]['matchjoués']+1,
  58.     "gagnés" => $ext[$champsext['equipext']]['gagnés']+$gagnés,
  59.     "nuls" => $ext[$champsext['equipext']]['nuls']+$nuls,
  60.     "perdus" => $ext[$champsext['equipext']]['perdus']+$perdus,
  61.     "bp" => $ext[$champsext['equipext']]['bp']+ $champsext['scorext'],
  62.     "bc" => $ext[$champsext['equipext']]['bc']+ $champsext['scoredom'],
  63.     "diff" => $ext[$champsext['equipext']]['diff']+ $champsext['scorext']-$champsext['scoredom']);
  64. }
  65. }
  66. //-----------------------ajout des résultat dans une tableau------------------
  67. $gen[$nom['nomeq']] = array (
  68. "points" => $ext[$nom['nomeq']]['points'] + $dom[$nom['nomeq']]['points'],
  69. "matchjoués" => $ext[$nom['nomeq']]['matchjoués'] + $dom[$nom['nomeq']]['matchjoués'],
  70. "gagnés" => $ext[$nom['nomeq']]['gagnés'] + $dom[$nom['nomeq']]['matchjoués'],
  71. "nuls" => $ext[$nom['nomeq']]['nuls'] + $dom[$nom['nomeq']]['nuls'],
  72. "perdus" => $ext[$nom['nomeq']]['perdus'] + $dom[$nom['nomeq']]['perdus'],
  73. "bp" => $ext[$nom['nomeq']]['bp'] + $dom[$nom['nomeq']]['bp'],
  74. "bc" => $ext[$nom['nomeq']]['bc'] + $dom[$nom['nomeq']]['bc'],
  75. "diff" => $ext[$nom['nomeq']]['diff'] + $dom[$nom['nomeq']]['diff']);
  76. }
  77. //----------------------------tri du tableau---------------------------------
  78. uasort($gen, 'sort_items');
  79. //------------------------------FIN DU CODE D'ORIGINE---------------------
  80. return $gen;
  81. }
  82. tablo($_POST['journeesel']);
  83. ?>


Ensuite j'ai le code qui affiche le tableau $gen comme avant mais ça ne marche plus, on me dit que le tableau n'est pas définit ou que ce n'est pas un tableau

Message cité 1 fois
Message édité par zlatan40 le 09-06-2008 à 11:19:06

---------------

mood
Publicité
Posté le 09-06-2008 à 10:17:49  profilanswer
 

n°1743369
soju
One shot !
Posté le 09-06-2008 à 10:35:48  profilanswer
 

zlatan40 a écrit :

Ensuite j'ai le code qui affiche le tableau $gen comme avant mais ça ne marche plus

il est où ce code ??

n°1743373
zlatan40
Posté le 09-06-2008 à 10:49:12  profilanswer
 

je l'ai pas mis pour ne pas trop surcharger de code et puis il fonctionner avant donc il devrait être bon
Soit comme ça :

Code :
  1. while (list ($key) = each ($gen))
  2. {
  3. echo '<tr>';
  4. //------------------Classement général------------------
  5. echo '<td>'.$gen[$key]['points'].'</td>';
  6. echo '<td>'.$gen[$key]['matchjoues'].'</td>';
  7. echo '<td>'.$gen[$key]['gagnes'].'</td>';
  8. echo '<td>'.$gen[$key]['nuls'].'</td>';
  9. echo '<td>'.$gen[$key]['perdus'].'</td>';
  10. echo '<td>'.$gen[$key]['bp'].'</td>';
  11. echo '<td>'.$gen[$key]['bc'].'</td>';
  12. echo '<td>'.$gen[$key]['diff'].'</td>';
  13. echo '</tr>';
  14. }


erreur : Warning: Variable passed to each() is not an array or object
 
ou plus simplement :

Code :
  1. print_r($gen);  ou  var_dump($gen);


erreur : Notice: Undefined variable: gen
 
Aucune de ces trois solution ne fonctionne alors qu'avant de mettre la fonction cela marchait


---------------

n°1743375
soju
One shot !
Posté le 09-06-2008 à 10:53:24  profilanswer
 

et à quel moment tu fais

Code :
  1. $gen = tablo($_POST['journeesel']);

?

n°1743381
zlatan40
Posté le 09-06-2008 à 11:04:06  profilanswer
 

Jamais...c'était ça le problème
En fait je pensais que la variable $gen se créer en faisant return $gen; dans la fonction mais ce n'est pas le cas.
Merci beaucoup ça marche, c'était tout bête mais il fallait une autre personne pour voir l'erreur  
je vais essayer de comparer plusieurs résultats de cette fonction maintenant, a+


---------------


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP fonction retourne tableau : Résolu

 

Sujets relatifs
Comment tester les cases d'un tableau ?Tri de Tableau...Youpiie...
choix d'un seul élément dans un tableau[RESOLU]SELECT MAX avec GROUP BY
Fonction définie dans la page et appel dans une iframe[PHP] Variables dynamiques et Checkbox
Gestion des pages PHP + référencement + Xiti[résolu]Expression rationelle
RESOLU Probleme (action="#") à ramplacer par (action="transfert.php") 
Plus de sujets relatifs à : PHP fonction retourne tableau : Résolu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR