Aide mini projet

guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis en bts informatique en 1er année, et j'ai un mini projet a effectué, il me reste 3 jours pour le finir, et je n'ai pas encore vraiment commencé, et en php je suis vraiment débutant donc je n'y arriverais jamais tous seul, donc je cherche une personne en capacité de me donnée un grand coup de main ou de me le faire en m’expliquant le code.

Mon projet consiste a récupéré des donnée dans un fichier XML pour les clients qui veulent consulté des données, et je doit faire une page de connexion pour l'administrateur pour qu'il puisse modifier, ajouter, ou supprimer des information sur le XML.

Merci a toute personne qui pourra m'apporté une aide inattendu.

Cordialement
Guillaume.
A voir également:

15 réponses

zipe31 Messages postés 38797 Date d'inscription   Statut Contributeur Dernière intervention   6 435
 
0
guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Alors j'ai déjà tenter, de récupéré les information du xml que j'ai créer, j'ai essayer de faire la fonction modifier, mais rien de ce que je fais ne fonctionne je ne sais pu par ou commencé et je suis en difficulté.
0
Gremy87 Messages postés 360 Statut Membre 38
 
"il me reste 3 jours pour le finir, et je n'ai pas encore vraiment commencé, et en php je suis vraiment débutant "

"je cherche une personne en capacité de me donnée un grand coup de main ou de me le faire en m'expliquant le code. "

c'est plutôt un grand coup de pied que tu mérites! ^^

https://www.php.net/manual/fr/class.domdocument.php

voila la classe domdocument, qui va te permettre de manipuler l'ensemble du xml.

voici les piste que tu dois approfondir:

"Mon projet consiste a récupéré des donnée dans un fichier XML"

http://www.php.net/manual/fr/domdocument.load.php
https://www.php.net/manual/fr/domdocument.getelementsbytagname.php

"pour qu'il puisse modifier ajouter, ou supprimer des information sur le XML. "

https://www.php.net/manual/fr/domdocument.createelement.php
https://www.php.net/manual/fr/domnode.appendchild.php
https://www.php.net/manual/fr/domnode.removechild.php
https://www.php.net/manual/fr/domnode.replacechild.php

je crois que tout y est, avec cela, le xml te paraitra plus simple a manipuler^^
RISE OF THE GEEK IS COMMING SOON!!! BWAHAHAHAHA
0
guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Pour le grand coup de pied je suis bien d'accord, mais la c'est une question d'imprévu qui ce sont enchainée pendant les vacances scolaire qui mon mi terriblement en retard et j'ai déjà consulté les différents lien que tu m'a donné, mais entre apprendre, mettre en application, et que sa marche sa me prend énormément de temps et j'en aurais pas fini a temps.

La j'ai fait un petit bout de PHP pour testé j'arrive a commencé a lire les information dedans.

<?php
$fichier_xml = "./miniprojet.xml";
try
{
	if (!file_exists($fichier_xml))
	{
		die("Le fichier " . $fichier_xml . " n'existe pas.");
	}
	$doc = new DOMDocument("1.0", "utf-8");
	if ($doc->load($fichier_xml) == FALSE)
	{
		die("Impossible de charger le fichier XML ($fichier_xml)");
	}
	$liste = $doc->getElementsByTagName("Info");
	echo "Il y a " . $liste->length . " Ville dans ce fichier XML<br />";
	foreach($liste as $ville)
	{
		if ($ville->hasAttributes())
		{
			echo "liste des attributs de Ville : <br/>";
			for ($i=0;$i<$ville->attributes->length;$i++)
				echo $noeud->attributes->item($i)->nodeValue . "<br/>";
		}
		echo "Nom des Villes :<br/>";
		for ($i=0;$i<$ville->childNodes->length;$i++)
			echo $ville->childNodes->item($i)->nodeValue . "<br/>";
	}
}
catch (DOMException $e)
{
	die($e->getMessage());
}
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gremy87 Messages postés 360 Statut Membre 38
 
et bien tu m'as l'air d'avoir compris le fonctionnement.

je ne vois pas bien ce que l'on peut faire pour toi à l'heure actuel. n'hésite pas à poster des que tu as un soucis, une erreur insoluble et la nous t'aiderons au plus vite
0
guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
La c'est un test pour apprendre a m'en servir.

Voici mon XML ville

<?xml version="1.0" encoding="utf-8" ?>
<Ville>
  <Infos>
    <Info name="Aix en Provence:" url="http://www.vhello.fr/" lat="43.5262730679307" lng="5.445442199707031"/>
    <Info name="Amiens:" url="http://www.velam.amiens.fr/" lat="49.900" lng="2.300"/>
    <Info name="Besançon:" url="http://www.velocite.besancon.fr/" lat="45.567" lng="47.250"/>
    <Info name="Cergy Pontoise:" url="http://www.velo2.cergypontoise.fr/" lat="49.0368" lng="2.0803"/>
    <Info name="Marseille:" url="http://www.levelo-mpm.fr/" lat="43.300" lng="5.367"/>
    <Info name="Mulhouse:" url="http://www.velocite.mulhouse.fr/misc/maintenance.html" lat="47.750" lng="7.350"/>
    <Info name="Nancy:" url="http://www.velostanlib.fr/" lat="48.700" lng="6.200"/>
    <Info name="Nantes:" url="https://www.bicloo.nantesmetropole.fr/" lat="47.233" lng="-1.583"/>
    <Info name="Paris:" url="http://www.velib.paris.fr/" lat="48.833" lng="2.333"/>
    <Info name="Plaine commune:" url="http://www.velcom.fr/misc/maintenance.html" lat="47.216667" lng="5.133333"/>
    <Info name="Rouen:" url="http://cyclic.rouen.fr/" lat="49.433" lng="1.083"/>
    <Info name="Toulouse:" url="http://www.velo.toulouse.fr/" lat="43.617" lng="1.450"/>
    <Info name="Bruxelles:" url="https://www.villo.be/" lat="50.8333" lng="4.33333"/>
    <Info name="Dublin:" url="http://www.dublinbikes.ie/" lat="53.333" lng="-6.250"/>
    <Info name="Luxembourg:" url="https://www.vdl.lu/fr/se-deplacer/a-velo-ou-a-pied/location-et-services-velos/veloh" lat="49.617" lng="6.133"/>
    <Info name="Santander:" url="http://www.tusbic.es/" lat="43.467" lng="-3.800"/>
    <Info name="Séville:" url="http://www.sevici.es/" lat="37.387" lng="-5.991"/>
  </Infos>
  
  <complementsURL>
    <complementURL name="carto" ajout="service/carto"/>
    <complementURL name="stationdetails" ajout="service/stationdetails/"/>
  </complementsURL>
</Ville>


Et ce que je n'arrive pas a faire, c'est récupéré le nom des ville et les mettre dans une liste pour que l'utilisateur choisisse la ville qui l'intéresse.
0
Gremy87 Messages postés 360 Statut Membre 38
 
c'est les profs qui t'on fournis ce XML tout moche et pas bien formé?
0
guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Non c'est moi qui l'ai fais c'est pour sa qu'il est tous moche.
0
guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Ville">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Infos">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Info">
                <xs:complexType>
                  <xs:attribute name="name" type="xs:string" use="required" />
                  <xs:attribute name="url" type="xs:string" use="required" />
                  <xs:attribute name="lat" type="xs:float" use="required" />
                  <xs:attribute name="lng" type="xs:float" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="complementsURL">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="complementURL">
                <xs:complexType>
                  <xs:attribute name="name" type="xs:string" use="required" />
                  <xs:attribute name="ajout" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


Ceci est le XSD du XML, qui va me servir pour les fonction ajouter modifier, pour être sur que ce que je rentre correspond au type de donnée attendu.

Je bloque toujours sur la récupération du nom des villes, et la façon pour les mettre dans une liste pour que l'utilisateur puisse la sélectionnée.
0
Gremy87 Messages postés 360 Statut Membre 38
 
foreach($liste as $ville) 
 { 
  if ($ville->hasAttributes()) 
  { 
   echo "liste des attributs de Ville : <br/>"; 
   for ($i=0;$i<$ville->attributes->length;$i++) 
    echo $noeud->attributes->item($i)->nodeValue . "<br/>"; 
  } 
  echo "Nom des Villes :<br/>"; 
  for ($i=0;$i<$ville->childNodes->length;$i++) 
   echo $ville->childNodes->item($i)->nodeValue . "<br/>"; 
 } 


ca ca te donne pas toutes tes villes et leurs attributs??

j'ai du mal a comprendre comment tu as raisonné pour créer ton XML ^^

<liste> 
<villes> 
<ville> 
<name>Cergy Pontoise</name> 
<url>http://www.velo2.cergypontoise.fr/</url> 
<lat>49.0368</lat> 
<lng>2.0803</lng> 
</ville> 
</villes> 
</liste> 


avec autant d'elements ville que tu veux, ca te paraissait pas mieux?
RISE OF THE GEEK IS COMMING SOON!!! BWAHAHAHAHA
0
guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Nom sa me donne rien du touts le code, et je c'est pu comment j'ai raisonné quand je l'ai créer je venais de découvrir comment sa fonctionné.

Mais la quand j'y repense comme sa il est vrai que j'ai pas dû choisir la solution la plus simple.
0
Gremy87 Messages postés 360 Statut Membre 38
 
tu n'as pas du tout choisis la solution la plus simple ^^

dans l'exemple de XML que je t'ai donné, la fonction getelementByTagName('name') renvoyait tous les noms de ville^^
0
guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
OK, mais je me voit pas le refaire car je suis déjà bien en retard, et j'arrive pas a récupérer le nom des villes, et encore moins après a les mettre dans une liste ci quelqu'un peu me fournir une piste.
0
guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
<?php
$fichier_xml = "./miniprojet.xml";
try {
	$doc = new DOMDocument;
	$doc->loadXML($xml); // remplacer par $doc->load
	
	$info_list = $doc->getElementsByTagName('Infos');
	echo "<h3>Il y a {$info_list->length} villes répertoriées</h3>";
	echo '<ul id="villes">';
	foreach ($info_list as $node) {
		if ($node->hasAttribute('Infos'))
			echo '<li>' . str_replace(array('.', ':'), '', $node->getAttribute('name')) . '</li>';
	}
	echo '</ul>';
} catch (Exception $e) {
	die($e->getMessage());
}
?>


j'ai essayer ceci, mais sa me trouve 0 ville donc pas de liste pourquoi il ne m'en trouve aucune ?
0
guillaume1104c Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjours a tous donc voila j'ai avancer un petit peu sur mon projet j'arrive enfin a savoir le nombre de ville que contient mon fichier XML ainsi que a récupéré les nom des villes, mais je n'arrive pas a faire un sélect que je mais sur la page utilisateur pour que l'utilisateur choisis la ville qui l'intéresse et que je puisse récupéré l'id de la ville pour charger les nom des station contenu sur le site de la ville qu'il a choisi.

Voici mon code actuel qui me permet de lister le nom des ville.

<?php
$fichier_xml = "C:\Users\Guillaume\Desktop\miniprojet\miniprojet.xml";
try
{
	if (!file_exists($fichier_xml))
	{
		die("Le fichier " . $fichier_xml . " n'existe pas.");
	}
	$doc = new DOMDocument("1.0", "utf-8");
	if ($doc->load($fichier_xml) == FALSE)
	{
		die("Impossible de charger le fichier XML ($fichier_xml)");
	}
	$liste = $doc->getElementsByTagName("Info");
	echo "Il y a " . $liste->length . " Ville dans ce fichier XML<br />";

	foreach ($liste as $node) 
	{
		if ($node->hasAttribute('name'))
			echo '<li>' . str_replace(array('.', ':'), '', $node->getAttribute('name')) . '</li>';
	}
	echo '</ul>';
}
catch (Exception $e) {
	die($e->getMessage());
}	
?>
0