Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/09/2011, 11h34   #1
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Par défaut récupérer checkbox depuis mysql

Bonjour,
je souhaite récupérer le résultat des cases cochées (les cases provenant de ma base MySQL de façon dynamique) mais je ne récupère que la dernière case cochée sur le type d'événement : avez-vous une idée (simple...) ?
Merci de votre aide.

mes codes :

formulaire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<form method="post" action="rechercher_simple.php">
<fieldset>
<legend> &nbsp; Recherche simple dans l&rsquo;agenda &nbsp; </legend>
<?php
// début de la première requête sur le type d'événement
echo '<label>'.'Type d&rsquo; &eacute;v&eacute;nement &nbsp; : &nbsp; '.'</label>';
echo '<br />';
// connexion à la base
require("configuration.php");
$sql = connect_sql();
 
$affich_form = "SELECT * FROM type_ev" ;
$resultat = mysql_query($affich_form) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($resultat);
//On vérifie que la table contient quelque chose
if
(mysql_num_rows($resultat) == 0)
{
echo '<input name="evenement1" type="checkbox" value="Aucun">'.'</input>';
} // fin si rien dans la liste de type d'événement
else
{
while ( $list = mysql_fetch_array( $resultat ) )
{
echo '<input name="evenement1" type="checkbox" value="'.$list['Type_evenement'].'">'.$list['Type_evenement'].'</input>';
} // fin du while
} // fin du else
 
// fin de la première requête sur le type d'événement
 
echo '<br />';
 
// début de la troixième requête sur les jours
echo '<label>'.'Du &nbsp; : &nbsp; '.'</label>';
echo '<br />';
echo '<select name="date1" class="jj" tabindex="2" onfocus="this.className=\'jj_focus\';" onblur="this.className=\'jj\';">';
 
// affiche le jour actuel
$jour_vue=date('d');
echo '<option selected value="'.$jour_vue.'">'.$jour_vue.'</option>';
 
$affich_form3 = "SELECT * FROM jours" ;
$resultat3 = mysql_query($affich_form3) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($resultat3);
//On vérifie que la table contient quelque chose
if (mysql_num_rows($resultat3) == 0)
{
echo '<option>Aucun</option>';
} // fin si rien dans la liste
else
{
while ( $list = mysql_fetch_array( $resultat3 ) )
{
echo '<option value="'.$list['jour'].'">'.$list['jour'].'</option>';
} // fin du while
} // fin du else
echo '</select>';
// fin de la troixième requête sur les jours
 
// début de la quatrième requête sur les mois
mysql_query("SET NAMES utf8");
echo '<label>'.'</label>';
echo '<br />';
echo '<select name="date2" class="mm" tabindex="3" onfocus="this.className=\'mm_focus\';" onblur="this.className=\'mm\';">';
// DEBUT extraction du mois et de l'année du jour au format date MySQL  année  mois jour
$mois_jour=date('n');
$annee_jour=date('Y');
// on cherche dans la base des mois le numéro
$affich_form_mois = "SELECT Nb FROM mois2 WHERE num_mois='$mois_jour' AND annee='$annee_jour'" ;
$resultat_mois = mysql_query($affich_form_mois) or die ('Erreur : '.mysql_error() );
$list_mois = mysql_fetch_array( $resultat_mois );
$numero_mois = $list_mois['Nb']-1;
$affich_form4 = "SELECT * FROM mois2 LIMIT $numero_mois,7" ;
// FIN extraction du mois et de l'année du jour au format date MySQL  année  mois jour
 
$resultat4 = mysql_query($affich_form4) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($resultat4);
//On vérifie que la table contient quelque chose
if
(mysql_num_rows($resultat4) == 0)
{
echo '<option>Aucun</option>';
} // fin si rien dans la liste
else
{
while ( $list = mysql_fetch_array( $resultat4 ) )
{
echo '<option value="'.$list['Nb'].'">'.$list['mois'].'</option>';
} // fin du while
} // fin du else
echo '</select>';
// fin de la quatrième requête sur les mois
echo '<br />';
echo '<br />';
 
// début de la cinquième requête sur les jours
echo '<label>'.'Au &nbsp; : &nbsp; '.'</label>';
echo '<br />';
echo '<select name="date3" class="jj" tabindex="4" onfocus="this.className=\'jj_focus\';" onblur="this.className=\'jj\';">';
 
echo '<option selected value="'.$jour_vue.'">'.$jour_vue.'</option>';
 
$affich_form5 = "SELECT * FROM jours" ;
$resultat5 = mysql_query($affich_form5) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($resultat5);
//On vérifie que la table contient quelque chose
if
(mysql_num_rows($resultat5) == 0)
{
echo '<option>Aucun</option>';
} // fin si rien dans la liste
else
{
while ( $list = mysql_fetch_array( $resultat5 ) )
{
echo '<option value="'.$list['jour'].'">'.$list['jour'].'</option>';
} // fin du while
} // fin du else
echo '</select>';
// fin de la cinquième requête sur les jours
 
// début de la sixième requête sur les mois
echo '<label>'.'</label>';
echo '<br />';
echo '<select name="date4" class="mm" tabindex="5" onfocus="this.className=\'mm_focus\';" onblur="this.className=\'mm\';">';
 
// DEBUT extraction du mois et de l'année du jour au format date MySQL  année  mois jour
$mois_jour=date('n');
$annee_jour=date('Y');
// on cherche dans la base des mois le numéro
$affich_form_mois2 = "SELECT Nb FROM mois2 WHERE num_mois='$mois_jour' AND annee='$annee_jour'" ;
$resultat_mois2 = mysql_query($affich_form_mois2) or die ('Erreur : '.mysql_error() );
$list_mois2 = mysql_fetch_array( $resultat_mois2 );
$numero_mois2 = $list_mois2['Nb']-1;
$affich_form6 = "SELECT * FROM mois2 LIMIT $numero_mois2,7" ;
// FIN extraction du mois et de l'année du jour au format date MySQL  année  mois jour
 
$resultat6 = mysql_query($affich_form6) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($resultat6);
//On vérifie que la table contient quelque chose
if
(mysql_num_rows($resultat6) == 0)
{
echo '<option>Aucun</option>';
} // fin si rien dans la liste
else
{
while ( $list = mysql_fetch_array( $resultat6 ) )
{
echo '<option value="'.$list['Nb'].'">'.$list['mois'].'</option>';
} // fin du while
} // fin du else
echo '</select>';
// fin de la sixième requête sur les mois
echo '<br />';
echo '<br />';
?>
<br></br>
<p>
<input type="submit" value="Rechercher" class="ev" tabindex="6" onfocus="this.className='ev_focus';" onblur="this.className='ev';valide(this, 'err_mdp');" class="ev" />
<input type="reset" value="Effacer" class="ev" tabindex="7" onfocus="this.className='ev_focus';" onblur="this.className='ev';valide(this, 'err_mdp');" class="ev" />
</p>
</fieldset>
</form>
action du "submit" "rechercher_simple.php" :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php session_start();
require ("configuration.php"); //accès à la base de données
$sql = connect_sql();
$pseudo_membre = $_SESSION['pseudo'];
$requete = mysql_query("SELECT * FROM pdf_membre WHERE `pseudo`='$pseudo_membre'"); 
$result = mysql_fetch_array ($requete);
$id = $result['id'];
$pseudo = $result['pseudo'];
$mail = $result['mail'];
// si l'utilisateur est connecté, c'est le bandeau membre sinon c'est le bandeau classique...
if (!isset($_SESSION['pseudo']) || $_SESSION['pseudo']=='')
{	// bandeau classique si pas connecté
	$bandeau = 'bandeau.php';	}
else
{	// bandeau membre si connecté
	$bandeau = 'bandeau_membres.php';	}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
<title>MON SITE</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<?php include($bandeau); ?> <!-- insère le bandeau principal en haut en fonction de la connexion -->
<div id="mainContent">
<?php
// DEBUT on récupère l'année et le mois du formulaire de début
$num_mois_form_2=$_POST['date2'];
$affich_form_mois_2 = "SELECT num_mois FROM mois2 WHERE Nb='$num_mois_form_2'" ;
$resultat_mois_2 = mysql_query($affich_form_mois_2) or die ('Erreur : '.mysql_error() );
$list_mois_2 = mysql_fetch_array( $resultat_mois_2 );
$numero_mois_form_2 = $list_mois_2['num_mois'];
$affich_form_annee_2 = "SELECT annee FROM mois2 WHERE Nb='$num_mois_form_2'" ;
$resultat_annee_2 = mysql_query($affich_form_annee_2) or die ('Erreur : '.mysql_error() );
$list_annee_2 = mysql_fetch_array( $resultat_annee_2 );
$numero_annee_form_2 = $list_annee_2['annee'];
// FIN on récupère l'année et le mois du formulaire de début
 
// DEBUT on récupère l'année et le mois du formulaire de fin
$num_mois_form_4=$_POST['date4'];
$affich_form_mois_4 = "SELECT num_mois FROM mois2 WHERE Nb='$num_mois_form_4'" ;
$resultat_mois_4 = mysql_query($affich_form_mois_4) or die ('Erreur : '.mysql_error() );
$list_mois_4 = mysql_fetch_array( $resultat_mois_4 );
$numero_mois_form_4 = $list_mois_4['num_mois'];
$affich_form_annee_4 = "SELECT annee FROM mois2 WHERE Nb='$num_mois_form_4'" ;
$resultat_annee_4 = mysql_query($affich_form_annee_4) or die ('Erreur : '.mysql_error() );
$list_annee_4 = mysql_fetch_array( $resultat_annee_4 );
$numero_annee_form_4 = $list_annee_4['annee'];
// FIN on récupère l'année et le mois du formulaire de fin
 
// création de la date de départ au format date MySQL
$date_depart=$numero_annee_form_2.'-'.$numero_mois_form_2.'-'.$_POST['date1'];
// création de la date de fin au format date MySQL
$date_fin=$numero_annee_form_4.'-'.$numero_mois_form_4.'-'.$_POST['date3'];
//On remet les dates au format français
setlocale (LC_TIME, 'fr_FR.UTF8');
$date_vue_depart = strftime("%A %d %B %Y",strtotime("$date_depart"));
$date_vue_fin = strftime("%A %d %B %Y",strtotime("$date_fin"));
 
// Affichage de la date de départ et de fin en français et du type d'événement
echo '<p />';
echo '<br>'.'</br>';
echo '<b>'.$_POST['evenement1'].'</b>';
echo '<br>'.'</br>';
echo 'Du :  '.'<b>'.ucwords(strtolower($date_vue_depart)).'&nbsp;'.'&nbsp;'.'&nbsp;'.'</b>';
echo 'Au : '.'<b>'.ucwords(strtolower($date_vue_fin)).'</b>';
echo '<br>'.'</br>';
// connexion à la base
// require("configuration.php"); déjà connecté plus haut
$sql = connect_sql();
// on écrit la requête
mysql_query("SET NAMES utf8");
$select2 = "SELECT * FROM evenement WHERE date_ev BETWEEN '$date_depart' AND '$date_fin' 
AND type_evenement LIKE '".$_POST['evenement1']."' ORDER BY date_ev ASC";
$result = mysql_query($select2) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
//On vérifie que la table contient quelque chose
if
(mysql_num_rows($result) == 0)
{
echo '<p>'.'<b>'.'Aucun &eacute;v&eacute;nement ! '.'</b>'.'</p>'.'<br>'.'</br>';
echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente
}
//Si il y a des entrées	  
else
{
//On fait une boucle pour sortir toutes les entrées
while($affiche = mysql_fetch_array($result))
 {
//On remet la date au format français
setlocale (LC_TIME, 'fr_FR.UTF8');
$date_affiche = $affiche["date_ev"];
$date_vue = strftime("%A %d %B",strtotime("$date_affiche"));
 //On affiche les entrées sauf le type d'événement
echo '<br />';
echo "     ".$affiche["type_etab"]."   ";
echo '<b>'."     ".$date_vue."   ".'</b>';
echo "     ".$affiche["secteur"]."   ";
echo "Début à : ".$affiche["heure"]."   ";
echo "  Tarif : ".$affiche["tarif"]."   ";
echo " ".$affiche["montant"]."   ";
echo " où ? ".$affiche["lieu"]."   ";echo '<br />';
echo '<br />';
echo '<div class="autre">';
echo '<span style="color:#8E236B;">';
echo '<strong>';
echo $affiche["nom"];
echo '</strong>';
echo '</span>';
echo '<br />';
echo '<div class="cache">';
echo '<strong>';
echo $affiche["description"];
echo " mis en ligne par  ".$affiche["pseudo_ev"]."   ";
echo '</strong>';
echo '</div>';
echo '</div>';
echo '<br />';
echo '</p>';
}	//On ferme la boucle while
 echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente
}	//on ferme le else
// Fermeture de la connexion à la base de données
mysql_close();		
?>
</div>
<?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
</body>
</html>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 13h30   #2
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
j'ai du mal a me retrouver dans ton code, mais je remarque tout de suite que tu n'utilises pas une bonne méthode pour cocher ou sélectionner une checkbox ou un select.

Si mes souvenirs sont bons, pour une checkbox c'est :

<input ... checked="checked" />

pour un select

<option selected="selected" value="..." >default</option>

Donc corrige déjà ça
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 14h05   #3
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Désolé mais avec "checked" cela ne change rien, le résultat prend toujours le dernier type d'événement... et pas l'ensemble de ceux sélectionnés..
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 15h09   #4
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour,

dans ton code, je vois ca :

Code :
1
2
3
4
5
6
 
while ( $list = mysql_fetch_array( $resultat ) )
{
echo '<input name="evenement1" type="checkbox" value="'.$list['Type_evenement'].'">'.$list['Type_evenement'].'</input>';
} // fin du while
} // fin du else
est-ce normal que toutes tes checkbox portent le même name (ici "evenement1") ?
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 15h18   #5
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
@ anthony89 :

je dois récupérer dans mon "submit" la valeur des "evenement1" :
exemple : Conert, Théâtre...
qui sont issus de l'interrogation de ma base de données Mysql...
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 15h24   #6
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
pourrais-tu nous montrer le code HTML produit ?
merci.
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 15h34   #7
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour,

Il faut de toutes facons utiliser des name différents, autrement tu ne vas avoir que le dernier coché.
Le mieux est de faire un compteur dans ta boucle mysql_fetch_array et de nommer ton champs avec ce compteur.

exemple :

Code :
1
2
3
4
5
6
7
8
 
$compteur = 0;
while ( $list = mysql_fetch_array( $resultat ) )
{
echo '<input name="evenement1_".$compteur type="checkbox" value="'.$list['Type_evenement'].'">'.$list['Type_evenement'].'</input>';
$compteur ++;
} // fin du while
} // fin du else
Ensuite, dans ton script de traitement de formulaire, tu vérifie si le motif "evenement1_" est présent dans tes post avec la fonction preg_match

Code :
1
2
3
4
5
6
7
8
 
foreach($_POST AS $cle => $valeur)
{
    if(preg_match("/evenement1_"/i, $cle))
    {
        //ici ton traitement
    }
}
Est-ce que ca peut résoudre ton problème ?
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 15h36   #8
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Désolé,

je viens de m'apercevoir d'une erreur dans mon code :

Code :
1
2
3
4
5
6
7
8
 
$compteur = 0;
while ( $list = mysql_fetch_array( $resultat ) )
{
echo '<input name="evenement1_".$compteur type="checkbox" value="'.$list['Type_evenement'].'">'.$list['Type_evenement'].'</input>';
$compteur ++;
} // fin du while
} // fin du else
devient :

Code :
1
2
3
4
5
6
7
8
 
$compteur = 0;
while ( $list = mysql_fetch_array( $resultat ) )
{
echo '<input name="evenement1_'.$compteur.'" type="checkbox" value="'.$list['Type_evenement'].'">'.$list['Type_evenement'].'</input>';
$compteur ++;
} // fin du while
} // fin du else
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 17h35   #9
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
Juste utiliser un compteur n'apporte pas vraiment d’intérêt

Il est préférable d'utiliser les tableaux pour cela :

Code :
1
2
3
4
while ( $list = mysql_fetch_array( $resultat ) )
{
echo '<input name="evenements[]" type="checkbox" value="'.$list['Type_evenement'].'">'.$list['Type_evenement'].'</input>';
} // fin du while
Ce qui te renvoie coté php un tableau événements qui contient l'ensemble de tes cases cochées.
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 12h20   #10
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
@ Tolriq :

j'ai mis ceci dans mon formulaire :
Code :
1
2
3
4
 
while ( $list = mysql_fetch_array( $resultat ) )
{
echo '<input name="evenement1[]" type="checkbox" checked="checked" value="'.$list['Type_evenement'].'">'.$list['Type_evenement'].'</input>';
mais comment récupérer dans le traitement tous les types ?

résultat : il m'indique Array
merci.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
echo '<b>'.$_POST['evenement1'].'</b>';
echo '<br>'.'</br>';
echo 'Du :  '.'<b>'.ucwords(strtolower($date_vue_depart)).'&nbsp;'.'&nbsp;'.'&nbsp;'.'</b>';
echo 'Au : '.'<b>'.ucwords(strtolower($date_vue_fin)).'</b>';
echo '<br>'.'</br>';
// connexion à la base
// require("configuration.php"); déjà connecté plus haut
$sql = connect_sql();
// on écrit la requête
mysql_query("SET NAMES utf8");
$select2 = "SELECT * FROM evenement WHERE date_ev BETWEEN '$date_depart' AND '$date_fin' 
AND type_evenement LIKE '".$_POST['evenement1']."' ORDER BY date_ev ASC";
$result = mysql_query($select2) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 12h41   #11
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
Effectivement Tableau = Array

Il faut que tu fasse une boucle sur le tableau pour tout afficher et traiter.

Après si tu veut juste afficher tu peut utiliser un simple :

Code :
echo '<b>'.implode(' ',$_POST['evenement1']).'</b>';
Cependant ton select2 ne fonctionnera pas tu ne peut pas faire un where champ like value avec plusieurs valeurs différentes. Il y a des petits soucis de logique dans ton code

Une solution :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
if (is_array($_POST['evenement1']) && count($_POST['evenement1'])>0)
{
     foreach ($_POST['evenement1'] as &$Value) {
          $Value = mysql_real_escape_string($Value);
     }
     $Events = implode(',',$_POST['evenement1']);
     $select2 = "SELECT * FROM evenement WHERE date_ev BETWEEN '$date_depart' AND '$date_fin' AND type_evenement IN (".$Events.") ORDER BY date_ev ASC";
}
else
{
    $select2 =  "SELECT * FROM evenement WHERE date_ev BETWEEN '$date_depart' AND '$date_fin' ORDER BY date_ev ASC";
}
En partant du postulat que si rien n'est coché tu affiches tout ce qui n'est probablement pas ce que tu veux.

Dans l'esprit aussi si tes valeurs de type d'evenements sont exactement les valeurs possible de ton champs il faut utiliser = et pas LIKE pour être plus rapide et optimisé.
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 17h17   #12
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
@ Tolriq :

j'ai essayé ton code :
il m'affiche bien les types d'événements cochés

mais ... message d'erreur :
Erreur : Unknown column 'Concert' in 'where clause'
???
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 17h24   #13
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
Rajoute un print($select2) dans ton code pour voir la requête générée.

Pour avoir cette erreur il faudrait que les valeurs renvoyée contiennent des ` ce qui est étrange.
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 23h38   #14
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
Citation:
Envoyé par Tolriq Voir le message
Rajoute un print($select2) dans ton code pour voir la requête générée.

Pour avoir cette erreur il faudrait que les valeurs renvoyée contiennent des ` ce qui est étrange.
print_r()
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 06/09/2011, 08h29   #15
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
$select2 est une string aucun intérêt ou utilité a utiliser print_r
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 08h42   #16
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
oups pardon, je n'utilisant que echo je ne savait même pas que la fonction print() tout court existait
Excusez-moi
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 12h00   #17
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Message d'erreur avec le code modifié :
Code :
1
2
3
Concert Spectacle Théâtre Exposition Conférence Danse Lecture_Conte Animation Autre
Du : Vendredi 09 Septembre 2011   Au : Mercredi 09 Novembre 2011
SELECT * FROM evenement WHERE date_ev BETWEEN '2011-9-09' AND '2011-11-09' AND type_evenement IN (Concert,Spectacle,Théâtre,Exposition,Conférence,Danse,Lecture_Conte,Animation,Autre) ORDER BY date_ev ASCErreur : Unknown column 'Concert' in 'where clause'
Code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php session_start();
require ("configuration.php"); //accès à la base de données
$sql = connect_sql();
$pseudo_membre = $_SESSION['pseudo'];
$requete = mysql_query("SELECT * FROM pdf_membre WHERE `pseudo`='$pseudo_membre'"); 
$result = mysql_fetch_array ($requete);
$id = $result['id'];
$pseudo = $result['pseudo'];
$mail = $result['mail'];
// si l'utilisateur est connecté, c'est le bandeau membre sinon c'est le bandeau classique...
if (!isset($_SESSION['pseudo']) || $_SESSION['pseudo']=='')
{	// bandeau classique si pas connecté
	$bandeau = 'bandeau.php';	}
else
{	// bandeau membre si connecté
	$bandeau = 'bandeau_membres.php';	}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
<title>MON SITE</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<?php include($bandeau); ?> <!-- insère le bandeau principal en haut en fonction de la connexion -->
<div id="mainContent">
<?php
// DEBUT on récupère l'année et le mois du formulaire de début
$num_mois_form_2=$_POST['date2'];
$affich_form_mois_2 = "SELECT num_mois FROM mois2 WHERE Nb='$num_mois_form_2'" ;
$resultat_mois_2 = mysql_query($affich_form_mois_2) or die ('Erreur : '.mysql_error() );
$list_mois_2 = mysql_fetch_array( $resultat_mois_2 );
$numero_mois_form_2 = $list_mois_2['num_mois'];
$affich_form_annee_2 = "SELECT annee FROM mois2 WHERE Nb='$num_mois_form_2'" ;
$resultat_annee_2 = mysql_query($affich_form_annee_2) or die ('Erreur : '.mysql_error() );
$list_annee_2 = mysql_fetch_array( $resultat_annee_2 );
$numero_annee_form_2 = $list_annee_2['annee'];
// FIN on récupère l'année et le mois du formulaire de début
 
// DEBUT on récupère l'année et le mois du formulaire de fin
$num_mois_form_4=$_POST['date4'];
$affich_form_mois_4 = "SELECT num_mois FROM mois2 WHERE Nb='$num_mois_form_4'" ;
$resultat_mois_4 = mysql_query($affich_form_mois_4) or die ('Erreur : '.mysql_error() );
$list_mois_4 = mysql_fetch_array( $resultat_mois_4 );
$numero_mois_form_4 = $list_mois_4['num_mois'];
$affich_form_annee_4 = "SELECT annee FROM mois2 WHERE Nb='$num_mois_form_4'" ;
$resultat_annee_4 = mysql_query($affich_form_annee_4) or die ('Erreur : '.mysql_error() );
$list_annee_4 = mysql_fetch_array( $resultat_annee_4 );
$numero_annee_form_4 = $list_annee_4['annee'];
// FIN on récupère l'année et le mois du formulaire de fin
 
// création de la date de départ au format date MySQL
$date_depart=$numero_annee_form_2.'-'.$numero_mois_form_2.'-'.$_POST['date1'];
// création de la date de fin au format date MySQL
$date_fin=$numero_annee_form_4.'-'.$numero_mois_form_4.'-'.$_POST['date3'];
//On remet les dates au format français
setlocale (LC_TIME, 'fr_FR.UTF8');
$date_vue_depart = strftime("%A %d %B %Y",strtotime("$date_depart"));
$date_vue_fin = strftime("%A %d %B %Y",strtotime("$date_fin"));
 
// Affichage de la date de départ et de fin en français et du type d'événement
echo '<p />';
echo '<br>'.'</br>';
echo '<b>'.implode(' ',$_POST['evenement1']).'</b>';
echo '<br>'.'</br>';
echo 'Du :  '.'<b>'.ucwords(strtolower($date_vue_depart)).'&nbsp;'.'&nbsp;'.'&nbsp;'.'</b>';
echo 'Au : '.'<b>'.ucwords(strtolower($date_vue_fin)).'</b>';
echo '<br>'.'</br>';
// connexion à la base
// require("configuration.php"); déjà connecté plus haut
$sql = connect_sql();
// on écrit la requête
mysql_query("SET NAMES utf8");
 
if (is_array($_POST['evenement1']) && count($_POST['evenement1'])>0)
{
     foreach ($_POST['evenement1'] as &$Value) 
     {
		$Value = mysql_real_escape_string($Value);
     }
     $Events = implode(',',$_POST['evenement1']);
     $select2 = "SELECT * FROM evenement WHERE date_ev BETWEEN '$date_depart' AND '$date_fin' AND type_evenement IN (".$Events.") ORDER BY date_ev ASC";
	 print($select2); 
}
else
{
		$select2 =  "";
		print($select2);
}
 
$result = mysql_query($select2) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
//On vérifie que la table contient quelque chose
if
(mysql_num_rows($result) == 0)
{
echo '<p>'.'<b>'.'Aucun &eacute;v&eacute;nement ! '.'</b>'.'</p>'.'<br>'.'</br>';
echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente
print($select2); 
}
//Si il y a des entrées	  
else
{
//On fait une boucle pour sortir toutes les entrées
while($affiche = mysql_fetch_array($result))
 {
 print($select2);
//On remet la date au format français
setlocale (LC_TIME, 'fr_FR.UTF8');
$date_affiche = $affiche["date_ev"];
$date_vue = strftime("%A %d %B",strtotime("$date_affiche"));
 //On affiche les entrées sauf le type d'événement
echo '<br />';
echo "     ".$affiche["type_etab"]."   ";
echo '<b>'."     ".$date_vue."   ".'</b>';
echo "     ".$affiche["secteur"]."   ";
echo "Début à : ".$affiche["heure"]."   ";
echo "  Tarif : ".$affiche["tarif"]."   ";
echo " ".$affiche["montant"]."   ";
echo " où ? ".$affiche["lieu"]."   ";echo '<br />';
echo '<br />';
echo '<div class="autre">';
echo '<span style="color:#8E236B;">';
echo '<strong>';
echo $affiche["nom"];
echo '</strong>';
echo '</span>';
echo '<br />';
echo '<div class="cache">';
echo '<strong>';
echo $affiche["description"];
echo " mis en ligne par  ".$affiche["pseudo_ev"]."   ";
echo '</strong>';
echo '</div>';
echo '</div>';
echo '<br />';
echo '</p>';
}	//On ferme la boucle while
 echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente
}	//on ferme le else
// Fermeture de la connexion à la base de données
mysql_close();		
?>
</div>
<?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
</body>
</html>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 16h11   #18
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
Hum il semble que mon astuce de la boucle d'escape ne fonctionne pas correctement directement avec un post qui est peut etre en lecture seule.

Tu peut changer :

Code :
1
2
3
4
5
     foreach ($_POST['evenement1'] as &$Value) 
     {
		$Value = mysql_real_escape_string($Value);
     }
     $Events = implode(',',$_POST['evenement1']);
Par

Code :
     $Events = "'".implode("','",$_POST['evenement1'])."'";
C'est moins propre mais tout autant efficace.
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 21h36   #19
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Merci Tolriq
ça fonctionne à merveille

code modifié :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?php session_start();
require ("configuration.php"); //accès à la base de données
$sql = connect_sql();
$pseudo_membre = $_SESSION['pseudo'];
$requete = mysql_query("SELECT * FROM pdf_membre WHERE `pseudo`='$pseudo_membre'"); 
$result = mysql_fetch_array ($requete);
$id = $result['id'];
$pseudo = $result['pseudo'];
$mail = $result['mail'];
// si l'utilisateur est connecté, c'est le bandeau membre sinon c'est le bandeau classique...
if (!isset($_SESSION['pseudo']) || $_SESSION['pseudo']=='')
{	// bandeau classique si pas connecté
	$bandeau = 'bandeau.php';	}
else
{	// bandeau membre si connecté
	$bandeau = 'bandeau_membres.php';	}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
<title>MON SITE</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<?php include($bandeau); ?> <!-- insère le bandeau principal en haut en fonction de la connexion -->
<div id="mainContent">
<?php
// DEBUT on récupère l'année et le mois du formulaire de début
$num_mois_form_2=$_POST['date2'];
$affich_form_mois_2 = "SELECT num_mois FROM mois2 WHERE Nb='$num_mois_form_2'" ;
$resultat_mois_2 = mysql_query($affich_form_mois_2) or die ('Erreur : '.mysql_error() );
$list_mois_2 = mysql_fetch_array( $resultat_mois_2 );
$numero_mois_form_2 = $list_mois_2['num_mois'];
$affich_form_annee_2 = "SELECT annee FROM mois2 WHERE Nb='$num_mois_form_2'" ;
$resultat_annee_2 = mysql_query($affich_form_annee_2) or die ('Erreur : '.mysql_error() );
$list_annee_2 = mysql_fetch_array( $resultat_annee_2 );
$numero_annee_form_2 = $list_annee_2['annee'];
// FIN on récupère l'année et le mois du formulaire de début
 
// DEBUT on récupère l'année et le mois du formulaire de fin
$num_mois_form_4=$_POST['date4'];
$affich_form_mois_4 = "SELECT num_mois FROM mois2 WHERE Nb='$num_mois_form_4'" ;
$resultat_mois_4 = mysql_query($affich_form_mois_4) or die ('Erreur : '.mysql_error() );
$list_mois_4 = mysql_fetch_array( $resultat_mois_4 );
$numero_mois_form_4 = $list_mois_4['num_mois'];
$affich_form_annee_4 = "SELECT annee FROM mois2 WHERE Nb='$num_mois_form_4'" ;
$resultat_annee_4 = mysql_query($affich_form_annee_4) or die ('Erreur : '.mysql_error() );
$list_annee_4 = mysql_fetch_array( $resultat_annee_4 );
$numero_annee_form_4 = $list_annee_4['annee'];
// FIN on récupère l'année et le mois du formulaire de fin
 
// création de la date de départ au format date MySQL
$date_depart=$numero_annee_form_2.'-'.$numero_mois_form_2.'-'.$_POST['date1'];
// création de la date de fin au format date MySQL
$date_fin=$numero_annee_form_4.'-'.$numero_mois_form_4.'-'.$_POST['date3'];
//On remet les dates au format français
setlocale (LC_TIME, 'fr_FR.UTF8');
$date_vue_depart = strftime("%A %d %B %Y",strtotime("$date_depart"));
$date_vue_fin = strftime("%A %d %B %Y",strtotime("$date_fin"));
 
// Affichage de la date de départ et de fin en français et du type d'événement
echo '<p />';
echo '<br>'.'</br>';
echo '<b>'.implode(' ',$_POST['evenement1']).'</b>';
echo '<br>'.'</br>';
echo 'Du :  '.'<b>'.ucwords(strtolower($date_vue_depart)).'&nbsp;'.'&nbsp;'.'&nbsp;'.'</b>';
echo 'Au : '.'<b>'.ucwords(strtolower($date_vue_fin)).'</b>';
echo '<br>'.'</br>';
// connexion à la base
// require("configuration.php"); déjà connecté plus haut
$sql = connect_sql();
// on écrit la requête
mysql_query("SET NAMES utf8");
 
if (is_array($_POST['evenement1']) && count($_POST['evenement1'])>0)
{
     $Events = "'".implode("','",$_POST['evenement1'])."'";
     $select2 = "SELECT * FROM evenement WHERE date_ev BETWEEN '$date_depart' AND '$date_fin' AND type_evenement IN (".$Events.") ORDER BY date_ev ASC";
	 print($select2); 
}
else
{
		$select2 =  "";
		print($select2);
}
 
$result = mysql_query($select2) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
//On vérifie que la table contient quelque chose
if
(mysql_num_rows($result) == 0)
{
echo '<p>'.'<b>'.'Aucun &eacute;v&eacute;nement ! '.'</b>'.'</p>'.'<br>'.'</br>';
echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente
print($select2); 
}
//Si il y a des entrées	  
else
{
//On fait une boucle pour sortir toutes les entrées
while($affiche = mysql_fetch_array($result))
 {
 print($select2);
//On remet la date au format français
setlocale (LC_TIME, 'fr_FR.UTF8');
$date_affiche = $affiche["date_ev"];
$date_vue = strftime("%A %d %B",strtotime("$date_affiche"));
 //On affiche les entrées sauf le type d'événement
echo '<br />';
echo "     ".$affiche["type_etab"]."   ";
echo '<b>'."     ".$date_vue."   ".'</b>';
echo "     ".$affiche["secteur"]."   ";
echo "Début à : ".$affiche["heure"]."   ";
echo "  Tarif : ".$affiche["tarif"]."   ";
echo " ".$affiche["montant"]."   ";
echo " où ? ".$affiche["lieu"]."   ";echo '<br />';
echo '<br />';
echo '<div class="autre">';
echo '<span style="color:#8E236B;">';
echo '<strong>';
echo $affiche["nom"];
echo '</strong>';
echo '</span>';
echo '<br />';
echo '<div class="cache">';
echo '<strong>';
echo $affiche["description"];
echo " mis en ligne par  ".$affiche["pseudo_ev"]."   ";
echo '</strong>';
echo '</div>';
echo '</div>';
echo '<br />';
echo '</p>';
}	//On ferme la boucle while
 echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente
}	//on ferme le else
// Fermeture de la connexion à la base de données
mysql_close();		
?>
</div>
<?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
</body>
</html>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h41.


 
 
 
 
Partenaires

Hébergement Web