Instruction php pr save un file dynamiqmt [Résolu/Fermé]

Signaler
Messages postés
104
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
6 octobre 2009
-
Messages postés
104
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
6 octobre 2009
-
Bonjour,

je cherche à enregistrer de facon dynamique un fichier php en un fichier htm(ou php).

En effet je dois le faire en mode exécution.

en effet je parcours une liste et chaque élément de la liste doit avoir son fichier (html ou php).

Merci d'avance

4 réponses

Messages postés
437
Date d'inscription
mercredi 29 juillet 2009
Statut
Membre
Dernière intervention
23 septembre 2010
74
Bonjour,

Peut-être trouveras-tu ton bonheur là dedans: http://www.manuelphp.com/cours/cours.php?rub=Manipulation+de+fichiers&idaff=2
Messages postés
104
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
6 octobre 2009
2
merci m@dien, ton lien m'a aidé.
Sauf que j'arrive pas à réussir ce que je veux faire.

//Description et code
en effet je parcours une liste(table) et à chaque élément de la liste correspond une page
php; la creation de fichiers me réussit bien; j'arrive à créer les fichiers.
le problème c' est que le contenu des fichiers créés ne differe pas.
c'est le dernier élément de la liste parcourue qui est traité ds tous les fichiers créés
.

je joins le code (mes excuses pour sa longueur)

/* fichier testfile.php qui me permet de créer les fichiers */
include('connexion.php') ;
$req=" select * from lesetudiants " ;
$resreq=mysql_query($req);
$count =mysql_num_rows($resreq) ;
//echo $count ;
$count2=0 ;
while($dt=mysql_fetch_array($resreq))
{


$count2=$count2+1 ;

$_SESSION["matricule"] = $dt["matricule"] ;
$nom_code= $dt["nom"].$count2 ;
echo "<br>".$dt["matricule"]. " ".$dt["nom"] ;

$file="<? include('../page_releve.php')?> " ;
$path="pdf/".$nom_code.".php";
$bad="<html><title></title><body><table><tr><td>$file</td></tr></table> </body></html> " ;

$fichier = fopen($path,"w");
if(fwrite($fichier, $bad))
{
echo "OK yes! " .$count2;
fclose($fichier);
}
else echo "Erreur";
echo"ouais";
}


/*fin fichier testfile.php qui me permet de créer les fichiers*/

/*fichier page_releve.php qui traite les contenus des fichiers qui seront créés*/

<div align="center" style="font-family:Geneva, Arial, Helvetica, sans-serif;font-size:16px;"> <u>RELEVES DE NOTES</u>
</div>
<br />
<?
include('../connexion.php') ;
$matricule=$_SESSION["matricule"];

echo $matricule ;

$req="select r.*, l.totcreditsem1, l.totcreditsem1comp from releves_etudiants_traites r , lesetudiants l ".
" where r.matricule ='$matricule' and r.matricule=l.matricule " ;
echo $req ."<br><br>" ;
$resreq=mysql_query($req) ;
$count=mysql_num_rows($resreq) ;
if ($count > 0)
{
?>
<table align="center">
<tr>
<td>UNITES D'ENSEIGNEMENTS (UE) </td>
<td>CREDIT </td>
<td>MOY. </td>
<td>RESULAT </td>
<td>MENTION </td>

<td>RANG</td>
<td>EFF </td>
<td>MOY. EXTREMES </td>
<td>% REUS </td>



</tr>
<?
while ($donnees = mysql_fetch_array($resreq))

{
echo"<tr>" ;
echo"<td>" ;echo $donnees["matiere"] ;
echo"</td>" ;
echo"<td>" ;echo $donnees["credit"] ;
echo"</td>" ;
echo"<td>" ;echo $donnees["moyenne"] ;
echo"</td>" ;
echo"<td>" ; echo $donnees["resultat"] ;
echo"</td>" ;
echo"<td>" ; echo $donnees["mention"] ;
echo"</td>" ;

echo"<td>" ; echo $donnees["rang"] ;
echo"</td>" ;
echo"<td>" ; echo $donnees["eff"] ;
echo"</td>" ;
echo"<td>" ; echo $donnees["moyfaible"] . " " .$donnees["moyforte"] ;
echo"</td>" ;
echo"<td>" ; echo $donnees["pourc"] ;
echo"</td>" ;

echo"</tr>" ;

}
?>
<tr>
<td> Total crédits souscrits
</td>
<td >
<? echo $donnees["totcreditsem1"] ?>
</td>
<td colspan="7"> 
</td>
</tr>
</table>
<br />
<br />
<div align="center" style="background-color:#999999">
TOTAL       <? echo $donnees["totcreditsem1comp"] ?>
</div>
<?

}

?>

/*fin fichier page_releve.php qui traite les contenus qui seront créés */


Rappel du probleme: les fichiers sont créés mais c'est le paramètre ($_SESSION["matricule"]) du dernier élément de la liste qui est pris en compte à la création de tous les fichiers.


Merci bien et j'espere que vous allez m'aider.
Messages postés
437
Date d'inscription
mercredi 29 juillet 2009
Statut
Membre
Dernière intervention
23 septembre 2010
74
Ce comportement est normal.

En effet, si j'ai bien compris, tu crées tous les fichier et après tu les renseignes. le soucis c'est que au moment de la création, tu renseignes la variable de session comme ceci:
$_SESSION["matricule"] = $dt["matricule"] ; 

Ce qui est incohérent, puisque lors du renseignement des fichiers, qui vient après la création, tu retournes chercher la variable. hors celle-ci aura irrémédiablement la valeur du matricule du dernier fichier créé, puisqu'à chaque fichier la variable de session est écrasée.

Pour régler le problème, 2 solutions:
- Soit il faut créer et renseigner le fichier dans la foulée, puis passer au fichier suivant,
- Soit il faut créer un array contenant tous les matricules, et attribuer l'array à la variable de session 'matricule' à la fin de testfile.php. Ainsi la variable aura tous les matricules en mémoire au lieu du dernier seulement.
Messages postés
104
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
6 octobre 2009
2
bonjour,

j'ai cherché ca pendant le week-end et j'ai réussi à le faire. mais je n'ai plus travaillé
avec des variables sessions; je fais tout sur une seule page et ca marche.

je mets en gras ce que je mets dans les fichiers et les instructions permettant de créer les fichiers pour que vous cernez l'essentiel de cequi est fait.

Tous ceux qui viennent avant ne sont qu 'affectations aux variables.

//////le code

<?
include('connexion.php') ;
$req_etu=" select * from lesetudiants order by nom " ;
$res_req_etu=mysql_query($req_etu);

$count =mysql_num_rows($res_req_etu) ;

$order=0 ;
while ($dt = mysql_fetch_array($res_req_etu))
{$order=$order+1;
$matricule=$dt["matricule"] ;
$credits_souscrits= $dt["totcreditsem1"] ;
$annee = $dt["anneesco"] ;
$smestre=$dt["semestre"] ;
$credits_comptabilises= $dt["totcreditsem1comp"] ;
$nom=$dt["nom"] ;
$prenoms=$dt["prenoms"] ;
$nomfile=strtolower($dt["nom"]).$order;
$req="select r.*, l.totcreditsem1, l.totcreditsem1comp from table r , table2l ".
" where r.matricule ='$matricule' and r.matricule=l.matricule " ;
echo $req ."<br><br>" ;
$resreq=mysql_query($req) ;
$count=mysql_num_rows($resreq) ;
$matricule=$dt["matricule"] ;
$numero=$dt["numero"] ;
// $nomfichier=str_replace("'","", strtolower( $dt["nom"]) ) ;
//$nomfichier= $nomfichier.$dt["id"] ;
$maj=" update etudiants_infos set pathphoto='$nomfile' where numero='$numero' ; " ;
//echo"<br>". $maj ."<br>" ;
if (mysql_query($maj)) { echo"a....."; } ;
// echo"ok<br>" ;
//

if ($count > 0)
{
$entete="<div align='center'><b >'$unofficial'</b></div><br><br>
<div> Année".$annee . " ". "Semestre ". $smestre. "</div>"."<br><br><div align='center' style='font-family:Geneva,
Arial, Helvetica, sans-serif;font-size:16px;'> <u>RELEVES DE NOTES
</u></div><div style='font-family:Geneva, Arial, Helvetica, sans-serif;font-size:16px;' >".$nom. " ".$prenoms ."</div>
<br>
<table align='center' border=2 bgcolor=#CCFFFF> <tr >
<td class = for_releve>UNITES D
ENSEIGNEMENTS(UE)</td>
<td>CREDIT</td><td>MOY.</td><td>RESULAT</td> <td>MENTION</td><td>RANG</td><td>EFF </td><td>MOY. EXTREMES </td><td>% REUS
</td></tr> ";

$affichagal="" ;
while ($donnees = mysql_fetch_array($resreq))
{
$affichage= "<tr>" ."<td align='left'>" . $donnees["matiere"]
."</td>" ."<td align='center'>". $donnees["credit"] .
"</td>"."<td align='center'>" . $donnees["moyenne"] ."</td>" .
"<td>" .$donnees["resultat"].
"</td>"."<td align='center'>" . $donnees["mention"] .
"</td>" ."<td align='center'> <font color='red'>" . $donnees["rang"] ."</td>" ."<td align='center'>" . $donnees["eff"] .
"</font></td>" ."<td align='center' ><font color='blue'>" . $donnees["moyfaible"] . "     " .$donnees["moyforte"] ."</font></td>".
"<td align='center'>".$donnees["pourc"] ."</td></tr>";
$affichagal= $affichagal.$affichage;
//echo $affichage ;

}


$affichsouscrits=" <tr><td><b> Total crédits souscrits</b> </td><td ><b>".$credits_souscrits."</b></td><td colspan='7'> </td></tr>
</table>" ;
$affichcomptabilises="<br /><br /><div align='center' style='font-family:Geneva,
Arial, Helvetica, sans-serif;font-size:16px; font-weight:bold ;'> <u><font color=red >TOTAL CREDITS COMPTABILISES
       ". $credits_comptabilises. " </font></u></div>" ;

$rlv= $entete.$affichagal.$affichsouscrits.$affichcomptabilises ; // prend toutes les valeurs crées ci dessus et met ca dans la vaible $rlv

$path2="pdf/".$nomfile.".html";
$fichier3 = fopen($path2,"w"); // crée le nouveau fichier avec le nom issu de l'element de la boucle parcourue actuelleemnt
if ($fichier3)
{
fwrite( $fichier3,$rlv); // mets tout le contenu de la variable $rlv dans le fichier créé
fclose($fichier3);
echo"<br>".$nomfile ;
}
else
echo"erno<br>"
;

}

}//fin, boucle req_etu


?>



////fin code

meri M@dien;