supprimer une ou des dates

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : supprimer une ou des dates

Re: supprimer une ou des dates

par xTG » 12 oct. 2013, 17:53

Je suis développeur professionnel mais pas dans le web, je suis dans les systèmes embarqués temps réel (aucun rapport donc ^^).
J'avais bien vu ton MP mais je ne réponds jamais par MP, je pars du principe qu'un problème a une meilleur visibilité dans un topic que dans un MP (plusieurs personnes peuvent donner leur avis/solution).

Concernant ton essai tu peux en fait totalement enlever le explode qui ne sert à rien. :)
Tu créés en fait un array avec un seul élément dedans, ce qui au final ne sert à rien.

Re: supprimer une ou des dates

par Jefekoi » 12 oct. 2013, 12:11

Merci beaucoup xTG =D>

Alors pour afficher la date (pas sans peine) j'ai fais comme cela (dans ma boucle For):
$reposition=explode("\n",$date[$tour]);
$redate = $reposition[0][6].$reposition[0][7]."-".$reposition[0][4].$reposition[0][5]."-".$reposition[0][0].$reposition[0][1].$reposition[0][2].$reposition[0][3];
echo $redate." - ".$even[$tour]."<br/>";
Dis moi ce que tu en penses .

Merci pour ton aide .. tu dois surement être dans la programmation professionnellement parlant ?

PS: tu as été voir tes messages privé ?

.

Re: supprimer une ou des dates

par xTG » 12 oct. 2013, 09:57

Tu peux transformer la date en un chiffre : AAAAMMJJ
Ainsi il est parfaitement possible de les trier numériquement ou alphanumériquement.
$fichier="monfichier";
$date=array();
$even=array();
$fp=fopen($fichier,'r');
while (!feof($fp)) {
$position=explode(",",fgets($fp,255));
$dateToPush = $position[0][6].$position[0][7].$position[0][8].$position[0][9].$position[0][3].$position[0][4].$position[0][0].$position[0][1];
array_push($date,$dateToPush);
array_push($even,$position[1]);
}
array_multisort($date, $even);
fclose($fp);
for($tour=0;$tour<=$i;$tour++){
echo $date[$tour]." - ".$even[$tour]."<br/>";
}
Tu peux effectuer l'opération inverse lorsque ces dates devront être affichées.

Re: supprimer une ou des dates

par Jefekoi » 11 oct. 2013, 19:20

J'ai bien peur de ne pas trouver de solution à mon problème

Pour le numérique (date) il existe cette function "natsort" : http://php.net/manual/en/function.natsort.php

Mais comment associer le numérique avec mes titres ? (array_multisort($date, $even);)

Re: supprimer une ou des dates

par Jefekoi » 11 oct. 2013, 18:28

Merci xTG,

J'ai quand même un souci avec le classement.

Monfichier :
05-12-2013,flash
12-10-2013,Folie Flore
05-10-2013,FLASHMOB BOKWA
13-10-2013,Folie Flore
25-12-2013,Marche de Noel
07-11-2013,Mon reve
25-12-2013,Manege de Noel
02-12-2013,ma fete3
Le resultat :
02-12-2013 - ma fete3
05-10-2013 - FLASHMOB BOKWA
05-12-2013 - flash
07-11-2013 - Mon reve
12-10-2013 - Folie Flore
13-10-2013 - Folie Flore
25-12-2013 - Manege de Noel
25-12-2013 - Marche de Noel
Comme tu peux voir il m'affiche en premier le 02-12-2013 .... est-ce le zéro qui vient embêter son monde ?

Re: supprimer une ou des dates

par xTG » 11 oct. 2013, 18:12

$fichier="monfichier";
$date=array();
$even=array();
$fp=fopen($fichier,'r');
while (!feof($fp)) {
$position=explode(",",fgets($fp,255));
array_push($date,$position[0]);
array_push($even,$position[1]);
}
array_multisort($date, $even);
fclose($fp);
for($tour=0;$tour<=$i;$tour++){
echo $date[$tour]." - ".$even[$tour]."<br/>";
}
Ne faire le tri qu'à la fin c'est mieux. :P
Ensuite saches que si tu n'es pas sûr de ta taille de ligne tu peux omettre le paramètre length de fgets.
Car si tu as une ligne de 500caractères tu ne vas en récupérer que la moitié.

Re: supprimer une ou des dates

par blof » 11 oct. 2013, 16:28

c'est vrai qu'il vaut mieux commencer compliqué ... :wink:

Re: supprimer une ou des dates

par Jefekoi » 11 oct. 2013, 16:25

Oui Blof tu as surement raison, mais j'aimerais, commencer par cette manière et pourquoi ne pas la faire dans une BD la prochaine fois ..

Re: supprimer une ou des dates

par blof » 11 oct. 2013, 16:17

Bonjour,

et enregistrer tes données dans une table MySQL ?

Supprimer des enregistrements en posant des conditions ou ajouter des enregistrements devient très facile.

Re: supprimer une ou des dates

par Jefekoi » 11 oct. 2013, 12:18

Voilà j'ai finalement fait comme ceci , dis moi ce que tu en penses :
$fichier="monfichier";
$date=array();
$even=array();
$fp=fopen($fichier,'r');
while (!feof($fp)) {
$position=explode(",",fgets($fp,255));
array_push($date,$position[0]);
array_push($even,$position[1]);
array_multisort($date, $even);
}
fclose($fp);
for($tour=0;$tour<=$i;$tour++){
echo $date[$tour]." - ".$even[$tour]."<br/>";
}

Re: supprimer une ou des dates

par xTG » 10 oct. 2013, 13:53

Cela me semble une belle usine à gaz vu comme cela. :)
D'autant plus qu'inclure un fichier modifié à la volée est source d'injection de code.

Re: supprimer une ou des dates

par Jefekoi » 09 oct. 2013, 21:09

Non un peu pris par le temps je suis passé à un autre système ... je reviendrais sur ton principe dés que possible.

Alors voici ce que j'ai fais :

Créé un fichier avec :
$D[1]="05-10-2013"; $E[1]="EvEnement 1";
$D[2]="08-10-2013"; $E[2]="EvEnement 2";
$D[3]="09-10-2013"; $E[3]="Neuf";
$D[4]="12-10-2013"; $E[4]="Folie Flore";
$D[5]="12-10-2013"; $E[5]="FLASHMOB BOKWA";
$D[6]="13-10-2013"; $E[6]="Folie Flore";
$D[7]="25-12-2013"; $E[7]="MarchE De Noel";
$D[8]="25-12-2013"; $E[8]="Manege De Noel";

Dans mon programme :
require "monfichier";
for($i=1;$i<=31;$i++){
if ($D[$i]=="") break;
if(strtotime($D[$i]) >= strtotime(date("d-m-Y"))) echo $D[$i]." : ".$E[$i]."<br/>";
}

Il est sur que pour le moment ça dépanne mais par la suite va falloir trouver autre chose si non mon fichier va se charger de date inutilement

Merci à toi je reviendrais plus tard .

Re: supprimer une ou des dates

par xTG » 09 oct. 2013, 20:40

Montres nous déjà ce que tu as tenté de faire, ce sera plus didactique que de te fournir une solution toute faite (chose que je n'apprécie pas en plus).

Re: supprimer une ou des dates

par Jefekoi » 09 oct. 2013, 19:55

Merci xTG

Je craque ... je viens d'essayer (3h00 dessus)

Et je n'arrive pas à trouver malgré ton aide.

Faut dire que c'est la première fois que j'utilise ARRAY et j'ai appris pas mal de chose bien :)

Peux tu m'aider à avancer s'il te plait ?

Re: supprimer une ou des dates

par xTG » 09 oct. 2013, 10:17

Je ne vois pas l'intérêt du implode/explode, le file à lui tout seul te renvoie un index par ligne de ton fichier. :)

Dans ton foreach il te faut un explode sur la virgule (ou autre méthode) pour accéder à la date.
Ensuite tu testes la date par rapport à la date courante. => http://fr2.php.net/manual/fr/datetime.diff.php
Il te faut un second array, si la date est correcte tu y insères la ligne, sinon tu ne fais rien.
Puis avec ton nouvel array tu te contentes de l'écrire dans ton fichier en écrasant tout le contenu.
Tu as ainsi un fichier à jour.