écrire bonne endroit fichier

Résolu
loblobloblob Messages postés 77 Date d'inscription mardi 7 avril 2009 Statut Membre Dernière intervention 18 mars 2010 - 10 mars 2010 à 14:57
loblobloblob Messages postés 77 Date d'inscription mardi 7 avril 2009 Statut Membre Dernière intervention 18 mars 2010 - 10 mars 2010 à 17:24
Bonjour,
je vous expose mon probléme en espérant que vous pourrais m'aider.

je dois faire un menu extensible sur un site, pour cela j'ai créé une BDD avec différentes tables, jusque la sa fonctionne, je peut ajouter ou retirer des rubrique dans mes tables sans probléme.

le souci viens quand je fais le liens avec php, c'est à dire, je crée des fichiers xml avec toutes mes info des tables et en même temps de créer des fichiers xml je fais de nouvelles pages php dynamiquement au même nom que la sous-rubrique créer.

j'arrive à écrire une premiére fois des informations dans mes pages php créé dynamiquement, mais dés que je rajoute une photo ou que j'enléve une photo dans ma base de donnée , mon fichiers php créé dynamiquement ne ressemble plus à rien

je pense que le code sera plus parlant :

<?php
require_once '../connect/connection.php';

$query = "SELECT nom, nom_rub FROM sous_rubrique";
$result = mysql_query($query);

/*----------------------------création du xml--------------------------*/
$file= fopen("../xml/sous_rubrique.xml", "w");
$_xml ="<?xml version="1.0" encoding="UTF-8" ?>\r\n";
$_xml .="<sous_rubrique>\r\n";
while ($row = mysql_fetch_array($result)) {
$_xml .="\t<".$row["nom_rub"]."> \r\n";
if ($row["nom"]) {
$_xml .="\t<nom>" . $row["nom"] . "</nom>\r\n";
/*---------------------------------------------------création du fichier php de la sous rubrique-------------*/
if(file_exists('../'.$row["nom"].'.php'))
{
$file2= fopen("../".$row["nom"].".php", "r");
fclose($file2);
}
else{
$file2= fopen("../".$row["nom"].".php", "w");
//echo "XML has been written. View the XML.";
$_php ="<?php\n";
$_php .=" include'include/head.php'; \n";
$_php .=" include'include/menu_gauche.php';\n";
$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";$_php .= "\n";
$_php .="\n"; $_php .="\n";
fwrite($file2, $_php);
fclose($file2);
}
/*-------------------------------------------------------------fin creation php--------------------------------*/
}
$_xml .="\t</".$row["nom_rub"]."> \r\n";
}
$_xml .="</sous_rubrique>\n";

fwrite($file, $_xml);
fclose($file);
//echo "XML has been written. View the XML.";

require_once 'sous_rubrique.php';
?>

ici je crée mon fichier xml concernant la sous rubrique et je crée un nouveau fichier php avec un début de code commun à toutes mes autres pages.

<?php
require_once '../connect/connection.php';

$query = "SELECT nom_sous, nom, legende, src FROM photo";
$result = mysql_query($query);

$tab = count($row);
/*--------------------------------creation fichier xml--------------------------------------------*/
$file= fopen("../xml/photo.xml", "w");
$_xml ="<?xml version="1.0" encoding="UTF-8" ?>\r\n";
$_xml .="\r\n";
$i=0;


while ($row = mysql_fetch_array($result)) {
$_xml .="\t<". $row["nom_sous"] .">\r\n";

echo 'i='.$i.'
';
/*-------------------------------écriture dans le fichier php précédement créé-----------------------------*/




/*--------------------------------------fin d'écriture fichier php----------------------------------------*/
if($row["nom"]){
$_xml .="\t<nom>" . $row["nom"] . "</nom>\r\n";
/*-------------------------------écriture dans le fichier php précédement créé-----------------------------*/


if($i==0){
$file2= fopen("../".$row["nom_sous"].".php", "r+");
fseek($file2, 70, SEEK_SET);


$_php ="echo'".$row["nom"]."';\n";
$_php .="echo'images/".$row["src"]."';\n";
$_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n";
//$_php .="include'include/footer.php';\n";

echo 'if
';
echo $row["nom"];
fwrite($file2, $_php);
fclose($file2);
}


else{
$file2= fopen("../".$row["nom_sous"].".php", "r+");
fseek($file2, -32, SEEK_END);
//on se place avant la fin du fichier php

$_php ="echo'".$row["nom"]."';\n";
$_php .="echo'images/".$row["src"]."';\n";
$_php .= "\n";
$_php .="include'include/footer.php';\n";
$_php .= "?>";
echo 'else
';
echo $row["nom"];
fwrite($file2, $_php);
fclose($file2);
}


/*--------------------------------------fin d'écriture fichier php----------------------------------------*/
}
if($row["legende"]){
$_xml .="\t<legende>" . $row["legende"] . "</legende>\r\n";
}
if($row["src"]){
$_xml .="\t<src>images/" . $row["src"] . "</src>\r\n";
}
$_xml .="</". $row["nom_sous"] .">\n";
$i=$i+1;

}
$_xml .="

\n";

fwrite($file, $_xml);
fclose($file);
//echo "XML has been written. View the XML.";

require_once 'formulaire.php';
?>

là je met les informations spécifique de chaque sous rubrique.

j'espére que quelqu'un pourra m'aider et je vous remerci d'avance pour vos conseil.

2 réponses

loblobloblob Messages postés 77 Date d'inscription mardi 7 avril 2009 Statut Membre Dernière intervention 18 mars 2010
10 mars 2010 à 16:27
j'ai fait autrement et comme ça ça marche

en fait je réécrit tout le fichier php depuis un seul fichier et sa fonctionne:
$file2= fopen("../".$row["nom_sous"].".php", "w");
fseek($file2, 0);
$_php ="<?php \n";
$_php .=" include'include/head.php'; \n";
$_php .=" include'include/menu_gauche.php';\n";
$_php .="echo'

';\n";
$_php .="echo'
';\n";
$_php .="echo'
';\n";
$_php .="echo'".$row["nom"]."';\n";
$_php .="echo'images/".$row["src"]."';\n";
$_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n"; $_php .= "\n";
//$_php .="include'include/footer.php';\n";

//echo 'if
';
//echo $row["nom"];
fwrite($file2, $_php);
fclose($file2);

j'ai cependant un second souci, dans ma construction dynamique de ma page je fait appel à une image qui sera spécifique à cette page :

$_php .="echo'

';\n";

le résultat dans la page php générer :

echo'

';

comme vous pouvez le voir il manque les quotes du coup mon image n'est pas charger.

Savez vous comment faire pour qu'elles y soient, pour information :
$_php .="echo'

';\n";
cela génére une erreur lors de la génération de la page

$_php .="echo'

';\n";
ça ne fonctionne pas non plus

merci d'avance d'éclairer ma lanterne
3
loblobloblob Messages postés 77 Date d'inscription mardi 7 avril 2009 Statut Membre Dernière intervention 18 mars 2010
10 mars 2010 à 17:24
J'ai aussi réussi à résoudre mon probléme, je le poste si ça peut interresser quelqu'un.

en fait c'était tout bête, j'ai stoquer ma balise img dans un varible en faisant attention aux quotes comme ceci :

$img='';

puis plus bas je fais appelle à cette variable :

$_php .="echo'$img';\n";

résultat dans la page de code php générer :

echo'';

voila, je ne sais pas si c'est la meilleur des solutions, mais en tout cas pour moi sa fonctionne.
voila
3
Rejoignez-nous