Fonction explode
techinfo46
Messages postés
432
Statut
Membre
-
ReDLoG -
ReDLoG -
Bonjour, voila j'ai un petit souci j'ai des dates dans ma base sql sous ce format:
JJ/MM/AAAA
Donc la j'utilise la fonction explode pour isolé l'année.
Mon souci et quand quand je fait cela il me sort deux résultat 20122013
j'aurai voulu savoir comment les séparés.
voici mon code:
ma requête:
$alertedate = "SELECT * FROM BAIL WHERE DATEFINCONTRAT ";
$result = mysql_query($alertedate) or die (mysql_error()."<br />$alertedate");
while($row = mysql_fetch_array($result)) {
$i = explode ("/", $row["DATEFINCONTRAT"]);
$i[0](m'affiche 2816)
$i[1](m'affiche aussi les deux dates 0204)
$i[2] (mafiche donc 20122013) et sa sur tout mes variables
Pour info:
//echo 'Jours ';
//echo $i[0];
//echo 'Mois ';
//echo $i[1];
//echo 'Année';
//echo $i[2];
Merci à tous
JJ/MM/AAAA
Donc la j'utilise la fonction explode pour isolé l'année.
Mon souci et quand quand je fait cela il me sort deux résultat 20122013
j'aurai voulu savoir comment les séparés.
voici mon code:
ma requête:
$alertedate = "SELECT * FROM BAIL WHERE DATEFINCONTRAT ";
$result = mysql_query($alertedate) or die (mysql_error()."<br />$alertedate");
while($row = mysql_fetch_array($result)) {
$i = explode ("/", $row["DATEFINCONTRAT"]);
$i[0](m'affiche 2816)
$i[1](m'affiche aussi les deux dates 0204)
$i[2] (mafiche donc 20122013) et sa sur tout mes variables
Pour info:
//echo 'Jours ';
//echo $i[0];
//echo 'Mois ';
//echo $i[1];
//echo 'Année';
//echo $i[2];
Merci à tous
A voir également:
- Fonction explode
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
2 réponses
Comportement normal, ne sois pas surpris !
Tu as en fait deux dates dans la table :
- 28/02/2012
- 16/04/2013
Comme tu fais une boucle while, le script concatène automatiquement les résultats après utilisation de la fonction explode. Donc si tu veux avoir des résultats séparés (enfin si c'est que j'ai cru bien comprendre de ton message) alors il faut modifier le script comme ceci :
Tu as en fait deux dates dans la table :
- 28/02/2012
- 16/04/2013
Comme tu fais une boucle while, le script concatène automatiquement les résultats après utilisation de la fonction explode. Donc si tu veux avoir des résultats séparés (enfin si c'est que j'ai cru bien comprendre de ton message) alors il faut modifier le script comme ceci :
<?php
$alertedate = "SELECT * FROM BAIL WHERE DATEFINCONTRAT";
$result = mysql_query($alertedate) or die (mysql_error()."<br />$alertedate");
while($row = mysql_fetch_array($result)) {
$i = explode ("/", $row["DATEFINCONTRAT"]);
echo '<p>Jours '.$i[0].'<br />';
echo 'Mois '.$i[1].'<br />';
echo 'Année '.$i[2].'</p>';
// Va afficher :
// Jours 28
// Mois 02
// Année 2012
// Jours 16
// Mois 04
// Année 2013
}
?>
Bonjour et merci de ta réponde, j'aurai du poster la suite de mon code pour que tu te rende compte pour la suite de ce que vouler faire.
Donc voici la suite de mon code:
$tan=($i[2] - date("Y"));
if ($tan = 0){
$tmois= $i[1] - (date("m") + 3);
if ($tmois <= 0 ){
echo $tmois;
$alerte = "SELECT * FROM BAIL WHERE 1";
$resultalerte = mysql_query($alerte) or die (mysql_error()."<br />$alerte");
while ($row = mysql_fetch_array($resultalerte)){
echo "<b><center>Liste des baux M-3 </center></b>" ;
echo '<center><table bgcolor="#000000"></center>'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#FFFFFF"><b><u>ENTITE</u></b></td>';
echo '<td bgcolor="#FFFFFF"><b><u>DATE DE FIN </u></b></td>';
echo '<td bgcolor="#FFFFFF"><b><u>PRENEUR</u></b></td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td bgcolor="#99FF00">'.$row["ENTITE"].'</td>';
echo '<td bgcolor="#99FF00">'.$row["DATEFINCONTRAT"].'</td>';
echo '<td bgcolor="#99FF00">'.$row["PRENEUR"].'</td>';
echo '</tr>'."\n";
echo '</table><br><br>';
};
};
};
les echos que j'avais mis en commentaire été juste pour vérifie rle bon fonctionnement
Donc voici la suite de mon code:
$tan=($i[2] - date("Y"));
if ($tan = 0){
$tmois= $i[1] - (date("m") + 3);
if ($tmois <= 0 ){
echo $tmois;
$alerte = "SELECT * FROM BAIL WHERE 1";
$resultalerte = mysql_query($alerte) or die (mysql_error()."<br />$alerte");
while ($row = mysql_fetch_array($resultalerte)){
echo "<b><center>Liste des baux M-3 </center></b>" ;
echo '<center><table bgcolor="#000000"></center>'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#FFFFFF"><b><u>ENTITE</u></b></td>';
echo '<td bgcolor="#FFFFFF"><b><u>DATE DE FIN </u></b></td>';
echo '<td bgcolor="#FFFFFF"><b><u>PRENEUR</u></b></td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td bgcolor="#99FF00">'.$row["ENTITE"].'</td>';
echo '<td bgcolor="#99FF00">'.$row["DATEFINCONTRAT"].'</td>';
echo '<td bgcolor="#99FF00">'.$row["PRENEUR"].'</td>';
echo '</tr>'."\n";
echo '</table><br><br>';
};
};
};
les echos que j'avais mis en commentaire été juste pour vérifie rle bon fonctionnement
j'ai l'impression que ton code est identique au sien hormis un } à la fin :/
Son code :
Ce qui va afficher :
Note : les espaces visibles et ceux manquants sont volontaires car cela vient de la syntaxe utilisée dans son script.
Mon code va afficher :
Jours 28
Mois 02
Année 2012
Jours 16
Mois 04
Année 2013
Ce qui est une solution nettement plus lisible! J'avais émis une remarque si tu as bien lu mon message :
(enfin si c'est que j'ai cru bien comprendre de ton message)
et cette remarque concernait la présentation de l'affichage des données...