nougitch
Messages postés431Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention17 novembre 2008
-
20 juil. 2005 à 09:18
nougitch
Messages postés431Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention17 novembre 2008
-
20 juil. 2005 à 11:10
Bonjour,
J'ai un problème avec mes boucles.
Lorsque je compte les enregistrements de la table, le bon nombre
s'affiche mais à l'exécution, il effectue la deuxième boucle (la boucle
intérieure) uniquement pour le premier enregistrement de la première
boucle (la boucle extérieure).
Voici le code :
include("applications.php");
$requete_max_application = mysql_query("SELECT MAX(id) AS id FROM applications");
mysql_query("INSERT INTO app_mod VALUES
('$recuperation_max_application[id]', '$recuperation_modules[id]', '$recuperation_langues[id]', '0')");
}
}
mysql_close();
L'objectif est le suivant :
Brièvement, j'ai dans ma base de données une table 'matrice' 4 champs dont 3 qui sont des clés primaires :
- applications (int, primary key)
- modules (int, primary key)
- langues (int, primary key)
- notes (int)
L'idée est d'avoir un tableau comprenant les applications en abscisses,
les modules en ordonnées, en fonction d'une langue. A chaque
croisement, j'ai une note.
Un exemple : le module 'dictionnaire monolingue' est noté '5/10' pour l'application 'traduction', le tout pour la langue 'française'.
Autrement dit : une note correspond au croisement d'un module pour une aplication en fonction d'une langue.
Ma question est la suivante :
Lorsque j'ajoute une application (par exemple, car en fait ma question
s'applique aussi pour les modules et pour les langues), je veux que
dans la table 'matrice', s'ajoute autant de fois le numéro d'application que nécessaire, c'est-à-dire pour chaque cas possible.
nougitch
Messages postés431Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention17 novembre 2008 20 juil. 2005 à 10:20
Merci pour vos réponses.
Malalam, je ne vois pas trop ce que tu veux dire. Tu veux que je change les noms des variables utilisées dans les boucles ?
Anthomicro, j'ai déplacé mysql_close(), je l'ai mis à l'intérieur de la
boucle mais aussi après : $requete_langues = mysql_query("SELECT id
FROM langues"); J'obtiens un message d'erreur relatif à la connection à
la base de données.
Vous n’avez pas trouvé la réponse que vous recherchez ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 20 juil. 2005 à 10:34
File un exemple de structure de ta base, avec chacune des tables ici,
mais avec peu d'entrees, et mets la ici sour forme SQL, pour que je
teste ca ici. (J'ai pas envie de creer la base exemple a la main lol).
nougitch
Messages postés431Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention17 novembre 2008 20 juil. 2005 à 10:45
Merci Malalam, c'est gentil.
Je t'ai donc mis ci-après les 4 tables et quelques exemples.
La table 'applications' :
CREATE TABLE applications (
id int(8) unsigned NOT NULL auto_increment,
libelle varchar(255) NOT NULL default '',
description text NOT NULL,
type tinyint(1) unsigned NOT NULL default '0',
langues int(8) unsigned NOT NULL default '0',
etat tinyint(1) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE= MyISAM;
INSERT INTO applications VALUES (2, 'Summarization', 'It\\\'s very good !', 1, 0, 0);
INSERT INTO applications VALUES (3, 'Classification', 'Que les langues françaises', 0, 0, 0);
La table 'modules' :
CREATE TABLE modules (
id int(8) unsigned NOT NULL auto_increment,
libelle varchar(255) NOT NULL default '',
description text NOT NULL,
type tinyint(1) unsigned NOT NULL default '0',
langues int(8) unsigned NOT NULL default '0',
etat tinyint(1) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE =MyISAM;
Et quelques données pour cette table :
INSERT INTO modules VALUES (1, 'Diacritizer', 'Inclusion du fichier de connexion à la base de données', 0, 1, 0);
INSERT INTO modules VALUES (2, 'Sentence Boundary Detection', 'Élections des représentants du personnel aux conseils centraux et au conseil de lUFR de LEA Recrutements', 0, 0, 0);
INSERT INTO modules VALUES (3, 'Named Entity Recognition', 'Lisez la lettre de Richard Descoings, Directeur de Sciences Po', 0, 0, 0);
INSERT INTO modules VALUES (4, 'Word Sense Disambiguator', 'Vous souhaitez soutenir le projet éducatif de sciences po en versant la taxe d\\\'apprentissage à notre école ?', 2, 0, 0);
La table 'langues' :
CREATE TABLE langues (
id int(8) unsigned NOT NULL auto_increment,
code char(2) NOT NULL default '',
libelle varchar(70) NOT NULL default '',
etat tinyint(1) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE= MyISAM;
Et quelques données pour cette table :
INSERT INTO langues VALUES (1, '', 'French', 0);
INSERT INTO langues VALUES (2, '', 'English', 0);
INSERT INTO langues VALUES (3, '', 'Spanish', 0);
INSERT INTO langues VALUES (4, '', 'Chinese, Adygei', 0);
INSERT INTO langues VALUES (5, '', 'German', Adygei', 0);
La table 'app_mod' :
CREATE TABLE app_mod (
applications int(8) unsigned NOT NULL default '0',
modules int(8) unsigned NOT NULL default '0',
langues int(8) unsigned NOT NULL default '0',
notes tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (applications,modules,langues)