IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Afficher tableau en fonction de semaine/jour [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut Afficher tableau en fonction de semaine/jour
    Bonjour, j'aimerais avoir vos aides et conseils.

    J'ai un tableau dans lequel je laisse la possibilité d'afficher toutes les lignes ou seulement les lignes d'une date si elle est sélectionnée.
    (image ci-dessous)


    Mais au lieu de d'avoir un choix par date je préférerais avoir d’abord un choix par semaine(de s01 à s52) puis par jour(lundi, mardi etc)
    (image bidouillé ci-dessous)


    Pour l'instant mon code c'est ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php
    	$sql = " SELECT distinct(DateDuJour) FROM ordredefabrication ";
    	$result = mysql_query($sql) or die("erreur requete");				
    	// < SELECT DATE OFS ET TOUS LES OFS
    	echo "<table border='0' cellpadding='0' cellspacing='0' style='border-collapse:collapse;'>
    		  <tr>
    			<td>
    				<form action='' method='POST'>
    				Affiner recherche par Date: 
    				<select name='ChoixDate'>"; 
    					while ($row=mysql_fetch_array($result))
    					{
    						echo"<option>$row[0]</option>";
    					}
    					echo"</select>";
    					echo "&nbsp;&nbsp;<input type='submit' name='TabDate' value='Ok'/>";
    					echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='submit' name='TousLesOfs' value='Voir tous les ofs'/>
    				</form>
    			</td>
    		  <td>";
    		if(isset($_POST['TabDate'])) // si un clic a été fait sur le bouton submit (Ok)
    		{
    			$ChoixDate=$_POST['ChoixDate'];
    			echo "Les Ofs de ";
    			echo '<strong>';
    			echo $ChoixDate;
    			echo '</strong> :';
    			// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
    			//récupère tous les enregistrements
    			$select = "SELECT NumOf, DateDuJour, DateDebutFab, Ref, Essences, Clients, Chantiers, SemaineFinFab, Types, Temps, 
    					NomPoseurs, Dep, Ville FROM ordredefabrication where DateDuJour= '$ChoixDate'";
    			$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    			$total = mysql_num_rows($result);
    			if($total) // si on a récupéré un résultat on l'affiche.
    			{	
    					// debut du tableau
    				echo '<table bgcolor="#FFFFFF"  border="0" cellpadding="1" cellspacing="0" style="border-spacing: 1.74px;">'."\n";
    				echo '<tr>';
    				echo '<td bgcolor="#005AA9" height="50px">N°</td>';
    				echo '<td bgcolor="#005AA9">Date<br>lancement.Fab</td>';
    				echo '<td bgcolor="#005AA9">Ref</td>';
    				echo '<td bgcolor="#005AA9">Essences</td>';
    				echo '<td bgcolor="#005AA9">Clients</td>';
    				echo '<td bgcolor="#005AA9">Chantiers</td>' ;
    				echo '<td bgcolor="#005AA9">Semaine<br>de conf</td>' ;
    				echo '<td bgcolor="#005AA9">Types</td>' ;
    				echo '<td bgcolor="#005AA9">Temps</td>' ;
    				echo '<td bgcolor="#005AA9">Nom Poseur</td>' ;
    				echo '<td bgcolor="#005AA9">Dep</td>' ;
    				echo '<td bgcolor="#005AA9">Ville</td>' ;
    				echo '</tr>'."\n";
    				$i = 0;
    				while($row = mysql_fetch_array($result)) 
    				{
    					$color = ++$i % 2 ? '#CCCCCC' : '#FFFFFF';		
    					echo '<tr>';
    					echo '<td bgcolor='.$color.'>'.$row["NumOf"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["DateDebutFab"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Ref"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Essences"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Clients"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Chantiers"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["SemaineFinFab"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Types"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Temps"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["NomPoseurs"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Dep"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Ville"].'</td>';
    					echo '</tr>'."\n";
    				}
    				echo '</table>'."\n";
    				// fin du tableau.
    			}
    				// on libère le résultat
    				mysql_free_result($result);
    		}
    		// ----------------------------------------------------------------
    		// SEPARATION // AU DESSUS DATE SPECIFIE // EN DESSOUS TOUS LES OFS
    		// ----------------------------------------------------------------
    		else
    		{
    			$select = 'SELECT NumOf, DateDuJour, DateDebutFab, Ref, Essences, Clients, Chantiers, SemaineFinFab,Temps, NomPoseurs, Dep, Ville FROM ordredefabrication';
    			$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    			$total = mysql_num_rows($result);
    			if($total) // si on a récupéré un résultat on l'affiche.
    			{
    				echo "Tous les Ofs:";
    				// debut du tableau
    				echo '<table bgcolor="#FFFFFF" border="0" cellpadding="1" cellspacing="0" style="border-spacing: 1.74px;">'."\n"; // border-collapse:collapse;
    				echo '<tr>';
    				echo '<td bgcolor="#005AA9" height="50px">n°</td>';
    				echo '<td bgcolor="#005AA9">Date Du Jour</td>';
    				echo '<td bgcolor="#005AA9">Date<br>lancement.Fab</td>';
    				echo '<td bgcolor="#005AA9">Ref</td>';
    				echo '<td bgcolor="#005AA9">Essences</td>';
    				echo '<td bgcolor="#005AA9">Clients</td>';
    				echo '<td bgcolor="#005AA9">Chantiers</td>';
    				echo '<td bgcolor="#005AA9">Semaine<br>de conf</td>';
    				echo '<td bgcolor="#005AA9">Temps</td>';
    				echo '<td bgcolor="#005AA9">Nom Poseur</td>';
    				echo '<td bgcolor="#005AA9">Dep</td>';
    				echo '<td bgcolor="#005AA9">Ville</td>';
    				echo '</tr>'."\n";
    				$i = 0;		
    				while($row = mysql_fetch_array($result)) 
    				{
    					$color = ++$i % 2 ? '#CCCCCC' : '#FFFFFF';	
    					echo '<tr>';
    					echo '<td bgcolor='.$color.'>'.$row["NumOf"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["DateDuJour"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["DateDebutFab"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Ref"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Essences"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Clients"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Chantiers"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["SemaineFinFab"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Temps"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["NomPoseurs"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Dep"].'</td>';
    					echo '<td bgcolor='.$color.'>'.$row["Ville"].'</td>';
    					echo '</td></tr>'."\n";
    				}
    				echo '</table>'."\n";
    			}	
    			else echo 'Pas d\'enregistrements dans cette table...';
    			// on libère le résultat
    			mysql_free_result($result);
    		}
    		echo "</td>
    		<td>";
    J'ai trouver ce code pour afficher les semaines:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE_FORMAT(DateDuJour,'%v')
    Mais j'avoue que je suis un peu perdu.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu n'es pas si perdu que ça.
    Pour la semaine par exemple, tu fais ta liste déroulante de 1 à 53 et ta requête devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $select = "SELECT NumOf, DateDuJour, DateDebutFab, Ref, Essences, Clients, Chantiers, SemaineFinFab, Types, Temps, 
    					NomPoseurs, Dep, Ville FROM ordredefabrication where DATE_FORMAT(DateDuJour,'%v')=" . intval($ChoixDate);
    Pense à gérer l'année aussi.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut
    Merci pour avoir résolu cette partie du problème !

    Pour la liste déroulante où je souhaite mettre le jour de la semaine, je ne trouve pas de comment mettre le jour en français, il y a t-il un moyen simple ?

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Le plus simple c'est un peu de cuisine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    $days_fr = array(1 => 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche');
    $date    = new DateTime();              // aujourd'hui par défaut
    $d       = $days[$date->format('N')];   // aujourd'hui = lundi
     
    ?>
    Sinon, il te reste la libraire d'internationalisation par excellence ICU

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Oui et donc pour le moins simple c'est ici

    ce qui peut donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $date = new DateTime();
    $french_date = new IntlDateFormatter('fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::NONE);
    echo $french_date->format($date);
    Juste le pb c'est que parfois la lib n'est pas installée par défaut notamment dans easyphp. Comme j'ai déjà eu ce pb pour faire des tests en local voici la marche à suivre si cela ne fonctionne pas :

    1/ activer "extension=php_intl.dll" (en supprimant l'éventuel ";") dans php ini

    2/ se rendre dans le dossier "php" du serveur EasyPHP-12.0 et copier les fichiers "icudt46.dll", "icuin46.dll" et "icuuc46.dll" et les coller dans le dossier "apache/bin"

    Suivant les cas il faut faire le 2/ avant le 1/ pour pouvoir enregistrer le php.ini modifié.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/03/2009, 10h32
  2. [Dates] fonction vérifiant le jour de la semaine
    Par Flynt dans le forum Langage
    Réponses: 2
    Dernier message: 28/03/2008, 16h04
  3. Afficher un exemple dans un tableau en fonction d'un champs de formulaire
    Par kilian67 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 12/03/2008, 14h24
  4. [mise à jour tableau en fonction du button radio]
    Par Lady_jade dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 30/12/2005, 11h41
  5. fonction pour le jour de la semaine
    Par savoir dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/06/2005, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo