PHP fonction retourne tableau [Résolu]

zlatan40 42 Messages postés dimanche 20 février 2011Date d'inscription 1 avril 2018 Dernière intervention - 8 juin 2008 à 20:36 - Dernière réponse : zlatan40 42 Messages postés dimanche 20 février 2011Date d'inscription 1 avril 2018 Dernière intervention
- 9 juin 2008 à 11:17
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.

<?php
//----------fonction que j'utilise dans la deuxième----------
function sort_items($a, $b)
{
  if ($a['points'] != $b['points'])
    return $a['points'] <= $b['points'];
  elseif ($a['diff'] != $b['diff'])
    return $a['diff'] <= $b['diff'];
  else
    return $a['bp'] <= $b['bp'];
}

function tablo($journeesel)
{
//------------------------------DEBUT DU CODE D'ORIGINE--------------------------------------
$repon = mysql_query("SELECT nomeq FROM equipe ORDER BY points DESC") or die(mysql_error());
while ($nom = mysql_fetch_array($repon) )
{
//------------------Initialisation des tableaux--------------------------
$dom[$nom['nomeq']] = array ("points" => "0","matchjoués" => "0","gagnés" => "0","nuls" => "0","perdus" => "0","bp" => "0","bc" => "0","diff" => "0");
$ext[$nom['nomeq']] = array ("points" => "0","matchjoués" => "0","gagnés" => "0","nuls" => "0","perdus" => "0","bp" => "0","bc" => "0","diff" => "0");
for ($nb = 1; $nb <= $journeesel; $nb++)
{
//-------------------------Equipes domiciles--------------------
$reponsedom = mysql_query("SELECT * FROM matchs WHERE journee='".$nb."' AND equipedom='".$nom['nomeq']."'") or die(mysql_error());
$champsdom = mysql_fetch_array($reponsedom);
if ($champsdom['equipedom']==$nom['nomeq'])
{
  if($champsdom['scoredom'] > $champsdom['scorext'])
  {$points=3;$gagnés=1;$nuls=0;$perdus=0;}
  if($champsdom['scoredom'] == $champsdom['scorext'])
  {$points=1;$gagnés=0;$nuls=1;$perdus=0;}
  if($champsdom['scoredom'] < $champsdom['scorext'])
  {$points=0;$gagnés=1;$nuls=0;$perdus=1;}
$dom[$champsdom['equipedom']] = array (
"points" => $dom[$champsdom['equipedom']]['points']+$points,
"matchjoués" => $dom[$champsdom['equipedom']]['matchjoués']+1,
"gagnés" => $dom[$champsdom['equipedom']]['gagnés']+$gagnés,
"nuls" => $dom[$champsdom['equipedom']]['nuls']+$nuls,
"perdus" => $dom[$champsdom['equipedom']]['perdus']+$perdus,
"bp" => $dom[$champsdom['equipedom']]['bp']+ $champsdom['scoredom'],
"bc" => $dom[$champsdom['equipedom']]['bc']+ $champsdom['scorext'],
"diff" => $dom[$champsdom['equipedom']]['diff']+ $champsdom['scoredom']-$champsdom['scorext']);
}
//-------------------------Equipes extérieures--------------------
$reponsext = mysql_query("SELECT * FROM matchs WHERE journee='".$nb."' AND equipext='".$nom['nomeq']."'") or die(mysql_error());
$champsext = mysql_fetch_array($reponsext);
if ($champsext['equipext']==$nom['nomeq'])
{
  if($champsext['scorext'] > $champsext['scoredom'])
  {$points=3;$gagnés=1;$nuls=0;$perdus=0;}
  if($champsext['scorext'] == $champsext['scoredom'])
  {$points=1;$gagnés=0;$nuls=1;$perdus=0;}
  if($champsext['scorext'] < $champsext['scoredom'])
  {$points=0;$gagnés=1;$nuls=0;$perdus=1;}
$ext[$champsext['equipext']] = array (
    "points" => $ext[$champsext['equipext']]['points']+$points,
    "matchjoués" => $ext[$champsext['equipext']]['matchjoués']+1,
    "gagnés" => $ext[$champsext['equipext']]['gagnés']+$gagnés,
    "nuls" => $ext[$champsext['equipext']]['nuls']+$nuls,
    "perdus" => $ext[$champsext['equipext']]['perdus']+$perdus,
    "bp" => $ext[$champsext['equipext']]['bp']+ $champsext['scorext'],
    "bc" => $ext[$champsext['equipext']]['bc']+ $champsext['scoredom'],
    "diff" => $ext[$champsext['equipext']]['diff']+ $champsext['scorext']-$champsext['scoredom']);
}
}
//-----------------------ajout des résultat dans une tableau---------------------------
$gen[$nom['nomeq']] = array (
"points" => $ext[$nom['nomeq']]['points'] + $dom[$nom['nomeq']]['points'],
"matchjoués" => $ext[$nom['nomeq']]['matchjoués'] + $dom[$nom['nomeq']]['matchjoués'],
"gagnés" => $ext[$nom['nomeq']]['gagnés'] + $dom[$nom['nomeq']]['matchjoués'],
"nuls" => $ext[$nom['nomeq']]['nuls'] + $dom[$nom['nomeq']]['nuls'],
"perdus" => $ext[$nom['nomeq']]['perdus'] + $dom[$nom['nomeq']]['perdus'],
"bp" => $ext[$nom['nomeq']]['bp'] + $dom[$nom['nomeq']]['bp'],
"bc" => $ext[$nom['nomeq']]['bc'] + $dom[$nom['nomeq']]['bc'],
"diff" => $ext[$nom['nomeq']]['diff'] + $dom[$nom['nomeq']]['diff']);
}
//----------------------------tri du tableau------------------------------------------------
uasort($gen, 'sort_items');
//------------------------------FIN DU CODE D'ORIGINE--------------------------------------
return $gen;
}
tablo($_POST['journeesel']);
?>
<hr size="2" width="100%" />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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
zlatan40 42 Messages postés dimanche 20 février 2011Date d'inscription 1 avril 2018 Dernière intervention - 9 juin 2008 à 11:17
3
Merci
Le problème est résolu :
Je pensais que la variable se créer toute seule à la sortie de la fct mais en fait il faut mettre le résultat de la fonction dans une variable
 $gen = tablo($_POST['journeesel']);

alors que j'avais simplement fait tablo($_POST['journeesel']);

Merci zlatan40 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

Commenter la réponse de zlatan40
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 9 juin 2008 à 08:31
0
Merci
Salut,
S'il te plaît, clarifie ton code :
- supprime ce qui ne nous est pas utile (ne garde qu'un élément par tableau par exemple)
- indente le
- indique la ligne de l'erreur

On veut bien t'aider mais si tu nous donnes un sac de nœud en nous demandant qu'on t'aide à tendre la corde, on te dira de d'abord la démêler...

Ça vaut aussi pour ton autre question : http://www.phpcs.com/infomsg_PHP-RECUPERER-ZONE-SAISI-FORMULAIRE_1142429.aspx

A+

Flachy Joe

Ta vie t'est prêtée, fais en un cadeau.
Commenter la réponse de Flachy Joe
zlatan40 42 Messages postés dimanche 20 février 2011Date d'inscription 1 avril 2018 Dernière intervention - 9 juin 2008 à 09:26
0
Merci
Merci de ta réponse
Tout d'abord je ne sais pas d'ou viens l'erreur, le tableau doit être vide car c'est lorsque j'affiche le tableau que j'ai une erreur (le code n'y est pas)
Le truc c'est que le code compris entre //---------DEBUT DU CODE D'ORIGINE----  et  //---------FIN DU CODE D'ORIGINE---- fonctionne car avant j'avais simplement ce code sans la fonction tablo.
Maintenant que je l'ai mis dans la fonction tablo et que j'éssaie d'utiliser la fonction cela ne fonctionne plus. Mes question sont :
Es-ce que l'on peut utiliser une fonction à l'interrieur d'une fonction ?
Es-ce qu'une fonction peut retourner un tableau ?
Sinon je ne vois pas d'ou vient le problème
Commenter la réponse de zlatan40

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.