begin process at 2012 02 14 08:20:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

fichier, tableau, suivant et precedent


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fichier, tableau, suivant et precedent

mardi 10 mai 2005 à 14:40:02 | fichier, tableau, suivant et precedent

kdos

Bonjour ami lecteur,

Enoncé du probleme :
___________________

Soit un fichier texte intitulé news.txt de la forme suivante : 
      ID de la news|Titre de la news|Resumé de la news|

J'aimerais construire une fonction qui me retournerais en fonction de l'ID de la news recherchée les informations suivantes :
 - son titre
 - son resumé
 - l'ID de la news qui la precede
 - l'ID de la news qui la suit

J'arrive a recuperer les deux premieres informations avec une fonction du type:

function lct($id)
 {
   $fl=file('news.txt');
   foreach($fl as $ln)
    {
      $mb=explode('|',$ln);
      if($mb[0]==$id) {$titre=$mb[1]; $resume=$mb[2];}
    }
   return array($titre,$resume);
 }

Quelqu'un saurait-il comment recuperer les deux dernieres informations ? Merci d'avance.

mardi 10 mai 2005 à 14:59:56 | Re : fichier, tableau, suivant et precedent

Azdruyel



Salut :)

Au lieu de faire un foreach, si tu faisais une boucle for ou ton $i represente la ligne que tu es en train de lire. Au moment ou tu trouves la ligne qui t'interesse, tu as juste a lire la ligne $i-1 pour avoir la precedente et $i+1 pour la suivante, et donc avoir ta news precedante et ta news suivante.

Bonne chance :)
mardi 10 mai 2005 à 15:24:31 | Re : fichier, tableau, suivant et precedent

malalam

Administrateur CodeS-SourceS
Oui c'est beaucoup plus simple lol...et c'est la meme idee.
mercredi 11 mai 2005 à 00:02:38 | Re : fichier, tableau, suivant et precedent

kdos

Je ne vois pas comment placer la boucle for, peux tu m'eclairer un peu. Merci d'avance !

mercredi 11 mai 2005 à 08:43:16 | Re : fichier, tableau, suivant et precedent

Azdruyel

au lieu d'une boucle for comme je disais au debut, le plus simple est une boucle while. Voila comment je ferai :)

$file est le fichier dans lequel tu cherches ton info
$data est la donnée que tu recherches
$compt est un compteur initialiser a 0
$trouve est un booleen initialise a false qui te permet de savoir si ta valeur est trouve dans le fichier, comme ca quand tu ressors de ta boucle while, tu sais si tu sors parce que tu as trouve la valeur ou bien parce que tu as lu tout ton fichier sans rien trouver

while(($ligne=fgets($file))!=''){
   if($ligne==$data){
      echo 'c\'est bon!!!';
      $trouve=true;
      break;
   }
   else{
      $compteur++;
   }
}

//quand tu sors de la boucle, tu verifies si $trouve==true, et dans se cas la tu lis ton fichier jusqu'a $compteur-1 pour la ligne avant et $compteur+1 pour la ligne apres avec des boucles while

//par exemple

$compteurcourante=0
while($compteurcourant!=$compteur-1){
   $lignecourante=fgets($file);
   $compteurcourant++;
}
//quand tu ressors de la boucle tu as la ligne avant celle que tu recerchais au debut


Voila, si jamais ca va pas, bah on cherchera autre chose

mercredi 11 mai 2005 à 08:57:09 | Re : fichier, tableau, suivant et precedent

malalam

Administrateur CodeS-SourceS
Hello,

finalement je trouve ma solution plus simple, lol (dans ton autre post...juste avant celui-ci), et surtout plus souple.
Le principe : lire ton fichier, l'exploser.
Puis scinder le tableau obtenu en un nouveau tableau multidimensionnel associatif ou non (selon les gouts), du genre (par exemple) 
$tableau = array ('id' => array ('titre' => '...', 'resume' = '...'));
ou ce que je t'ai montre (mais c'etait adapte a mon script) :
$tableau = array ('id' => array (), 'titre' => array (), 'resume' => array ());

Pour scinder un tableau, il suffit de le parcourir et d'utiliser un modulo pour recuperer part exemple les clefs 0, 2, 4..., puis 1, 3, 5... puis 2, 5, 7...et les remettre dans ton nouveau tableau.
Apres, se promener dedans devient tres simple grace aux fonctions in_array(), array_search() etc...


vendredi 13 mai 2005 à 18:27:04 | Re : fichier, tableau, suivant et precedent

pitchoune

Réponse acceptée !

Salut, je te propose la solution suivante :






function lct($id)
 {
   $trv=FALSE;

   $fl=file('news.txt');
//trie le fichier en fonction de tes ID
   sort($fl);
   reset($fl);
//Compte le nombre de ligne de ton fichier
   $nb=count($fl);
   //Boucle permettant d'identifier la ligne de l'ID recherchée

   for($i=0;$i<$nb;$i++)
    {
      if(strpos($fl[$i],$id)===0) { $trv=TRUE; break;}
      else{continue;}
    }
   if($trv==TRUE)      
    {
//ID precedente (nulle si l'ID recherchée correspond à la premiere ligne du fichier)

      if($i!=0) {$lp=explode('|',$fl[$i-1]); $idp=$lp[0];} else {$idp='';}
//ID suivante (nulle si l'ID recherchée correspond à la derniere ligne du fichier)

      if($i!=$nb-1) {$ln=explode('|',$fl[$i+1]); $idn=$ln[0];} else {$idn='';}                       
    }
   else {$idp=''; $idn='';}
   return array($idp,$idn);
 }

J'espere avoir pu t'aider, à + !


Cette discussion est classée dans : fichier, titre, id, news, mb


Répondre à ce message

Sujets en rapport avec ce message

lecture de fichier et conditions [ par pitchoune ] Bonjour à tous lecteur,Soit unfichier texte par rubrique contenant des informations sous la forme : $id|$dy|$mth|$yr|$titre|$resum|Soit la fonction su upload non renseignée [ par winnie39 ] Bonjour à Tous,je me penche depuis peux à l'upload de fichier couplé à la base de données.Tous c'est parfaitement passé, alors je voudrais l' améliore Enregistrement [ par HagRapMan ] Salut!Voilà je voudrais faire un formulaire (jusque là je sais le faire ) avec 2 champs de Saisie comme ça:Titre :Message :en cliquant sur Envoyer, je Récupérer nom de fichier [ par nebucrath ] Bonjour,ma question est assez complexe a poser, mais je me lancepar exemple, si je vais sur www.monsite.com/page.php?titre=lol&fichier=lol j'aimerai a Upload [ par 0303 ] Bonjour je crée un script de news avec envoie dans la table le titre, brève, contenu et fichier joint; et ensuite dans mon affichage que j'ai aussi une erreur en PHP(besoin d'aide) [ par uniXbyte ] Bonsoir, je suis nouveau sur le forum et je suis un étudiant en informatique qui a commencé à étudier le javascript, css et html pourtant je n'ai pas Imposible d'insérer un enregistrement dans base sql [ par helka ] Bonjour, Depuis plusieurs jours, je cherche d'où vient le pb mais en vain. [^^sad1] Peut-être il y aura-til quelqu'un qui pourra m'éclairer ou me me Script de news [ par 0303 ] Bonjour ! je cherche un script de news en PHP/MYSQL avec ce script on peut poster les différents champs tels que : la page inserer.php Titre de la recuperer l'id d'un enregistrement grace a un clik!!!! [ par snakers07 ] bonjour tout le monde, je vous presente le probleme je suis sous php mysql, j'ai creer mes base, afficher les resultats grace au requete, mais la je b recuperer id d'une ligne tableau sur un clique [ par snakers07 ] bonjour tout le monde, voila mon probleme, je n'arrive pas à récuperer l'id d'une ligne d'un tableau. je precise le tableau est le resultat d'une requ


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,792 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales