La liste des absences avec les jours sans se limiter à une seule date sélectionnée est :d'ailleur je réitére ma question : Est il possible de ne pas sélectionner la date pour avoir les jours d'absences?
$sql = "SELECT t1.* , t2.* FROM `nbre_heures_absence` t1 join `eleve` t2 ON t1.idEleve=t2.idEleve
WHERE t1.idEleve = '". $idEleve . "' AND t1.nbre_heures_absence >0 ";
De quel état parles-tu ?Bonsoir,
et pour ce qui est de l'état je me suis renseigner et on m'as dit qu'il fallait passer soit par une librairie dompdf ou fpdf ou en faisant de l'ajax.T'en pense quoi? car j'aimerais bien savoir la solution la plus simple car je dois bientôt rentre mon projet et si je ne fais pas ça, je n'aurais pas réussi a le finir...
La liste des absences avec les jours sans se limiter à une seule date sélectionnée est :d'ailleur je réitére ma question : Est il possible de ne pas sélectionner la date pour avoir les jours d'absences?$sql = "SELECT t1.* , t2.* FROM `nbre_heures_absence` t1 join `eleve` t2 ON t1.idEleve=t2.idEleve WHERE t1.idEleve = '". $idEleve . "' AND t1.nbre_heures_absence >0 ";
de l'attestation de présence : du fichier que je veux faire : où quand je choisis un élève et que je le valide on retrouverais : son nom et prénom, son entreprise, son nombre d'heure d'absence et les jours d'absence.De quel état parles-tu ?Bonsoir,
et pour ce qui est de l'état je me suis renseigner et on m'as dit qu'il fallait passer soit par une librairie dompdf ou fpdf ou en faisant de l'ajax.T'en pense quoi? car j'aimerais bien savoir la solution la plus simple car je dois bientôt rentre mon projet et si je ne fais pas ça, je n'aurais pas réussi a le finir...
Hé bien tu imprimes cette attestation par du javascript en exécutant la fonction Print du navigateur et tu peux même prévoir un style CSS spécifique à l'impression.de l'attestation de présence : du fichier que je veux faire : où quand je choisis un élève et que je le valide on retrouverais : son nom et prénom, son entreprise, son nombre d'heure d'absence et les jours d'absence.
Code : Tout sélectionner
<body>
<a href="#" OnClick="javascript:window.print()">Imprimer</a>
<h1>Test d'impression</h1>
<p>Ceci est un test d'impression par javascript.</p>
</body>Code : Tout sélectionner
<style type="text/css" media="print">
body { font-size:12; background-color:white }
#bouton_imprimer { visibility:hidden }
</style>
<style type="text/css" media="screen">
body { font-size:10; background-color:lightblue }
</style>
<body>
<a id="bouton_imprimer" href="#" OnClick="javascript:window.print()">Imprimer</a>
<h1>Test d'impression</h1>
<p>Ceci est un test d'impression par javascript.</p>
</body>
Bonjour,
Ce qui t'es proposé comme solution avec les css, c'est de faire une page HTML avec ton état à imprimer.
En utilisant 2 CCS via l'attribut media, tu peux modifier l'impression en cachant des éléments affichés dans l'affichage de l'état dans le navigateur. En particulier tu peux mettre un bouton imprimer qui sera invisible lors de l'édition, de même que pour un menu, un haut de page ou un pied de page.
Au passage, ce genre de solution est très pratique lorsqu'elle est prévu dès le départ. Celà permet de faire une édition de chaque page assez facilement en n'imprimant que la partie centrale de la page. Le résultat n'est pas toujours aussi précis que du PDF, mais il ne demande presque pas de travail pour un rendu suffisant.
Pour ces sujets je te laisse le soin de prendre le temps et le recul nécessaire pour les réaliser d'abord par rapport au programmes qu'on a réalisé précédemment car ça se ressemble. Puis je verrai après ce que tu as fait et on en discutera en conséquence.pour ce qui est de la modification j'aimerais qu'on sélectionne l'élève comme tu as dis, que l'on clique sur valider et que tout les champs apparaissent et pré remplis pour les champs qui sont déjà rempli comme le nom, le prénom etc, après que l'on modifie ce que l'on veut et que l'on clique sur modifier qui va lancer la requête SQL "UPDATE ..."
Essaye de réaliser partie par partie car je vois que tu as tendance à vouloir réaliser plusieurs programmes en parallèle. Cette démarche ne te permettra pas de bien avancer dans ton apprentissage. chi va piano, va sano e va lontano.
Le but étant que tu comprennes les solutions qu'on a mis en place ensemble et que ça te permette d'apprendre plus au niveau SQL et PHP. Pour l'instant je sais que tu as encore des lacunes au niveau SQL, il faut donc réviser ce qu'on a fait dans les premiers programmes et surtout celui de l'assiduité.
En attendant que ça avance de ta part, je reste à l'écoute.
<?php
$nom = isset($_GET['nom']) && !empty($_GET['nom'])? $_GET['nom'] : null;
$idClasse = isset($_GET['idClasse']) && !empty($_GET['idClasse'])? $_GET['idClasse'] : null;
$prenom = isset($_GET['prenom']) && !empty($_GET['prenom'])? $_GET['prenom'] : null;
$adresse = isset($_GET['adresse']) && !empty($_GET['adresse'])? $_GET['adresse'] : null;
$code_postal = isset($_GET['code_postal']) && !empty($_GET['code_postal'])? $_GET['code_postal'] : null;
$ville = isset($_GET['ville']) && !empty($_GET['ville'])? $_GET['ville'] : null;
$portable = isset($_GET['portable']) && !empty($_GET['portable'])? $_GET['portable'] : null;
$mail = isset($_GET['mail']) && !empty($_GET['mail'])? $_GET['mail'] : null;
$date_de_naissance = isset($_GET['date_de_naissance']) && !empty($_GET['date_de_naissance'])? $_GET['date_de_naissance'] : null;
$date = isset($_GET['date']) && !empty($_GET['date'])? $_GET['date'] : null;
$mois = date_format(date_create($date), "m"); // extrait le mois de $date
$idEleve = isset($_GET['idEleve']) && !empty($_GET['idEleve'])? $_GET['idEleve'] : null;
// on se connecte à notre base
// $base = mysql_connect ('serveur', 'login', 'pass');
//mysql_select_db ('ma_base', $base) ;
mysql_select_db("bd_eleves", @mysql_connect("localhost","root","")) or die(mysql_error());
?>
<?php
// remplissage systématique de la liste des élèves
$listeDesEleves = "";
$sql = "SELECT * FROM eleve";
$result = mysql_query($sql) or die(mysql_error());
while($result && $row=mysql_fetch_array($result))
{
$selected = $row['idEleve']==$idEleve? " selected " : "";
$listeDesEleves .= "<option value=\"".$row['idEleve']."\" ".$selected." >".$row['nom']."</option>";
}
// modifier un eleve
if (isset($_GET['action']) && $_GET['action']=='modifier')
{
//
$message = "";
if (empty($message))
{
$sql = "UPDATE eleve SET nom = '".$nom."', prenom = '".$prenom."', idClasse = '".$idClasse."', adresse ='".$adresse."', code_postal =
'".$code_postal."', ville = '".$ville."', portable = '".$portable."', mail = '".$mail."', date_de_naissance = '".$date_de_naissance."' WHERE idEleve=" . $idEleve;
$result = mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
//echo $sql;
if(!$result);
if (empty($message)) $message = "modification effectué avec succès";
else $message = "<p>Les Erreurs suivantes sont rencontrées :</ul>" . $message . "</ul></p>";
}
}
// fin de connexion
mysql_close();
?>
<h1>Modification d'élève de la base</h1><br/><br/>
<form name="form2" action="" method="get">
Eleve : <select name="idEleve" onchange="form1.submit();" value="<?php echo isset($idEleve)?$idEleve:null; ?>" >
<option value="" >
</option>
<?php echo isset($listeDesEleves)?$listeDesEleves:null; ?>
</select>
<input type="submit" name="action" value="valider" />
<div id="message"><?php echo isset($message)?$message:''; ?></div>
<br/><br/>
<table align="left">
<tr align="left">
<th>
Nom :
</th>
<th align="left">
<input type="text" id="nom" name="nom" value="<?php echo isset($nom)?$nom:''; ?>"/><FONT color="red"> *</FONT>
</th>
</tr>
<tr>
<th align="left">
Prenom :
</th>
<th>
<input type="text" id="prenom" name="prenom" value="<?php echo isset($prenom)?$prenom:''; ?>"/><FONT color="red"> *</FONT>
</th>
</tr>
<tr>
<th align="left">
Classe :
</th>
<th>
<input type="text" id="idClasse" name="idClasse" value=""/><FONT color="red"> *</FONT>
</th>
</tr>
<tr>
<th align="left">
annee :
</th>
<th>
<input type="text" id="annee" name="annee" value=""/><FONT color="red"> *</FONT>
</th>
</tr>
<tr>
<th align="left">
promotion :
</th>
<th>
<input type="text" id="promotion" name="promotion" value=""/><FONT color="red"> *</FONT>
</th>
</tr>
<tr>
<th align="left">
redoublement :
</th>
<th align="left">
<input type="text" id="redoublement" name="redoublement" value=""/>
</th>
</tr>
<tr>
<th align="left">
Adresse :
</th>
<th align="left">
<input type="text" id="adresse" name="adresse" value=""/>
</th>
</tr>
<tr>
<th align="left">
Code postal :
</th>
<th align="left">
<input type="text" id="code_postal" name="code_postal" value=""/>
</th>
</tr>
<tr>
<th align="left">
Ville :
</th>
<th align="left">
<input type="text" id="ville" name="ville" value=""/>
</th>
</tr>
<tr>
<th align="left">
Portable :
</th>
<th align="left">
<input type="text" id="portable" name="portable" value=""/>
</th>
</tr>
<tr>
<th align="left">
Mail :
</th>
<th align="left">
<input type="text" id="mail" name="mail" value=""/>
</th>
</tr>
<tr>
<th align="left">
Date de naissance :
</th>
<th align="left">
<input type="text" id="date_de_naissance" name="date_de_naissance" value=""/>
</th>
</tr>
</table>
<br/><FONT color="red"> *</FONT>=champ obligatoire.
<input type="submit" name="action" value="modifier" />
</form>
donc j'arrive a modifier mais je ne sais pas comment pré remplir mes champs
// rechercher les données de l'élève choisi dans la liste
if (isset($_GET['action']) && $_GET['action']=='valider' && !empty($idEleve))
{
$message = "";
$sql = "SELECT * FROM eleve WHERE idEleve ='" . $idEleve . "' ";
$result = mysql_query($sql) or die(mysql_error());
if ($result && $row=mysql_fetch_array($result))
{
// affectation des données de l'élève dans les variables du formulaire
$idClasse =$row['idClasse'];
$nom = $row['nom'];
$prenom = $row['prenom'];
$adresse = $row['adresse'];
$code_postal = $row['code_postal'];
$ville = $row['ville'];
$portable = $row['portable'];
$mail = $row['mail'];
$date_de_naissance = $row['date_de_naissance'];
.... Ajouter les autres champs de l'élève ....
}
else { $message = "<p>Elève non trouvé</p>"; }
}
Ce bloc de code doit être insérer au moins avant l'affichage du formulaire. Le mieux est de le mettre avant ou après celui qui traite la modification.
Quelle est la relation logique entre un élève et une entreprise ? dans ton cas.dsl de poser une question peut être toute simple mais je n'arrive pas a relier mes deux tables : "eleve"( idEleve, nom, prenom, classe, annee, promotion, redoublement, adresse, code_postal, ville, portable, mail, date_de_naissance) et "entreprise" (idEntreprise, nom_etr, adresse, code_postal, ville, tel, mail, tuteur) et je sais pas si c'est possible mais j'aimerais que l'entreprise soit lié a l'élève et que quand je voudrais afficher les donnée de l'élève,(dans mon attestation) l'entreprise qui est lié a l'élève se mette sur le fichier ou la page.
$sql = "SELECT * FROM eleve t1 JOIN entreprise t2 ON t1.idEntreprise=t2.idEntreprise WHERE t1.idEleve ='" . $idEleve. "' ";
Merci bien pour ce pré-remplissage car je galérais grave!!Bravo, tout y est sauf le pré-remplissage des données élèves pour les afficher. Pour ce faire, voici comment:
Quand l'utilisateur choisit un élève dans la liste des élèves puis clique sur le bouton "valider", le php reçoit un $_GET['action']='valider' et à ce moment il faut qu'il exécute la requête de recherche des données de idEleve choisi dans la liste.
Voici la partie du programme qui fait ça:Ce bloc de code doit être insérer au moins avant l'affichage du formulaire. Le mieux est de le mettre avant ou après celui qui traite la modification.// rechercher les données de l'élève choisi dans la liste if (isset($_GET['action']) && $_GET['action']=='valider' && !empty($idEleve)) { $message = ""; $sql = "SELECT * FROM eleve WHERE idEleve ='" . $idEleve . "' "; $result = mysql_query($sql) or die(mysql_error()); if ($result && $row=mysql_fetch_array($result)) { // affectation des données de l'élève dans les variables du formulaire $idClasse =$row['idClasse']; $nom = $row['nom']; $prenom = $row['prenom']; $adresse = $row['adresse']; $code_postal = $row['code_postal']; $ville = $row['ville']; $portable = $row['portable']; $mail = $row['mail']; $date_de_naissance = $row['date_de_naissance']; .... Ajouter les autres champs de l'élève .... } else { $message = "<p>Elève non trouvé</p>"; } }
Voila. A+
dans mon cas c'est exactement ce que tu as dit, il sont en bts alternance , mais il faut bien faire une requète SQL dans la base de donnée pour faire une jointure au préalable ou alors on utilise directement cette requète?Quelle est la relation logique entre un élève et une entreprise ? dans ton cas.dsl de poser une question peut être toute simple mais je n'arrive pas a relier mes deux tables : "eleve"( idEleve, nom, prenom, classe, annee, promotion, redoublement, adresse, code_postal, ville, portable, mail, date_de_naissance) et "entreprise" (idEntreprise, nom_etr, adresse, code_postal, ville, tel, mail, tuteur) et je sais pas si c'est possible mais j'aimerais que l'entreprise soit lié a l'élève et que quand je voudrais afficher les donnée de l'élève,(dans mon attestation) l'entreprise qui est lié a l'élève se mette sur le fichier ou la page.
En général, pour une BTS en alternance, l'élève est associé à une entreprise en tant que stagiaire. Donc on peut dire que pour un stagiaire ou élève il y a une seule association avec une seule entreprise. Par contre pour une entreprise on peut associer plusieurs stagiaires. De ce fait, on peut stocker les données des entreprises dans une table "entreprise" avec un "idEntreprise" comme clé primaire et mettre en relation chaque stagiaire (ou élève) avec son entreprise par un champ (clé étrangère) nommé aussi "idEntreprise" qu'on doit ajouter dans la table "eleve".
Comme ça, on peut effectivement récupérer les données de l'entreprise à laquelle est attaché un élève par la requête suivante qui sélectionne les données d'un élève et de son entreprise:$sql = "SELECT * FROM eleve t1 JOIN entreprise t2 ON t1.idEntreprise=t2.idEntreprise WHERE t1.idEleve ='" . $idEleve. "' ";