Requete de tri

Résolu
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012 - 6 avril 2011 à 22:00
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012 - 9 avril 2011 à 17:27
Bonsoir à tous,

Je cherche comment faire pour : exemple

une base Adherents table enfants
Dedans des eleves de la maternelle au CM2
Et dans un menu deroulant avec les classes, je doit voir que les CM2 par exemple apparaitre dans un tableau.
Et pouvoir re-choisir une autre classe de cette page.

Voici ma page ( grave à COD57):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv= "content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="Dreamweaver CS4">
<title>
</title>
<style type="text/css">
<!--
.nom {
font-family: Georgia, "Times New Roman", Times, serif;
}
.nom {
font-size: x-small;
}
.nom {
font-weight: bold;
}
.nom {
font-size: xx-small;
}
-->
</style>
</head>

<?php
$db = mysql_connect('localhost', 'xxxx', 'xxxx') or die('HOST ?');
mysql_select_db('Adherents',$db) or die('DB ?');


/*listage des eleves*/
$sql = 'SELECT * FROM enfants ORDER by Classe'; /*pareil*/
$req=mysql_query($sql) or die ('Erreur SQL !
'.$sql.'
'.mysql_error());

echo '
';

echo '';

echo '----
ID, Nom, Prenom, Classe, Date_naissance, Telephone, Portable_M, Portable_P, Adresse, E_mail, Sortie, Photos, Action, ';

while($data = mysql_fetch_assoc($req)){
/*conversion de la date au format Français */

$date=explode('-',$data['Date_naissance']);
$date=$data['Date_naissance']=$date[2].'-'.$date[1].'-'.$date[0];
/*
$a = substr($data['Date_naissance'], 0, 4);
$m = substr($data['Date_naissance'], 5, 2);
$j = substr($data['Date_naissance'], 8, 2);
$date = $j.'-'.$m.'-'.$a;
*/

echo '----
'.$data['id'].', '.$data['Nom'].', '.$data['Prenom'].', '.$data['Classe'].
', '.$date.', '.$data['Telephone'].', '.$data['Portable_M'].', '.$data['Portable_P'].', '.$data['Adresse'].', '.$data['E_mail'].
', '.$data['Sortie'].', '.$data['Photos'].', [? Lister les éleves]</center>';
?>
<?php
}

if(isset($_POST['Modifier']) && $_POST['Modifier']==="Modification" && $_SERVER['REQUEST_METHOD']==='POST'){
/*LE FORMULAIRE EST POSTE*/

extract($_POST);


// je vérifie si les champs sont vides

if(empty($Prenom) OR empty($Nom) OR empty($Classe) OR empty($Adresse) OR empty($Date_naissance) OR empty($Sortie) OR empty($Photos))
{
echo '<center>Attention, seul le champs Telephone peut rester vide !';
echo '
Attention, seul le champs Portable_M peut rester vide !';
echo '
Attention, seul le champs Portable_P peut rester vide !';
echo '
Attention, seul le champs E_mail peut rester vide !';
echo '
[javascript:history.back(); Retour]</center>';
}

// Aucun champ n'est vide, je peut enregistrer dans la table
else
{

$date_naiss = explode('-',$Date_naissance);
$Date_naissance = $date_naiss[2].'-'.$date_naiss[1].'-'.$date_naiss[0];


$sql =" UPDATE `Adherents`.`enfants` SET


`Nom`= '$Nom' ,
`Prenom`= '$Prenom' ,
`Classe`= '$Classe',
`Telephone`= '$Telephone',
`Portable_M`= '$Portable_M',
`Portable_P`= '$Portable_P' ,
`Adresse`= '$Adresse' ,
`Date_naissance`= '$Date_naissance',
`E_mail`= '$E_mail',
`Sortie`= '$Sortie',
`Photos`= '$Photos'
WHERE id='".$id."' ";



// on insere les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
// on affiche le résultat pour le visiteur
echo '<center>Vos infos on été modifié !
';
mysql_close(); // on ferme la connexion
echo '[? Ajouter un éléve]
</center>';
unset($_POST);
//header('Location: Adherents.php');exit;
echo $_SERVER['PHP_SELF'];
}

}

else if(isset($_POST['envoyer']) && $_POST['envoyer']==="Envoyer" && $_SERVER['REQUEST_METHOD']==='POST'){
/*LE FORMULAIRE EST POSTE*/

extract($_POST);


// je vérifie si les champs sont vides

if(empty($Prenom) OR empty($Nom) OR empty($Classe) OR empty($Adresse) OR empty($Date_naissance) OR empty($Sortie) OR empty($Photos))
{
echo '<center>Attention, seul le champs Telephone peut rester vide !';
echo '
Attention, seul le champs Portable_M peut rester vide !';
echo '
Attention, seul le champs Portable_P peut rester vide !';
echo '
Attention, seul le champs E_mail peut rester vide !';
echo '
[javascript:history.back(); Retour]</center>';
}

// Aucun champ n'est vide, je peut enregistrer dans la table
else
{

$date_naiss = explode('-',$Date_naissance);
$Date_naissance = $date_naiss[2].'-'.$date_naiss[1].'-'.$date_naiss[0];
$sql =" INSERT INTO `Adherents`.`enfants` (

`id` ,
`Nom` ,
`Prenom` ,
`Classe` ,
`Telephone` ,
`Portable_M` ,
`Portable_P`,
`Adresse` ,
`Date_naissance` ,
`E_mail`,
`Sortie`,
`Photos`
)VALUES (NULL , '$Prenom', '$Nom', '$Classe', '$Telephone', '$Portable_M', '$Portable_P', '$Adresse', '$Date_naissance', '$E_mail', '$Sortie', '$Photos')";



// on insere les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
// on affiche le résultat pour le visiteur
unset($_POST);
//header('Location: Adherents.php');exit;
echo $_SERVER['PHP_SELF'];
echo 'Vos infos on été ajoutées.';
mysql_close(); // on ferme la connexion
echo '[? Ajouter un éléve]';
}


} else { ?>




<form method="POST" action="">

<center> Saisir les Adhérents dans les cases prevues a cette effet.

</center>
<center> Format de la date de naissance "00-00-0000".

</center>
<center> Laissez vide les cases non utilisées.





</center>
Prenom, ,

----
Nom, ,

----
Classe, ,

----
Telephone, ,

----
Portable de la mere, ,

----
Portable du pere, ,

----
Adresse, ,

----
Date de naissance, ,

----
E-mail, ,

----
Autorisation de sortie, ,

----
Autorisation de publication de photos,




</form>



<?php
mysql_close();
}
?>



</html>

Merci par avance.

4 réponses

casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012
9 avril 2011 à 17:27
Bonjour,

Un petit rajout à tout ça, en rouge ce que j'ai rajoute
Je voudrais faire apparaitre, le pseudo de la personne logger,sur la colonne 'utilisateur'.
Les login viennent d'une autre table (tbl_user).
Et au passage faire un input de deconnexion vers une autre page.

$sql = 'SELECT * FROM enfants ORDER by Classe'; /*pareil*/
$req=mysql_query($sql) or die ('Erreur SQL !
'.$sql.'
'.mysql_error());
$pseudo = 'SELECT * FROM tbl_user';
echo '
';

echo '<table border="1">';

echo '<tr><td>ID</td><td>Nom</td><td>Prenom</td><td>Classe</td><td>Date_naissance</td><td>Telephone</td><td>Portable_M</td><td>Portable_P</td><td>Adresse</td><td>E_mail</td><td>Sortie</td><td>Photos</td><td>Action</td><td>Utilisateur</td></tr>';

while($data = mysql_fetch_assoc($req)){
/*conversion de la date au format Français */

$date=explode('-',$data['Date_naissance']);
$date=$data['Date_naissance']=$date[2].'-'.$date[1].'-'.$date[0];
/*
$a = substr($data['Date_naissance'], 0, 4);
$m = substr($data['Date_naissance'], 5, 2);
$j = substr($data['Date_naissance'], 8, 2);
$date = $j.'-'.$m.'-'.$a;
*/


echo '<tr><td>'.$data['id'].'</td><td>'.$data['Nom'].'</td><td>'.$data['Prenom'].'</td><td>'.$data['Classe'].
'</td><td>'.$date.'</td><td>'.$data['Telephone'].'</td><td>'.$data['Portable_M'].'</td><td>'.$data['Portable_P'].'</td><td>'.$data['Adresse'].'</td><td>'.$data['E_mail'].
'</td><td>'.$data['Sortie'].'</td><td>'.$data['Photos'].'</td><td>[?modifier='.$data['id'].' Modifier] -- [?supprimer='.$data['id'].' Supprimer]</td><td>'.$pseudo[''].'</td></tr>';

Merci par avance

Alain
3
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 avril 2011 à 13:53
bonjour

pour aller plus loin
je vois que tu as ajouté des champs ...
en respectant la nomenclature des classes du select
remettre tes identifiants host,login ...

mais si tu ajoutes une table classe se serait plus facile

id
classe
professeur
id_eleve

tu pourrais faire evoluer ton script
et generer un select dynamique dans les formulaires
mais pour pas trop d'embrouiller
essaye de comprendre la query where= ...

a++


entre
et
/*action*/

 

/*le nouveau code*/

<form method="post" action="">
<select name="classe">
<option value="cpa">cpa</option>
<option value="cpb">cpb</option>
<option value="ce1a">ce1a</option>
<option value="ce1a">ce1a</option>
<option value="ce2a">ce2a</option>
<option value="ce2b">ce2b</option>
<option value="cm1a">cm1a</option>
<option value="cm1b">cm1b</option>
<option value="cm2a">cm2a</option>
<option value="cm2b">cm2b</option>
<option value="clis">clis</option>
</select>

</form>

<?php 
$db = mysql_connect('localhost', 'root', '') or die('HOST ?'); 
mysql_select_db('Adherents',$db) or die('DB ?'); 


/*listage des eleves*/ 


if(isset($_POST['sub_classe']) && $_SERVER['REQUEST_METHOD']==='POST'){
$classe = $_POST['classe']; 
$sql = 'SELECT * FROM enfants where Classe='.$classe; /*pareil*/ 
$req=mysql_query($sql) or die ('Erreur SQL !
'.$sql.'
'.mysql_error());


echo '';

echo '----
ID, Nom, Prenom, Classe, Date_naissance, Telephone, Portable_M, Portable_P, Adresse, E_mail, Sortie, Photos, Action, ';

while($data = mysql_fetch_assoc($req)){
/*conversion de la date au format Français */

$date=explode('-',$data['Date_naissance']);
$date=$data['Date_naissance']=$date[2].'-'.$date[1].'-'.$date[0];
/*
$a = substr($data['Date_naissance'], 0, 4);
$m = substr($data['Date_naissance'], 5, 2);
$j = substr($data['Date_naissance'], 8, 2);
$date = $j.'-'.$m.'-'.$a;
*/

echo '----
'.$data['id'].', '.$data['Nom'].', '.$data['Prenom'].', '.$data['Classe'].
', '.$date.', '.$data['Telephone'].', '.$data['Portable_M'].', '.$data['Portable_P'].', '.$data['Adresse'].', '.$data['E_mail'].
', '.$data['Sortie'].', '.$data['Photos'].', Modifier -- Supprimer, ';
}

echo '
'; 

echo '
<hr>'; 


}else{

$sql = 'SELECT * FROM enfants ORDER by Classe'; /*pareil*/ 
$req=mysql_query($sql) or die ('Erreur SQL !
'.$sql.'
'.mysql_error());
echo '
'; 

echo '';

echo '----
ID, Nom, Prenom, Classe, Date_naissance, Telephone, Portable_M, Portable_P, Adresse, E_mail, Sortie, Photos, Action, ';

while($data = mysql_fetch_assoc($req)){
/*conversion de la date au format Français */

$date=explode('-',$data['Date_naissance']);
$date=$data['Date_naissance']=$date[2].'-'.$date[1].'-'.$date[0];
/*
$a = substr($data['Date_naissance'], 0, 4);
$m = substr($data['Date_naissance'], 5, 2);
$j = substr($data['Date_naissance'], 8, 2);
$date = $j.'-'.$m.'-'.$a;
*/

echo '----
'.$data['id'].', '.$data['Nom'].', '.$data['Prenom'].', '.$data['Classe'].
', '.$date.', '.$data['Telephone'].', '.$data['Portable_M'].', '.$data['Portable_P'].', '.$data['Adresse'].', '.$data['E_mail'].
', '.$data['Sortie'].', '.$data['Photos'].', Modifier -- Supprimer, ';
}

echo '
'; 

echo '
<hr>'; 
}

0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 avril 2011 à 16:19
pour pas de confusion ' et "

fait ta requete plutot comme ça

if(isset($_POST['sub_classe']) && $_SERVER['REQUEST_METHOD']==='POST'){
$classe = $_POST['classe'];
$sql = "SELECT * FROM enfants where Classe='".$classe."' "; /*pareil*/

...


a++
0
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012
7 avril 2011 à 22:06
Bonsoir COD57,

Je ne c'est pas si c'est ton métier ou une passion, mais tu es vraiment très bon. Cela marche parfaitement encore une fois. Merci beaucoup.
tu me parle de générer un select dynamique dans les formulaires. Cela sert à quoi.
Je suis débutant dans le PHP et je ne demande que à apprendre.

Encore merci beaucoup

Alain
0
Rejoignez-nous