Fonction explode

Fermé
techinfo46 Messages postés 383 Date d'inscription jeudi 23 décembre 2010 Statut Membre Dernière intervention 20 avril 2020 - 30 avril 2012 à 18:37
 ReDLoG - 2 mai 2012 à 20:57
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

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 :
<?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

}
?>
0
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
2 mai 2012 à 10:36
salut, j'ai une petite question :)

j'ai l'impression que ton code est identique au sien hormis un } à la fin :/
0
techinfo46 Messages postés 383 Date d'inscription jeudi 23 décembre 2010 Statut Membre Dernière intervention 20 avril 2020 55
2 mai 2012 à 16:31
Bonjour Vordano , tu à pas une idée ?
0
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
2 mai 2012 à 16:48
ben pour moi vos codes sont tous pareil et tout a fait juste ^^' (après j'ai ptete raté un détail...)
0
@vordano
Son code :
//echo 'Jours ';
echo $i[0]; 
echo 'Mois ';
echo $i[1];
echo 'Année';
echo $i[2];

Ce qui va afficher :
Jours 28Mois 02Année 2012Jours 16Mois 04Année 2013

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...
0
techinfo46 Messages postés 383 Date d'inscription jeudi 23 décembre 2010 Statut Membre Dernière intervention 20 avril 2020 55
2 mai 2012 à 09:59
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
0