begin process at 2012 05 30 20:57:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

la fonction fread et easyphp


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

la fonction fread et easyphp

dimanche 16 octobre 2005 à 12:18:26 | la fonction fread et easyphp

Teclis01

Bon voila j'ai un petit soucis de traitement car je lis un fichier avec 151433 carateres et je n'arrivais pas a le traiter bizarement et lorsque j'ai voulu afficher ce qu'il lisait du fichier txt quel ne fut pas ma surprise ... le fichier a été correctement fait mais la lecture se passe assez mal.
Est ce normal?
Si oui quel remedes y a t il ? ( car dans ce fichier txt il y a des id_item et les nom_item issues de 3 tables)

-------------------------------------------------------------------------------------------------------
          Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

dimanche 16 octobre 2005 à 13:56:23 | Re : la fonction fread et easyphp

coucou747

Administrateur CodeS-SourceS
envoi nous ton code et un extrait de ton fichier...

c'est pas clair du tout ce que tu dis...

pour lire un fichier : file_get_contents

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

[ Lien ]
lundi 17 octobre 2005 à 01:08:19 | Re : la fonction fread et easyphp

Teclis01

Le probleme vient du fait que la variable contenu dans $row["item_id"] change mais son nom associé non
le fichier d ou sont extrais les noms contient: iditem1;nomitem1;iditem2;nomitem2;
je fais donc une recherche sur chaque iditem d un personnage et je fais correspondre cela a son nom.
le resultat est un tableau ou il y a 3 colones
/iditem/nomitem/recipient
Voici le code!

<?php /* Date de création: 14/10/2005 */ ?>
<html>
<body>
<?php

/*************************/
/*       By:Teclis       */
/*  Sous License GNU     */
/*   Thx To : My Faerie  */
/*       And More...     */
/*************************/

echo "<STYLE>" ;
      echo ".tabnormal{background-color:white; color:navy; font-weight:normal}";
   //couleur sans passage de souris
      echo ".tabover{background-color:green; color:white; font-weight:normal}" ;
   //couleur avec passage de souris
      echo "</STYLE>";

function formulaire_perso()
{
   echo "<form name=\"form_\" method=\"get\" action=\" ";
   echo $_SERVER['PHP_SELF'];
   echo "\">";
  
      //conexion a la bdd sql
   $link = mysql_connect("localhost","root", "")       
   or die("Impossible de se connecter : " . mysql_error());    
   //selection de la base
   $db_selected = mysql_select_db('l2jdb', $link);
   if (!$db_selected) {
      die ('Impossible d\'utiliser la base : ' . mysql_error());
   }           
   $table= "characters";
   $query = "SELECT * FROM $table";
   $result = mysql_query($query) or die("Echec de la requête");
  
   if (mysql_num_rows($result) == 0) {          //si aucun resultat
      echo "Aucune ligne trouvée, rien à afficher.";
      exit;   }
                //choix perso
   echo "<SELECT NAME=\"comboperso\">";      //si resultat
   while ($row = mysql_fetch_assoc($result)) {       //creation d'une combobox
      $nomperso= $row["char_name"];           //avec boucle while (ligne par ligne)
   $idperso= $row["obj_Id"];               //recuperation de variables de la table
   echo "<OPTION VALUE=\"$idperso\">";
   printf(" %s  ",$row["char_name"]);
   }               
                   
  echo "</SELECT>";
                //choix du recipient
 echo "<SELECT NAME=\"combooption\">";
 echo "<OPTION VALUE=\"INVENTORY\">INVENTORY";  //choix par defaut
 echo "<OPTION VALUE=\"WAREHOUSE\">WAREHOUSE";
 echo "<OPTION VALUE=\"PAPERDOLL\">PAPERDOLL";
 echo "<OPTION VALUE=\"TOUS\">TOUS";
 echo "</SELECT>";

 echo "<br><br>";

 echo "</table>";
 echo "<input type=\"submit\" name=\"sub\" value=\"Voir son inventaire!\"><br></center>";
}
function verif_perso(){
 $idperso=$_GET['comboperso'];
 $recipient=$_GET['combooption'];
 $fichier="listitems.txt";
 //on va regarder combien d item ont ete synchronise
 /*Lecture du fichier addlist.txt*/
 $fp = fopen ($fichier, "r");
 $text= fread($fp,300000);
 //on cherche le nombre d'entrees
 $nbentrees=substr_count($text,";");
 //nombre de requete au max
 $nbrequete=$nbentrees/2;
 //on eclate la chaine avec pour separateur ;
 $liste = explode( ";",$text);
 
 //conexion a la bdd sql
 $link = mysql_connect("localhost","root", "")       
 or die("Impossible de se connecter : " . mysql_error());    
 //selection de la base
 $db_selected = mysql_select_db('l2jdb', $link);
 $table= "items";
 if (!$db_selected) {
    die ('Impossible d\'utiliser la base : ' . mysql_error());
 } 
  if($recipient!="TOUS"){
  $query = "SELECT * FROM $table WHERE owner_id = '$idperso' AND loc = '$recipient'";
  $result = mysql_query($query) or die("Echec de la requête");
  
  if (mysql_num_rows($result) == 0) {          //si aucun resultat
  echo "Aucune ligne trouvée, rien à afficher.";
  exit;   }
  
  $indexe =0;
  
  if($indexe == 0){
  //creation tableau pilote
  //tableau d affichage des parametres decrivant les items
   
   echo "<TABLE border=1 cellpadding=0 cellspacing=0 style=border-width:1px;border-style:solid;border-color:navy>";
   echo "<TD> id objet</TD>";
   echo "<TD> objet</TD>";
   echo "<TD> Recipient</TD>";
   echo "</TR>"; 
   $indexe =1;            //le tableau est indexe
  }
  if($indexe==1){            //si tableau indexe
  while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  $item = $row["item_id"];        //on recupere chaque champ dans une variable
  for($i=0;$i<=$nbrequete;$i=$i+2){
   if($liste[$i]==$row["item_id"]){   //c'est ici ou ca se passe mal
   $item1=$liste[$i+1];
   }
  }
  $item2 = $recipient;
  
  //ecriture de chaque parametre
   echo "<TR class=tabnormal onmouseover=this.className='tabover' onmouseout=this.className='tabnormal'>";
   echo "<TD>$item </TD>";
   echo "<TD>$item1 </TD>";
   echo "<TD>$item2 </TD>";
   echo"</TR>";
  
  }
  }
  }
  else{
  $query = "SELECT * FROM $table WHERE owner_id = $idperso";
  $result = mysql_query($query) or die("Echec de la requête");
  
  if (mysql_num_rows($result) == 0) {          //si aucun resultat
  echo "Aucune ligne trouvée, rien à afficher.";
  exit;   }

  $indexe =0;
  
  if($indexe == 0){
  //creation tableau pilote
  //tableau d affichage des parametres decrivant les items
   
   echo "<TABLE border=1 cellpadding=0 cellspacing=0 style=border-width:1px;border-style:solid;border-color:navy>";
   echo "<TD> id objet</TD>";
   echo "<TD> objet</TD>";
   echo "<TD> Recipient</TD>";
   echo "</TR>"; 
   $indexe =1;            //le tableau est indexe
  }
  if($indexe==1){            //si tableau indexe
  while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  $item = $row["item_id"];        //on recupere chaque champ dans une variable
  for($i=0;$i<=$nbrequete;$i=$i+2){
   if($liste[$i]==$row["item_id"]){    //c'est ici ou ca se passe mal
   $item1=$liste[$i+1];
   }
  }
  $item2 = $row["loc"];
  
  //ecriture de chaque parametre
   echo "<TR class=tabnormal onmouseover=this.className='tabover' onmouseout=this.className='tabnormal'>";
   echo "<TD>$item </TD>";
   echo "<TD>$item1 </TD>";
   echo "<TD>$item2 </TD>";
   echo"</TR>";
  
  }
  }

  }

}
if(!isset($_GET['sub']))
 {
  formulaire_perso();
 }
 else
 { 
  verif_perso();
 }

?>
</body>
</html>

-------------------------------------------------------------------------------------------------------
          Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

lundi 17 octobre 2005 à 08:59:01 | Re : la fonction fread et easyphp

malalam

Administrateur CodeS-SourceS
Hello,

il est bizarre ton code. T'as pas peut de faire un dépassement avec tes $i+1, $i+2 etc...?
Et là :
  while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  $item = $row["item_id"];        //on recupere chaque champ dans une variable
  for($i=0;$i<=$nbrequete;$i=$i+2){
   if($liste[$i]==$row["item_id"]){    //c'est ici ou ca se passe mal
   $item1=$liste[$i+1];
   }
  }

Il sert à quoi ton $item...?
Tu lui assignes la valeur de $row['item_id'], et tu ne t'en sers plus.

Explique plutôt ce que tu cherches à faire, et donne un exemple de comment est écrit ton fichier.

lundi 17 octobre 2005 à 09:00:48 | Re : la fonction fread et easyphp

malalam

Administrateur CodeS-SourceS
Ah oui ok tu l'affiches plus loin.

N'empêche, je n'ai pas compris ce que tu cherchais à faire, ni quel était ton problème.

lundi 17 octobre 2005 à 16:33:23 | Re : la fonction fread et easyphp

Teclis01

Mais euh mon code est simple :O)
Bon alors j essayes de re-expliquer!
j'ai un fichier listitems.txt dans lequel il y a :
id1;item1;id2;item2;...idn;itemn;
Le nombre de recherche a faire dans le fichier texte est correspond donc au nombre de : ";" divisé par 2.
Lors de la requete :
$query = "SELECT * FROM $table WHERE owner_id = '$idperso' AND loc = '$recipient'";
OU
$query = "SELECT * FROM $table WHERE owner_id = $idperso";
qui est choisie par l utilisateur suivant 2 combobox decrites ici:
             //choix perso
   echo "<SELECT NAME=\"comboperso\">";      //si resultat
   while ($row = mysql_fetch_assoc($result)) {       //creation d'une combobox
      $nomperso= $row["char_name"];           //avec boucle while (ligne par ligne)
   $idperso= $row["obj_Id"];               //recuperation de variables de la table //ICI ON RECUPERE TOUS LES OBJETS DETENUS PAR UN PERSO
   echo "<OPTION VALUE=\"$idperso\">";
   printf(" %s  ",$row["char_name"]);
   }               
                   
  echo "</SELECT>";
                //choix du recipient
 echo "<SELECT NAME=\"combooption\">";
 echo "<OPTION VALUE=\"INVENTORY\">INVENTORY";  //choix par defaut
 echo "<OPTION VALUE=\"WAREHOUSE\">WAREHOUSE";
 echo "<OPTION VALUE=\"PAPERDOLL\">PAPERDOLL";
 echo "<OPTION VALUE=\"TOUS\">TOUS";
 echo "</SELECT>";

Le but de ce script est de faire apparaitre dans un tableau et suivant la colonne, l id des items detenus par le perso, le noms des items qui correspondent a cet id et le recipient (par exemple inventaire, coffre...)
Ce qui fonctionne:
affichage de chaque id des items
affichage du recipient
Ce qui ne fonctionne pas:
l affichage du nom de l item correspondant a l id

J espere que c'est plus clair.
Merci


-------------------------------------------------------------------------------------------------------
          Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

lundi 17 octobre 2005 à 19:21:58 | Re : la fonction fread et easyphp

Teclis01

je viens re remarquer une chose assez étrange... lors de la sous traitance et la construction du fichier txt, et lors de sa lecture en weblocal avec easyphp il y avait des especes de trous entre les valeur et lors du surlignement avec la souris, les lignes réaparaissaient ...j ai easy php 1.7 ca viendrait de ça qu il ne les vois pas et que le script se plante monumentalement? au passage mon fichiers txt contient 151433 caracteres ... je vais voir pour le faire autrement! meme si le code sera assez inbuvable ...

-------------------------------------------------------------------------------------------------------
          Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

mardi 18 octobre 2005 à 08:57:49 | Re : la fonction fread et easyphp

malalam

Administrateur CodeS-SourceS
Ton error_reporting est fixé à quoi ?
au passage, je n'ai toujours pas compris ce que tu voulais faure, lol.



Cette discussion est classée dans : fichier, fonction, txt, easyphp, fread


Répondre à ce message

Sujets en rapport avec ce message

pb fonction fopen ??? [ par spike03 ] Salut,j'ai un pb avec la fonction fopen...je travail sur un serveur apache distant, et je veux créer un fichier txt sur ma machine localealors je fais sauvegarde de fichier et appel de fonction [ par zarbiman ] Salut à tous, je dois générer un fichier (word et/ou excel), et j'ai deux problemes:1) j'aimerais pouvoir afficher une fenetre pour permettre à l'util Section membre txt [ par DarkBoss ] salut,j' ai le code suivant:switch($state){case "Delete":if(session_is_registered("sess_pseudo") && session_is_registered("sess_pass")){$fs = fopen("m fichier txt ou mySQL [ par righton ] Salut !Je fais un chat en php qui nécessite de nombreux accès à une base de donnée. Je me demande si ça serait pas plus rapide au niveau récupération fonction : execution de fichier sql [ par flagada42 ] function execute_fichier_sql($chemin) { // Ouverture du fichier contenant les requètes SQL $file = fopen($chemin, "r"); //Tant que l'on est pa IP/Fichier.txt: Probleme FOPEN [ par skurvy ] Voila mon problem:$ip= $_SERVER["REMOTE_ADDR"];// Adresse ip$b= "";// pour nouvelle ligne$chat = file("http://".$ip."/chat.txt"); //ouvre le fichier$d Fonction crypt() pour htpasswd [ par Houzefa ] salut,voilà ya quelques temps j'avais fait un fichier .htpasswd pour mettre un répertoire protégé sur mon site (serveur Apache normal). le mot de pass Créer un fichier TXT [ par DEL ] j'aimerai savoir comment créer un fichier txt :/ ca peut paraitre simple mais j'ai pas trouvé mon bonheur sur php.net :/mon script ressemble a ca :if téléchargement de fichier .TXT ou .DOC ou ... [ par julien ] je voudrais permettre le téléchargement sur les postes clients de fichiers .txt ou .doc. pour l'instant quand on clique sur les liens, ils s'ouvrent d fread d''un fichier XL ajoute des [] [ par jlfm ] J'utilise le code suivant pour downloader un fichier texte et forcer le lancement d'XL (suffixe XLS).Le fichier ouvert sous XL porte le nom test[n].xl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,390 sec (4)

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