Probleme de variable globale

[Résolu]
Signaler
Messages postés
5
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
23 septembre 2005
-
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
-
Salut à vous tous,
je suis debutant et j'ai un probleme je n'arrive pas à declarer les variables
$index_fonction et $titre_fonction en tant que tableaux accessible dans toutes mes functions.

<?php


define(
"COLOR_PAIR",
"#DDDDDD");


define(
"COLOR_IMPAIR",
"#CCCCCC");


global
$index_fonction;


global
$titre_fonction;


require(
"Parametre_connection.php");


require(
"../Function_connection.php");


function chargement_base(){



$i=
0;


if (!test_connection_base(SERVEUR,NOM,PASSE,BASE)){



$erreur =
FALSE;



$message_erreur=
"Erreur de connection base.";


} else {



$id =mysql_connect(SERVEUR,NOM,PASSE);


if (mysql_select_db(BASE)){



$request=
"SELECT * FROM fonctions";


if (
$result =mysql_query(
$request)){


while (
$ligne= mysql_fetch_row(
$result)){



// print "numero : " . $i . "
";



$index_fonction[
$i]=
$ligne[
0];



$titre_fonction[
$i]=
$ligne[
1];



$i++;


}



$erreur=
TRUE ;


} else {



$erreur =
FALSE;



$message_erreur=
"Erreur de requete de base de données.";


}


} else {



$erreur =
FALSE;



$message_erreur=
"Echec de connexion à la base.";


}


mysql_close(
$id);


}



$message_erreur=
"Connexion à la base OK.";


return array (
$erreur,
$message_erreur,
$i);


}


function affichage_donnee(
$lig){



$j =
0;


for (
$i=
0;
$i<
$lig;
$i++){


if (
$j ==
0){



$color=COLOR_PAIR;



$j=
1;


} else {



$color =COLOR_IMPAIR;



$j=
0;


}


print
"<tr>\n";


print
"<td bgcolor=" .
$color .
" width="20">";


print
"";


print
"</td>\n";


print
"<td bgcolor=" .
$color .
">" .
$titre_fonction[
$i] .
"</td>\n";


print
"</tr>\n";


}


}



// debut du programme


list(
$err,
$msg,
$nb_ligne)=chargement_base();


if (!
$err){


print
"<tr>\n";


print
"<td align ="center">Probleme : " .
$msg .
"</td>\n";


print
"</tr>\n";


} else {


print
"<tr>\n";


print
"<td colspan="2" align="center">Resultat : " .
$msg .
"
Nombre de ligne(s) : " .
$nb_ligne .
"</td>\n";


print
"</tr>\n";


affichage_donnee(
$nb_ligne);


}


?>

L'idee generale du programme dans la function chargement_base() j'interroge une base de donnee de là je rempli mes tableaux $index_fonction et $titre_fonction, ensuite grace à la function affichage_donnee() je voudrai l'afficher, mais rien.

Merci d'avance pour votre aide.

PS: vous pouvez toujours commenter le reste, merci

3 réponses

Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Bien sûr !



Sinon, tu as une autre méthode :*

Déclare tes variables dans le tableau des variables superglobales.

ex : $_GLOBALS['index_fonction'] = 'pouet';



Elles seront alors appelable de partout grâce à $_GLOBALS['index_fonction'];

C'est le même principe que $_SESSION ou $_POST...



Mais je t'avais demandé de te renseigner, tu n'es pas très courageux!
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
salut, tu t'es trompé... global se met justement à l'interieur de la
fonction pour spécifier à PHP que tu fais appel à la variable globale
et non à nue locale!



Documente toi sur global : http://fr.php.net/global
Messages postés
5
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
23 septembre 2005

Je te remercie de ta reponse, mais j'ai une precision à te demander, il faut bien repeter
global
$index_fonction;


global
$titre_fonction;

dans toutes les fonctions qui les utilisent ?