Adepte de php mais pas du JavaScript, j'ai une petite question concernant une fonction php/javascript (je sais ce n'est pas commun mais bon...).
Voici une fonction php utilisée par le système informatisé :
function creerUtilisateurEspace() {
print("<script type='text/javascript'>
var idUtilisateur = new Array();
var nbUtilisateur = new Array();
</script>
");
$sql = "SELECT * FROM espace";
$req = mysql_query($sql);
$nbEspace = mysql_num_rows($req);
if($nbEspace!=0){
while($data = mysql_fetch_assoc($req)){
$j = 1;
$sql2 = "SELECT utilisateur FROM espaceUtilisateur WHERE espace='".$data['id']."' and associe LIKE 'oui'";
$req2 = mysql_query($sql2);
$nb_result2 = mysql_num_rows($req2);
if($nb_result2!=0){
while($data2 = mysql_fetch_assoc($req2)){
print("<script type='text/javascript'>
nbUtilisateur[".$data['id']."] = ".$nb_result2.";
idUtilisateur[".$data['id'].",".$j."] = ".$data2['utilisateur'].";
</script>
");
$j++;
}
}
}
}
}
Ce code s'appuie sur les tables suivantes :Code : Tout sélectionner
CREATE TABLE espace (
id int unsigned auto_increment,
libelle varchar(255) not null,
primary key(id)
)type=InnoDB;
CREATE TABLE utilisateur (
id int unsigned auto_increment,
pseudo varchar(255) not null unique,
pwd varchar(255) not null,
rang set('bronze','argent','or') not null default 'bronze',
tel varchar(255) not null,
email varchar(255) not null,
primary key(id)
)type=InnoDB;
CREATE TABLE espaceUtilisateur (
espace int unsigned,
utilisateur int unsigned,
associe set('oui','non'),
primary key(espace,utilisateur),
foreign key(espace) references espace(id),
foreign key(utilisateur) references utilisateur(id)
)type=InnoDB;
1,admin
2,GEH
Les enregistrements contenu dans la table utilisateur(id,pseudo) :
1,useror
2,userargent
3,userbronze
4,toto
Les enregistrements contenu dans la table espaceUtilisateur :
1,1,oui
1,2,oui
1,3,oui
2,4,oui
Lors de l'exécution de cette fonction php, j'ai testé la valeur des différents paramètres :
idUtilisateur[".$data['id'].",".$j."] = ".$data2['utilisateur'].";
$data['id']
$j
$data2['utilisateur']
Au sein de la seconde boucle while, si je fais un alert(idUtilisateur[1,1]) il me retourne bien 1.
Pourtant si je fais le même alert à la fin de la fonction php, il me retourne 4.
Donc je me retrouve avec :
idUtilisateur[1,1] = 4
idUtilisateur[1,2] = 2
idUtilisateur[1,3] = 3
idUtilisateur[2,4] = 4
D'où peut provenir cette erreur, et qu'elle pourrait être la méthode la plus adaptée pour ce genre de fonction ?
Merci de votre lecture et de votre patience.