Programme php sur gestion module

Fermé
salmador Messages postés 19 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 5 juin 2015 - 2 juin 2015 à 21:55
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 - 5 juin 2015 à 21:19
bonjour tout le monde
le crée un code source qui faire lorsque sélectionne le niveau et l'option juste les module de l'option et niveau s'apparaissent mais ça marché pas svp aider moi
la base de donneés
-- phpMyAdmin SQL Dump
-- version 3.5.1
-- http://www.phpmyadmin.net
--
-- Client: localhost
-- Généré le: Lun 01 Juin 2015 à 09:25
-- Version du serveur: 5.5.24-log
-- Version de PHP: 5.4.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: `univ`
--

-- --------------------------------------------------------


--
-- Structure de la table `enseignant`
--

CREATE TABLE IF NOT EXISTS `enseignant` (
  `id_ens` int(10) NOT NULL AUTO_INCREMENT,
  `nom_ens` varchar(30) NOT NULL,
  `prenom` varchar(30) NOT NULL,
  `adresse` text NOT NULL,
  `telephone` int(11) NOT NULL,
  `login_ens` varchar(20) NOT NULL,
  `motpass_ens` char(20) NOT NULL,
  PRIMARY KEY (`id_ens`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;


--
-- Structure de la table `enseignement`
--

CREATE TABLE IF NOT EXISTS `enseignement` (
  `id_enm` int(11) NOT NULL AUTO_INCREMENT,
  `id_module` int(11) NOT NULL,
  `id_opt` int(11) NOT NULL,
  `id_sem` int(11) NOT NULL,
  `id_prof` int(11) NOT NULL,
  `id_niv` int(11) NOT NULL,
  PRIMARY KEY (`id_enm`),
  KEY `id_module` (`id_module`,`id_opt`,`id_sem`,`id_prof`,`id_niv`),
  KEY `id_opt` (`id_opt`),
  KEY `id_sem` (`id_sem`),
  KEY `id_prof` (`id_prof`),
  KEY `id_niv` (`id_niv`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

--
-- Contenu de la table `enseignement`
--

INSERT INTO `enseignement` (`id_enm`, `id_module`, `id_opt`, `id_sem`, `id_prof`, `id_niv`) VALUES
(3, 1, 1, 5, 5, 2),
(4, 2, 1, 5, 5, 2),
(5, 4, 1, 5, 3, 2),
(1, 5, 5, 5, 3, 1),
(2, 6, 5, 5, 3, 1),
(6, 8, 6, 1, 3, 3),
(7, 9, 6, 2, 3, 3);

-- --------------------------------------------------------


--
-- Structure de la table `examen`
--

CREATE TABLE IF NOT EXISTS `examen` (
  `id_exam` int(5) NOT NULL,
  `lib_exam` varchar(35) NOT NULL,
  PRIMARY KEY (`id_exam`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Contenu de la table `examen`
--

INSERT INTO `examen` (`id_exam`, `lib_exam`) VALUES
(1, 'Examen'),
(2, 'Rattrapage');

-- --------------------------------------------------------



-- --------------------------------------------------------


-- --------------------------------------------------------

--
-- Structure de la table `module`
--

CREATE TABLE IF NOT EXISTS `module` (
  `id_module` int(9) NOT NULL AUTO_INCREMENT,
  `libl_module` varchar(30) NOT NULL,
  `coef_mod` int(2) NOT NULL,
  `id_niv` int(11) NOT NULL,
  `id_opt` int(11) NOT NULL,
  PRIMARY KEY (`id_module`),
  KEY `id_niv` (`id_niv`),
  KEY `id_opt` (`id_opt`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;

--
-- Contenu de la table `module`
--

INSERT INTO `module` (`id_module`, `libl_module`, `coef_mod`, `id_niv`, `id_opt`) VALUES
(1, 'systeme d''exploitation', 5, 2, 1),
(2, 'web semantique', 5, 2, 1),
(3, 'module RSD', 3, 2, 2),
(4, 'module optionele', 5, 2, 1),
(5, 'reseaux', 5, 1, 5),
(6, 'algorithme', 5, 1, 5),
(7, 'oriente objet', 4, 1, 5),
(8, 'module IA', 3, 2, 6),
(9, 'module SBDD', 4, 2, 3),
(10, 'module ISA', 5, 3, 7),
(11, 'module IL', 2, 3, 6),
(12, 'module IL M', 2, 4, 6),
(14, 'module ISA M', 4, 4, 7);

-- --------------------------------------------------------

--
-- Structure de la table `niveaux`
--

CREATE TABLE IF NOT EXISTS `niveaux` (
  `id_niv` int(9) NOT NULL AUTO_INCREMENT,
  `lib_niv` varchar(20) NOT NULL,
  PRIMARY KEY (`id_niv`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Contenu de la table `niveaux`
--

INSERT INTO `niveaux` (`id_niv`, `lib_niv`) VALUES
(1, 'licence 2'),
(2, ' licence 3'),
(3, ' Master 1'),
(4, ' Master 2');

-- --------------------------------------------------------

--
-- Structure de la table `note`
--

CREATE TABLE IF NOT EXISTS `note` (
  `note` float NOT NULL,
  `module` int(11) NOT NULL,
  `examen` int(11) NOT NULL,
  `etudiant` int(11) NOT NULL,
  KEY `module` (`module`),
  KEY `examen` (`examen`),
  KEY `etudiant` (`etudiant`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Structure de la table `options`
--

CREATE TABLE IF NOT EXISTS `options` (
  `id_opt` int(30) NOT NULL,
  `lib_opt` text NOT NULL,
  PRIMARY KEY (`id_opt`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Contenu de la table `options`
--

INSERT INTO `options` (`id_opt`, `lib_opt`) VALUES
(1, 'TSW'),
(2, 'RSD'),
(3, 'SBDD'),
(4, 'IA'),
(5, 'Informatique'),
(6, 'IL'),
(7, 'ISA');

-- --------------------------------------------------------

-

-- --------------------------------------------------------

--
-- Structure de la table `semestre`
--

CREATE TABLE IF NOT EXISTS `semestre` (
  `id_sem` int(3) NOT NULL AUTO_INCREMENT,
  `lib_sem` varchar(30) NOT NULL,
  `lib_niv` int(11) NOT NULL,
  PRIMARY KEY (`id_sem`),
  KEY `lib_niv` (`lib_niv`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

--
-- Contenu de la table `semestre`
--

INSERT INTO `semestre` (`id_sem`, `lib_sem`, `lib_niv`) VALUES
(1, 'semestre1', 3),
(2, 'semestre2', 3),
(3, 'semestre3', 4),
(4, 'semestre4', 4),
(5, 'semestre5', 2),
(6, 'semestre6', 2),
(7, 'semestre3', 1),
(8, 'semestre4', 1);

-- --------------------------------------------------------



--
-- Contraintes pour la table `enseignement`
--
ALTER TABLE `enseignement`
  ADD CONSTRAINT `enseignement_ibfk_1` FOREIGN KEY (`id_module`) REFERENCES `module` (`id_module`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `enseignement_ibfk_2` FOREIGN KEY (`id_opt`) REFERENCES `options` (`id_opt`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `enseignement_ibfk_3` FOREIGN KEY (`id_sem`) REFERENCES `semestre` (`id_sem`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `enseignement_ibfk_4` FOREIGN KEY (`id_prof`) REFERENCES `enseignant` (`id_ens`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `enseignement_ibfk_5` FOREIGN KEY (`id_niv`) REFERENCES `niveaux` (`id_niv`) ON DELETE CASCADE ON UPDATE CASCADE;





--
-- Contraintes pour la table `module`
--
ALTER TABLE `module`
  ADD CONSTRAINT `module_ibfk_1` FOREIGN KEY (`id_niv`) REFERENCES `niveaux` (`id_niv`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `module_ibfk_2` FOREIGN KEY (`id_opt`) REFERENCES `options` (`id_opt`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Contraintes pour la table `note`
--
ALTER TABLE `note`
  ADD CONSTRAINT `note_ibfk_1` FOREIGN KEY (`module`) REFERENCES `module` (`id_module`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `note_ibfk_2` FOREIGN KEY (`examen`) REFERENCES `examen` (`id_exam`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `note_ibfk_3` FOREIGN KEY (`etudiant`) REFERENCES `etudiant` (`id_etud`) ON DELETE CASCADE ON UPDATE CASCADE;



--
-- Contraintes pour la table `semestre`
--
ALTER TABLE `semestre`
  ADD CONSTRAINT `semestre_ibfk_1` FOREIGN KEY (`lib_niv`) REFERENCES `niveaux` (`id_niv`) ON DELETE CASCADE ON UPDATE CASCADE;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;




<?php

mysql_connect("localhost", "root", "");
mysql_select_db("univ");
?>
<html>
<body>

<?php
if(isset($_POST['option']) and isset($_POST['sem'])){
	

$option= $_POST['option']; 

$semestre =$_POST['sem'];

$donnee=mysql_query("select libl_module from module,enseignement,options,niveaux where module.id_module=enseignement.id_module and enseignement.id_opt=options.id_opt and module.id_niv=niveaux.id_niv and options.lib_opt='$option'  and  enseignement.id_sem='$semestre'");

?>
<form method="post" action="saisernote.php" class="formulaire">
Veuillez choisr la matiére : <br/><br/>
   <?php
   $i=6;
   while($a=mysql_fetch_array($donnee)){
		echo '<input type="radio" name="radio" value="'.$a['libl_module'].'" id="choix'.$i.'" /> <label for="choix'.$i.'">'.$a['libl_module'].'</label><br /><br />';
		$i++;
   }
   ?>
<input type="submit" value="Afficher les devoirs">
</form>
<?php
}

?>
<h2>Veuillez choisir le Semestre et option :</h2></br>
<form method="post" action="saisernote.php" class="formulaire">

<?php
$data=mysql_query("select distinct lib_opt from options"); ?>

Option              :        <select name="option"> 
<?php while($a=mysql_fetch_array($data)){
echo '<option value="'.$a['lib_opt'].'">'.$a['lib_opt'].'</option>';
}?></select><br/>

<?php
$data=mysql_query("select distinct lib_sem from semestre"); ?>

Semestre                :        <select name="sem"> 
<?php while($a=mysql_fetch_array($data)){
echo '<option value="'.$a['lib_sem'].'">'.$a['lib_sem'].'</option>';
}?></select><br/>

<input type="submit"  value="Afficher les matieres">
</form>
<?php  ?>
</pre></center>
</div>
</body>
</html>

2 réponses

hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
2 juin 2015 à 22:04
Bonsoir,

Avant toute chose, sachez que l'extension que vous utilisez pour dialoguer avec la base de données est obsolète, il faut utiliser PDO : https://www.php.net/manual/fr/book.pdo.php


Pour ce qui est de votre problème, avez-vous un message d'erreur ? Merci d'être un eu plus précis.

Cordialement,

hharchi9.
0
salmador Messages postés 19 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 5 juin 2015
2 juin 2015 à 22:33
désole monsieur mais Je n'ai pas compris
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
2 juin 2015 à 22:35
Comment ça ? Quel est le problème ? C'est au niveau de PDO ?
0
salmador Messages postés 19 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 5 juin 2015
2 juin 2015 à 23:43
le probleme dans le code php n'affiche pas une radio combobox qui contient les module pour choix
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
3 juin 2015 à 18:45
Il vous manque le else après le if.
De plus je vous le rappelle il faut utiliser PDO pour se connecter à la base de données !
Voici le code changé :

</form>
<?php
$host="localhost";
$dbname="univ";
$user="root";
$pass="";

try
{
		// On se connecte à MySQL
		$bdd = new PDO(sprintf('mysql:host=%s;dbname=%s', $host, $dbname), $user, $pass);
		$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
	// En cas d'erreur, on affiche un message et on arrête tout
	die('Erreur : '.$e->getMessage());
}

?>
<html>
<body>

<?php
if(isset($_POST['option']) and isset($_POST['sem'])){
	

$option= $_POST['option']; 
$semestre =$_POST['sem'];
$query= $bdd->prepare("SELECT libl_module FROM module,enseignement,options,niveaux WHERE module.id_module=enseignement.id_module and enseignement.id_opt=options.id_opt and module.id_niv=niveaux.id_niv and options.lib_opt=:option  and  enseignement.id_sem=:semestre");
$query->execute(array(
':option' => $option,
':semestre' => $semestre));
?>
<form method="post" action="saisernote.php" class="formulaire">
Veuillez choisr la matiére : <br/><br/>
   <?php
   $i=6;
   while($a= $query->fetch()){
		echo '<input type="radio" name="radio" value="'.$a['libl_module'].'" id="choix'.$i.'" /> <label for="choix'.$i.'">'.$a['libl_module'].'</label><br /><br />';
		$i++;
   }
   $query->CloseCursor();
   ?>
<input type="submit" value="Afficher les devoirs">
</form>
<?php
}
else
{

?>
<h2>Veuillez choisir le Semestre et option :</h2></br>
<form method="post" action="saisernote.php" class="formulaire">

<?php
$data=$bdd->query("SELECT DISTINCT lib_opt FROM options"); ?>

Option              :        <select name="option"> 
<?php while($a=$data->fetch()){
echo '<option value="'.$a['lib_opt'].'">'.$a['lib_opt'].'</option>';
}
$data->CloseCursor();
?></select><br/>

<?php
$data=$bdd->query("SELECT DISTINCT lib_sem FROM semestre"); ?>

Semestre                :        <select name="sem"> 
<?php while($a=$data->fetch()){
echo '<option value="'.$a['lib_sem'].'">'.$a['lib_sem'].'</option>';
}
$data->CloseCursor();
?></select><br/>

<input type="submit"  value="Afficher les matieres">
</form>
<?php  
}?>
</pre></center>
</div>
</body>
</html>
0
salmador Messages postés 19 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 5 juin 2015
3 juin 2015 à 20:13
merci monsieur sur la réponse mais le problème n'existe pas dans la base de donne ,mon probléme c'est que ce code lorsque je clique sur le button Affiche matière n'affiche pas les modules ,les options,semestre des etudiants qu'on a déja selectione ,je pense que le probleme existe dans la requet $donnee dans les clés etranger
merci a l'avance
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
Modifié par hharchi9 le 4/06/2015 à 08:52
Voici un exemple :



La requête ne renverra aucun résultat et si vous cherchez, il y en a beaucoup d'autres dans le même cas...
0
salmador Messages postés 19 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 5 juin 2015
4 juin 2015 à 16:42
je compris cette explication et Remercier sur elle mais le contenu de table est juste car je ne veux pas une relation entre option informatique et semestre 6 car pour chaque niveau posséde seulement 2 semestre par exe(niveau license 2 avoir seulement semestre 3et4
monsieur pour quoi le programme afficher seulement systeme d'exploitation malgré web somatique et module optionnelle avoir(id-niv=2 ,id-opt=1)
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
4 juin 2015 à 17:23
Ce problème est réglé, il y avait une erreur dans laa consigne d'affichage du bouton radio. Code corrigé :

echo '<input type="radio" name="radio" value="'.$a['libl_module'].'" id="choix'.$i.'" /> <label for="choix'.$i.'">'.$a['libl_module'].'</label><br /><br />';
0
salmador Messages postés 19 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 5 juin 2015
4 juin 2015 à 17:39
merci beaucoup monsieur c'est très très bien
merci pour vous efforts
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
4 juin 2015 à 18:59
De rien, bonne continuation !

Si votre problème est résolu, n'oubliez pas de le signaler via le bouton en haut du premier post.
0
salmador Messages postés 19 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 5 juin 2015
4 juin 2015 à 20:32
est ce que vous pouvez faire le mémé code mais avec les mot clés qui je les connait car je ne sait pas les mot clé comme (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);)
merci
0