Ajouter un espace par rapport à des datas différents

ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012 - 28 avril 2011 à 23:32
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 5 mai 2011 à 08:43
Bonjour les z'amis(ies),

je viens vers vous car je bloque sur une bétise...seulement voilà, je ne trouve pas le code nécessaire à l'affichage de mon select.
En fait, dans le bout de code ci-dessous, je désirerais insérer un ligne vide à l'affichage du résultat dès que la date_formation change.
J'ai fait un order by pour le tri mais le résultat est trop condensé.Il manque une séparation.
Avez-vous une idée, solution, un conseil ?
Merci pour votre aide.

if ($_REQUEST['date_formation'] != "")



// Si le test est ok insertion des datas dans la DB
mysql_query("INSERT INTO lips4 (date_encodage,
date_formation,
nom_users,
service_users,
tel_users,
email_users,
nom_users_other,
prenom_users_other,
department_users_other,
tel_users_other,
site_users_other,
email_users_other
)
VALUES('$date_encodage',
'$date_formation',
'$nom_users',
'$service_users',
'$tel_users',
'$email_users',
'$nom_users_other',
'$prenom_users_other',
'$department_users_other',
'$tel_users_other',
'$site_users_other',
'$email_users_other'
)");

// Select pour preparer l affichage du contenude la DB
$result=mysql_query("SELECT * FROM lips4 order by date_formation DESC");
$i=0;
$lastName='';
while( $row=mysql_fetch_array($result) )
{
if($i>0)
if($lips4['date_formation'] != $lastName)
echo '<tr><td colspan="7">-
</td></tr>';
{
echo "<tr valign=bottom>";
echo "<td bgcolor=#3333CC background='./images/strichel.gif' colspan=6 width=1 height=1></td>";
echo "</tr>";
}
echo "<tr height=20 valign=center>";
echo "<td align=center> ".$row['date_formation']."</td>";
echo "<td align=center> ".$row['nom_users']." ".$row['nom_users_other']." ".$row['prenom_users_other']."</td>";
echo "<td align=center> ".$row['tel_users']." ".$row['tel_users_other']."</td>";
echo "<td align=center> ".$row['service_users']." ".$row['department_users_other']."</td>";
echo "<td align=center> ".$row['site_users']."".$row['site_users_other']." </td>";
echo "<td class=tabval></td>";
echo "</tr>";
$i++;
}
?>

8 réponses

cs_mdc888 Messages postés 24 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 3 janvier 2012
29 avril 2011 à 09:37
Lapin compris !
Tu veux, à l'affichage via un select, faire un affichage différent selon que date_formation à été changé ?
0
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
29 avril 2011 à 10:50
Bonjour mdc888,

exact j'aimerais que l'affichage regroupe les dates_formation ( ça c'est fait avec mon order by ) et place une ligne vide ou autre afin que l'affichage soit différent d'un groupe de date à l'autre.
J'ai essayé de mettre un Tiret mais sans succès.

Merci pour ton aide.
Je cherche encore mais....
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
29 avril 2011 à 11:14
Salut,

avant ton while il faut définir une variable date correspondantae à la date courante (ex. : currentDate), et initialisée à une valeur par défaut (ex. : 01/01/1900). Dans ton while tu regardes :
si (currendDate defaultDate) alors currentDate $row[date]
si (currentDate != $row['date_formation']) alors {
j'insère une ligne vide
je set currentDate = $row[date]
} sinon {
j'affiche ma donnée $row[*]
}
0
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
29 avril 2011 à 21:57
Hello,

je suis un peu perdu par rapport à cette réponse. Débutant oblige
Je ne sais pas trop comment appliquer le code décrit ci-dessus.


// Select pour preparer l affichage du contenude la DB
$result=mysql_query("SELECT * FROM lips4 order by date_formation DESC");
$i=0;
$defaultdate='2011-04-01
while( $row=mysql_fetch_array($result) )
{
if($i>0)
if (currendDate defaultDate) alors currentDate $row[date]
if (currentDate != $row['date_formation']) alors {
j'insère une ligne vide
je set currentDate = $row[date]
} sinon {
j'affiche ma donnée $row[*]
}

{
echo "<tr valign=bottom>";
echo "<td bgcolor=#3333CC background='./images/strichel.gif' colspan=6 width=1 height=1></td>";
echo "</tr>";
}
echo "<tr height=20 valign=center>";
echo "<td align=center> ".$row['date_formation']."</td>";
echo "<td align=center> ".$row['nom_users']." ".$row['nom_users_other']." ".$row['prenom_users_other']."</td>";
echo "<td align=center> ".$row['tel_users']." ".$row['tel_users_other']."</td>";
echo "<td align=center> ".$row['service_users']." ".$row['department_users_other']."</td>";
echo "<td align=center> ".$row['site_users']."".$row['site_users_other']." </td>";
echo "<td class=tabval></td>";
echo "</tr>";
$i++;
}


Désolé, je ne sais pas comment écrire le code car j'ai déjà une condition si dans ma boucle while. Je pige pas.
Merci pour votre aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
30 avril 2011 à 15:55
Bonjour à tous,

qui peut m'aider à insérer le code qui m'a été transmis en rouge ?
Je ne pige pas comment je dois réellemnt l'écrire.

Un grand merci à la bonne âme qui solutionnera mon problème.

A bientôt
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
2 mai 2011 à 15:38
Re,

au cas où tu l'aurais pas remarqué il s'agissait de pseudo-code dans ma précédente réponse. Tu peux pas le copier tel quel et espérer que ça fonctionne comme par magie ;)

Voilà à quoi ça pourrait ressembler :

<?php
$result=mysql_query("SELECT * FROM lips4 order by date_formation DESC"); 
$i=0; 
$lastName=''; 
$currentDate = '1900-01-01';
while( $row=mysql_fetch_array($result) ) { 
if ($currendDate == '1900-01-01')
$currentDate = $row['date_formation'] ;
if ($currentDate != $row['date_formation']) { 
// j'insère une ligne vide (à compléter par tes soins)
echo "<tr><td>...";
$currentDate = $row['date_formation']
}
// j'insère la ligne en cours (à compléter par tes soins)
echo "<tr><td>...";
}
?>


A noter que j'y connais pas grand chose en PHP, il y aura donc ptèt quelques soucis dans ce code, notamment au niveau du typage des dates.
0
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
4 mai 2011 à 22:53
Bonjour à tous,

après avoir essayé le code qui m'a été transmis par jopop, je n'obtiens aucun résultat.

voici son formatage.
// Select pour preparer l affichage du contenude la DB
$result=mysql_query("SELECT * FROM lips4 order by date_formation DESC");
$i=0;
while( $row=mysql_fetch_array($result) )
{

if($i>0)
{
echo "<tr valign=bottom>";
echo "<td bgcolor=#3333CC background='./images/strichel.gif' colspan=6 width=1 height=1></td>";
echo "</tr>";
}
echo "<tr height=20 valign=center>";
echo "<td align=center> ".$row['date_formation']."</td>";
echo "<td align=center> ".$row['nom_users']." ".$row['nom_users_other']." ".$row['prenom_users_other']."</td>";
echo "<td align=center> ".$row['tel_users']." ".$row['tel_users_other']."</td>";
echo "<td align=center> ".$row['service_users']." ".$row['department_users_other']."</td>";
echo "<td align=center> ".$row['site_users']."".$row['site_users_other']." </td>";
echo "<td class=tabval></td>";
echo "</tr>";
$i++;

if ($currendDate == '1900-01-01')
$currentDate = $row['date_formation'] ;
if ($currentDate != $row['date_formation'])
{
echo "</tr>";
}
}
?>

Que dois-je adapter pour que l'espace fonctionne entre les ranges des dates de formation.

Merci pour votre aide
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
5 mai 2011 à 08:43
Tu dois réfléchir avant de faire tes copier/coller, je peux plus t'aider là ...
0
Rejoignez-nous