pb de convertion date dans une boucle

MICKA
Invité n'ayant pas de compte PHPfrance

14 mars 2006, 13:34

bonjour, je souhaite convertir la date mysql format anglais au format fr en affichage dans une boucle mais je n'est pas de modivication.

voici ma fonction dans un fichier de fonctions
function date_fr2($date=0)
{
  if(!$date)
   $date = $rows['date']; 
	$a = substr($date, 0, 4);
	$m = substr($date, 5, 2);
	$j = substr($date, 8, 2);
	$datefr2=$j.'/'.$m.'/'.$a;
	return array("date"=>$datefr2);
}
page de visu
include("fonctions.php");
$date = date_fr2(); //apel fonction

if ($_POST['mois'] !="" && $_POST['année'] !="")
{
$connexion = mysql_connect('***','***','***');// Connexion à la base de donnée 
mysql_select_db('base,$connexion)  or die('Erreur de selection '.mysql_error()); 
$requete = "SELECT * FROM detail LEFT JOIN staus on staus.id_status = detail.id_status  WHERE  date_inter LIKE '".$_POST['année']."-".$_POST['mois']."-%'  ";
$resultat = mysql_db_query('base',$requete,$connexion) or die('Erreur de selection '.mysql_error()); // execution de la requete 
mysql_close($connexion);// Fermeture de la connexion 

while($rows = mysql_fetch_array($resultat))
{ 


$id_detail = $rows['id_detail'];
$num_portable = $rows['num_portable'];
$matricule = $rows['matricule'];
$date = $rows['date'];
$dateinter = $rows ['date_inter']; 
$status = $rows['libelle_status'];
	

echo "<tr>\n
<td ><input type=\"button\" onClick=\"location.href='portables.php?incident=".$id_detail."&mat=".$matricule."&port=".$num_portable."';\" value=\"".$id_detail."\"></td>\n
<td > $num_portable</td>\n 
<td > $matricule </td>\n 
<td > $date</td>\n 
<td > $dateinter </td>\n 
<td > $status </td>\n
<td > $port</td>\n 
</tr>\n"; 

}  
}

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 mars 2006, 13:58

Euh... je ne sais pas trop ou est la question, mais il y a visiblement un problème de syntaxe dans le mysql_select_db (y a qu'à voir le code en couleur, c'est tout rouge !! :))

Quant à l'appel de fonction dans une boucle, il faut commencer par mettre l'appel dans la boucle (sinon ça va marcher beaucoup moins bien :)).

Après va falloir lui passer des paramètres, parce que dans ta fonction le $rows n'existe pas (c'est une variable externe à ta méthode) à moins de le déclarer comme global pour qu'il puisse l'utiliser :)

Enfin, question bête, pourquoi retourner un tableau et pas directement la date formatée ? tu pourrais ainsi la stocker ou l'afficher directement.

MICKA
Invité n'ayant pas de compte PHPfrance

14 mars 2006, 14:21

je retourne un tableau car se sont des dates correspondants à des dates qui transitent dans mes pages et qui son specifiquent pour chaque intervention (javascript bouton)

MICKA
Invité n'ayant pas de compte PHPfrance

14 mars 2006, 14:29

je dois faire passer ma valeur $rows['date'] dans mon fichier de fonction? en hidden par exemple?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 mars 2006, 15:08

A priori tu veux juste faire de l'affichage, donc non ce n'est pas la peine, tu as déjà tes valeurs. Il te suffit juste de les passer par ta fonction :
$date = $rows['date']; // contient ta date au format sql
$tonTableau = date_fr2($date); // tu fais appel à ta fonction en lui passant la date que tu veux traiter en paramètre, elle te retourne ton tableau 
echo $tonTableau['date']; // affichera la valeur associée à l'index 'date', à savoir ta date formatée
Tu glisses tout ça là où ça va bien dans ton while et ça devrait le faire :)

MICKA
Invité n'ayant pas de compte PHPfrance

14 mars 2006, 16:13

[RESOLUT]
sa tourne au poil merci beaucoup du coup de mian