Instruction php pr save un file dynamiqmt

Résolu/Fermé
Ynsouk Messages postés 104 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 6 octobre 2009 - 12 août 2009 à 19:26
Ynsouk Messages postés 104 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 6 octobre 2009 - 20 août 2009 à 12:02
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
A voir également:

4 réponses

M@dien Messages postés 437 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
13 août 2009 à 09:53
Bonjour,

Peut-être trouveras-tu ton bonheur là dedans: http://www.manuelphp.com/cours/cours.php?rub=Manipulation+de+fichiers&idaff=2
0
Ynsouk Messages postés 104 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 6 octobre 2009 2
14 août 2009 à 19:10
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.
0
M@dien Messages postés 437 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
17 août 2009 à 09:12
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.
0
Ynsouk Messages postés 104 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 6 octobre 2009 2
20 août 2009 à 12:02
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;
0