En fait quand je commence le test,
je renseigne le nom du TESTEUR et celui du VERIFICATEUR
je choisis le nbr de themes que je veux il y en aura 30 environ.
A ce moment là, j'enregistre dans la table UTILISATEURS, successivement le nom du testeur et du verif puis je récupère leur id avec mysql_insert_id successivement.
Ensuite, dans la table TESTS, je fais cette requete :
[code]INSERT INTO tests(
idtest,
idtester,
idverificateur,
date)[/code]
idtest en auto-incremente, et les 2 autres id recupèrer juste avant.
Ensuite, je commence à cocher mes choix parmis les 5 proposés parmis les x themes.
Je valide et passe la main au verificateur.
Au debut de la page du verificateur, j'enregistre en dans la table REPONSES les 1° resultats:
[code]INSERT INTO reponses (
idtest,
idutil,
idaff)[/code]
Enfin lorsque le verificateur valide, je recommence la requete ci-dessus.
MAINTENANT quand on va sur la page d'affichage des resultats on tombe sur la page ci-dessous que j'ai modifié hier, avant de voir ton post:
[code]<?php
//On enregistre dans des variables les données^$_POST pour faire les requete pour afficher les resultats.
$idtest = $_REQUEST['idtest'];
$nomdutesteur = $_REQUEST['nomt'];
$iddutesteur = $_REQUEST['idt'];
$nomduverificateur = $_REQUEST['nomv'];
$idduverificateur = $_REQUEST['idv'];
echo "<div id='formtest'>
<table border=1 align='center'>
<tr>
<td align='center'>TESTEUR</td>
<td align='center'>VERIFICATEUR</td>
<td align='center'>ECARTS</td>
<td align='center'>THEMES</td>
</tr>
<tr>
<td align='center'>".$nomdutesteur."</td>
<td align='center'>".$nomduverificateur."</td>
<td colspan=2 align='center'></td>
</tr>";
//Requete pour récupérer les choix du TESTEUR.
$requetechoixt = mysql_query("SELECT * FROM reponses WHERE idtest=".$idtest." AND idutil=".$iddutesteur."");
while($reschoixt = mysql_fetch_assoc($requetechoixt)){
//Requete pour récupérer les choix du VERIFICATEUR.
$requetechoixv = mysql_query("SELECT * FROM reponses WHERE idtest=".$idtest." AND idutil=".$idduverificateur."");
while($reschoixv = mysql_fetch_assoc($requetechoixv)){
//Requete pour récupérer les idaff et les points du TESTEUR dans AFFIRMATIONS en vue de récupérer l'idtheme de la table THEMES.
$requeteidthemet = mysql_query("SELECT idtheme, point FROM affirmations WHERE idaff=".$reschoixt['idaff']."");
while($resthemet = mysql_fetch_assoc($requeteidthemet)){
//Requete pour récupérer les idaff et les points du VERIFICATEUR dans AFFIRMATIONS en vue de récupérer l'idtheme de la table THEMES.
$requeteidthemev = mysql_query("SELECT idtheme, point FROM affirmations WHERE idaff=".$reschoixv['idaff']."");
while($resthemev = mysql_fetch_assoc($requeteidthemev)){
//Déclaration de de l'écart
if ($resthemet['point'] == $resthemev['point']){
$restheme_ecart = "=";
}
elseif ($resthemet['point'] > $resthemev['point']){
$restheme_ecart = "-";
}
else {
$restheme_ecart = "+";
}
//Requete pour récupérer les noms des themes avec le $resthemet['idtheme'] récupérer juste au-dessus.
$requetenomtheme = mysql_query("SELECT intitule FROM themes WHERE idtheme=".$resthemet['idtheme']."");
mysql_data_seek($requetenomtheme, 0);
while($resnomtheme = mysql_fetch_assoc($requetenomtheme)){
echo "
<tr>
<td align='center'>".$reschoixt['idaff']."(".$resthemet['point']." pts)</td>
<td align='center'>".$reschoixv['idaff']."(".$resthemev['point']." pts)</td>
<td align='center'>".$restheme_ecart."</td>
<td align='center'>".$resnomtheme['intitule']."</td>
</tr>";
}
}
}
echo "
<tr>
<td colspan='4' align='center'>";
printf(ESTIME_SUR_EST,'111','toto','titi');
echo "
</td>
</tr>";
}
}
echo "
</table>
</div>";
?>
<?php
pied();
?>[/code]
Ce code fonctionne déjà mieux que le précédent par contre je n'ai pas encore regarder ton "OPTIMISATION" ... je vais regarder de plus près car ce serait nettement plus simple .... en effet ...
Une requete, une boucle WHILE et en avant ... c'est ça non ?
Voilà le code de la table SQL ...
[code]-- phpMyAdmin SQL Dump
-- version 3.1.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Mar 19 Mai 2009 à 14:25
-- Version du serveur: 5.1.30
-- Version de PHP: 5.2.8
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de données: `titi`
--
-- --------------------------------------------------------
--
-- Structure de la table `affirmations`
--
CREATE TABLE IF NOT EXISTS `affirmations` (
`idaff` int(10) unsigned NOT NULL AUTO_INCREMENT,
`idtheme` int(10) NOT NULL,
`valeur` varchar(255) NOT NULL,
`point` smallint(11) NOT NULL,
PRIMARY KEY (`idaff`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
--
-- Contenu de la table `affirmations`
--
INSERT INTO `affirmations` (`idaff`, `idtheme`, `valeur`, `point`) VALUES
(1, 1, 'Je suis content', 1),
(2, 1, 'Je ne suis jamais content', 2),
(3, 1, 'Je suis rarement content', 3),
(4, 1, 'J''ai toujours peur', 4),
(5, 1, 'J''ai mal au ventre', 5),
(6, 2, 'Je suis discret et reservé', 1),
(7, 2, 'Je n''ose pas souvent exprimer mon avis', 2),
(8, 2, 'J''émets une opinion si on me le demande', 3),
(9, 2, 'Je n''hésite pas à émettre mes opinions', 4),
(10, 2, 'Mon point de vue passe bien', 5);
-- --------------------------------------------------------
--
-- Structure de la table `connexion`
--
CREATE TABLE IF NOT EXISTS `connexion` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`login` varchar(25) NOT NULL,
`mdp` varchar(41) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--
-- Contenu de la table `connexion`
--
INSERT INTO `connexion` (`id`, `login`, `mdp`) VALUES
(1, 'toto', '*59566802E6B1616DCEC08935FC0036EE04229EA8');
-- --------------------------------------------------------
--
-- Structure de la table `membre`
--
CREATE TABLE IF NOT EXISTS `membre` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`nom` varchar(50) NOT NULL,
`prenom` varchar(50) NOT NULL,
`agence` varchar(50) NOT NULL,
`email` varchar(100) NOT NULL,
`qualite` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `membre`
--
INSERT INTO `membre` (`id`, `nom`, `prenom`, `agence`, `email`, `qualite`) VALUES
(1, 'Test', 'lulu', 'france', '
[email protected]', 'webmestre');
-- --------------------------------------------------------
--
-- Structure de la table `reponses`
--
CREATE TABLE IF NOT EXISTS `reponses` (
`idtest` int(10) unsigned NOT NULL,
`idutil` int(10) NOT NULL,
`idaff` int(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Contenu de la table `reponses`
--
INSERT INTO `reponses` (`idtest`, `idutil`, `idaff`) VALUES
(1, 222, 1),
(1, 222, 8),
(1, 221, 2),
(1, 221, 5);
-- --------------------------------------------------------
--
-- Structure de la table `tests`
--
CREATE TABLE IF NOT EXISTS `tests` (
`idtest` int(10) unsigned NOT NULL AUTO_INCREMENT,
`idtester` int(10) NOT NULL,
`idverificateur` int(10) NOT NULL,
`date` int(11) NOT NULL,
PRIMARY KEY (`idtest`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Contenu de la table `tests`
--
INSERT INTO `tests` (`idtest`, `idtester`, `idverificateur`, `date`) VALUES
(1, 221, 222, 1242648879);
-- --------------------------------------------------------
--
-- Structure de la table `themes`
--
CREATE TABLE IF NOT EXISTS `themes` (
`idtheme` int(10) unsigned NOT NULL AUTO_INCREMENT,
`intitule` varchar(255) NOT NULL,
PRIMARY KEY (`idtheme`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=33 ;
--
-- Contenu de la table `themes`
--
INSERT INTO `themes` (`idtheme`, `intitule`) VALUES
(1, 'Theme1'),
(2, 'Theme2');
-- --------------------------------------------------------
--
-- Structure de la table `utilisateurs`
--
CREATE TABLE IF NOT EXISTS `utilisateurs` (
`idutil` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nom` varchar(50) NOT NULL,
PRIMARY KEY (`idutil`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--
-- Contenu de la table `utilisateurs`
--
INSERT INTO `utilisateurs` (`idutil`, `nom`) VALUES
(222, 'Jeremy'),
(221, 'Toto');
[/code]