8791 sujets

Développement web côté serveur, CMS

Voilà j'ai un gros problème, j'ai une base de données contenant des valeurs de saisie avec leur date de saisie.
J'aimerai pouvoir afficher uniquement les valeurs qui ont été saisies durant le mois et c'est là que ça bloque.
J'ai bien tenter de sélectionner le mois en cours à l'aide la fonction date couplé d'un explode mais je vois pas à quoi ça me sert en fait là maintenant ^^'


	$date = date("d/m/Y");
	list($jour, $mois, $annee) = explode('/',$date);

        while($selected1 = mysql_fetch_array($selected))
	{
	$resultat_date = $selected1['date_depart'];
	list($jour1, $mois1, $annee1) = explode('-', $resultat_date);
	//echo (' $nbsp '.$mois1.' $nbsp ');
	if($mois1 == $mois)
	{
...
        }
        }


Le problème c'est donc qu'en faisant cela je ne compare que les deux valeur du mois (table et valeur actuelle) pour ma boucle mais je ne sais pas comment faire en sorte que le mois en cours soit une clause dans ma requête sql ^^'

Je n'ai pas trouvé de méthode ou fonction le permettant mais peut être ai-je mal cherché. Smiley confused

Merci de votre aide en espérant avoir été assez clair ^^'
Modifié par dubtphp (09 Jul 2008 - 17:58)
Voilà la requête correspondant à $selected :


$selected = mysql_query("SELECT * FROM mission, transport WHERE mission.id_frais = transport.id_frais AND mission.id_personnel = '".$_GET['id_perso']."' GROUP BY date_depart")or die (mysql_error());


j'arrive toujours pas Smiley bawling
Hello dubtphp Smiley cligne ,

je ne suis pas très sûr d'avoir compris le problème mais tu pourrais essayer :
$selected = mysql_query("SELECT * FROM mission, transport WHERE mission.id_frais = transport.id_frais AND mission.id_personnel = '".$_GET['id_perso']."' 
AND [b]EXTRACT ( MONTH FROM date_depart ) = EXTRACT ( MONTH FROM CURRENT_DATE)[/b]") or die (mysql_error());

A+
Oui c'est l'idée j'ai finalement trouvé sur la doc mysql


SELECT * FROM mission, transport WHERE mission.id_frais = transport.id_frais AND mission.id_personnel = '".$_GET['id_perso']."' AND MONTH(date_depart ) = MONTH(CURRENT_DATE)


Le souci c'est que date_départ est en fait un varchar... du coup je cherche comment convertir se varchar en type date en javascript(passage de la variable en javascript à l'origine )
Reprendre le code de quelqu'un pour le finir est toujours une joie Smiley lol


	var date_dep = document.getElementsByName("date1")[0].value;//variable récupérant la date de la mission
	var date_d = date(date_dep);


Je pensais à cela mais ça ne fonctionne pas, je vais creuser en espérant trouver rapidement.

Si vous avez des suggestion dans le même temps je suis preneur ^^
Re',

je ne suis pas fan du Javascript pour formater une date de formulaire... ne serait-ce que parce qu'il peut être désactivé Smiley rolleyes !

Sinon, en supposant que tu ajoutes un nouveau champ de type date (par exemple newdat) dans ta table (par exemple matable)) tu pourrais faire une petite moulinette pour récupérer l'existant :
$sql = "Select datvar from matable";
$result = mysql_query($sql) or die(mysql_error());
while ($ligne = mysql_fetch_assoc($result)) {
	$datvar = $ligne['datvar']; // Par exemple '31-12-2008'
	$dat_array = explode('-', $datvar); // A remplacer par le bon délimiteur comme par exemple /
	$newdat = $dat_array[2].$dat_array[1].$dat_array[0];
	$sql2 = "Update matable set newdat = $newdat where datvar = '$datvar'";
	$result2 = mysql_query($sql2) or die(mysql_error());
}
et te servir également du php pour l'alimenter plus tard...
Modifié par Heyoan (09 Jul 2008 - 17:07)
Merci heyoan j'ai compris le principe je restais sur le JS cela me semblant plus logique (c'est pour une entreprise ou le js est activé donc je ne me suis pas soucié de l'accessibilité cela visant un public restreint ^^ )

Le code final donne :


$sql = mysql_query("SELECT date_depart FROM mission") or die (mysql_error());

	while ($result = mysql_fetch_assoc($sql)) 
	{

	$date_finale= $result['date_depart'];

	$dat_array = explode('-', $datvar); // A remplacer par le bon délimiteur comme par exemple /

	$newdat = $dat_array[2].$dat_array[1].$dat_array[0];

	$sql2 = mysql_query("UPDATE mission SET date_finale = '".$date_finale."' WHERE date_depart = '".$datvar."'") or die (mysql_error());

	}


Bien vu les erreurs de quote dans tes requête si c'était fait exprès Smiley langue mais le recopiage bête c'est mal Smiley lol
Me suis permi de garder le nom de deux tes variables je savais pas quoi mettre de plus explicite ^^

Encore merci Smiley murf