Comparaison d'enregistrements dans 2 tables

michelvernet2 Messages postés 62 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 23 octobre 2012 - 16 janv. 2004 à 15:33
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006 - 16 janv. 2004 à 18:17
bonjour,
j'ai une table ETUDIANT composée des variables $A, $B, $C . cette table contient 30 lignes.
j'ai une table REPONSES composée de svariables $RA, $RB, $RC. cette table ne contient qu'une ligne

je veux comparer ces 2 tables enregistrement par enregistrement et variable par variable et calculer:
si $A = $RA alors { si $A est vide ... rien ne se passe ... ELSE POINTS=POINT + 1 }
si $A != $RA alors { si $A est vide ... rien ne se passe ... ELSE POINT=POINT-1 }

je ne sais pas si c'est clair,... MAIS COMMENT LE FAIRE SIMPLEMENT, Existe t il une fonction de comparaison qui puisse faire ça ?

MERCI

1 réponse

perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
16 janv. 2004 à 18:17
Voila une solution :
Mais pour que ca marche il faut:

Que laTable REPONSE ne contienne que des réponses
La table est de la forme : RA | RB | RC | RD |

Que la table ETUDIANT présente en premier les réponses aux questions (autant de réponses que de questions)
La table est de la forme : A | B | C | D | Ce que tu veux (NOM de l'étudiant,...)

ensuite pour faire la correction tu fais:
<?
include("Mysql_Fonc.php3");

// connections a la base
Connexion();

//récupération des réponses du prof
$Requete="SELECT * FROM `REPONSES`"; //préparation de la requete
$All=Executer($Requete); //exécution de la requete
$RLigne=mysql_fetch_array($All,MYSQL_ASSOC); //on met le résultat sous forme de tableau

//récupération des réponses des etudiants
$Requete="SELECT * FROM `ETUDIANT`"; //préparation de la requete
$All=Executer($Requete); //execution de la requete

//pour chaque étudiant on crée un tableau et on calcul le nb de bones réponses
while ($Ligne=MYSQL_FETCH_ARRAY($All,MYSQL_ASSOC))
{
$Point=0;//initialisation du nb de points
reset($Ligne); //se place sur le 1er élément des réponses etudiant
reset($RLigne); //se place sur le 1er élement des réponses prof
//tant qu'il y a des réponses prof on boucle
while(pos($RLigne))
{
//pour chaque réponse éleve on compare avec la réponse prof et on incrémente le nb de point si c'est ok
if(pos($Ligne)==pos($RLigne))
{
$Point++;
}
next($RLigne); //passage a la réponse prof suivante
next($Ligne); //passage a la réponse etudiante suivante
}
print $Point."
"; // affichage du nb de point pour chaque étudiant
}

?>

avec dans Mysql_Fonc.php3 :
<?php
function Executer($Requete)
{
/* Adressage d'une requete a MYSQL */

if($Res=mysql_query($Requete))
{
return $Res;
}
else
{
return FALSE;
}
}

function Connexion()
{
/* Connection a la base MYSQL */

$SERVEUR='XXX';//serveur
$NOM='XXX'; //login
$PASSE='';//mot de passe
$BASE='XXX';//nom de la base
$Db=mysql_connect($SERVEUR,$NOM,$PASSE);
mysql_select_db($BASE,$Db);
}
?>

voila c'est ca que tu veux?

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
Rejoignez-nous