IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

XML et MySQL SimpleXMLElement asXML()


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de zool.bzh
    Homme Profil pro
    peintre industriel
    Inscrit en
    Octobre 2023
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : peintre industriel
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2023
    Messages : 134
    Par défaut XML et MySQL SimpleXMLElement asXML()
    Encore une question de syntaxe.
    Je voudrais mettre tous les nom des miniatures dans un fichier xml pour les récupérer par la suite.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
     $sql_tri = 'SELECT  name_tof, dos_tof FROM pictures WHERE dos_tof = :dos_tof';
             $sth_tri = $pdo->prepare($sql_tri); 
             $sth_tri->execute(array('dos_tof' => $dos,
                                     ));					//on récupère le nom de l'image 			
    		 $done_tri = $sth_tri->fetchAll();
    		 $nbr_tof = $sth_tri->rowCount();
    		 $p=0;
     
            $sxe = new SimpleXMLElement('info.xml', 0, true);
            foreach ( $done_tri as $done_url) {                   //on insert dans un fichier xml 
                $url_tof[$p]  = $done_url['name_tof'];
    	        $sxe->addChild('item_show', $url_tof[$p]."|");	  //avec une séparation        
    	    $p++; 
          	} 
     
        $simple = $sxe->asXML();		   
        $pics_com = explode('|', $simple);                       // on recupère pour avoir un tableau
    	for ($p=0; $pics_lot_3 >= $p; $p++){ 
    	echo '<img src=pics_min/'.$dos.'/'.$url_tof[$r].'>'; //les miniatures s'affichent
        echo  '<img src=pics_min/'.$dos.'/'.$pics_com.'>';   //mais pas là et c'est ce que je voudrais
    	}
     
    $format = '<a href=load.php?dos=%s&url=pictures/%s/%s>liens_Photos</a>';
    echo sprintf($format, $dos, $dos, $pics_com[$p]);

    Voila l'erreur dans l'inspecteur

    <img src="pics_min/Pure_Lingerie/<?xml" version="1.0" encoding="UTF-8" ?="">
    le retour :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div class="boxcenter five">
    <a href=load.php?dos=Pure&url=pictures/Pure/</item_show><item_show>[mon_site.net]-Pure_pics_0052.jpg>affichages</a> </div>

    Mon fichier xml a remplir :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <items></items>

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 310
    Par défaut
    Bonjour,
    L'indentation ......
    La ligne de l'erreur : echo '<img src=pics_min/'.$dos.'/'.$pics_com.'>';


    En faites tu veux récupérer le contenu du xml pour l'afficher sur ton site web.
    Et actuellement tu la récupère depuis la bdd puis tu l'affiches directement.

    La grande question c'est t'es sur que tu écris les data dans ton xml ?

    Cdt

  3. #3
    Membre confirmé Avatar de zool.bzh
    Homme Profil pro
    peintre industriel
    Inscrit en
    Octobre 2023
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : peintre industriel
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2023
    Messages : 134
    Par défaut
    Re
    j'ai reformuler l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php	
    $pdo = new PDO('mysql:host=url;dbname=database', 'id', '****');
     
        include("info.php");
     
    	if (isset($_GET['pics'])) {       //pics-> 'de 1 à 50', de 51 à 100, etc...
            $values = explode(' ', $_GET['pics']);
            $pics_lot_1 = $values[1];
            $pics_lot_3 = $values[3];
        } 
     
    	$sql_tri = 'SELECT name_tof, dos_tof FROM pictures WHERE dos_tof = :dos_tof';
        $sth_tri = $pdo->prepare($sql_tri); 
        $sth_tri->execute('dos_tof' => $dos);								
    	$done_tri = $sth_tri->fetchAll();
        $nbr_tof = $sth_tri->rowCount();
     
        $items  = new SimpleXMLElement($xmlstr);
     
    	$p=-1;
     
    	 $lot_1 = $pics_lot_1;
         $lot_3 = $pics_lot_3 ;
    	 foreach ( $done_tri as $done_url) {
            if(($p=$lot_1 && $p<=$lot_3)){
    		    $url_tof[$p]  = $done_url['name_tof'];
    	        $items->addChild('item_show', '$url_tof[$p]');	    //<< url a recupérer du fichier info.php     
     
    	        $p++; 
     
    	    }
    	}
    echo $items -> item_show[1]; // donne $url_tof[$p] au lieu du nom de l'image
    //echo $items > asXML();     toutes les urls apparaissent mais il me faut les 50 selectionnées
    Comment faire pour que l'attribut $items->addChild('item_show', '$url_tof[$p]');me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     $items->addChild('item_show', 'Photo1');
     $items->addChild('item_show', 'Photo2');
     $items->addChild('item_show', 'Photo3');
    toutes les urls sont dans le fichier XML puisque echo $items > asXML(); me les rend toutes
    voici mon fichier XML:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $xmlstr = <<<XML
    <?xml version='1.0' standalone='yes'?>
    <items>
    </items>
    XML;
    ?>
    Comment faire pour avoir de bons attributs ??

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 506
    Par défaut
    Bonjour,

    Citation Envoyé par zool.bzh Voir le message
    '<img src=pics_min/'.$dos.'/'.$pics_com.'>'; //mais pas là et c'est ce que je voudrais
    Rajoutez des guillemets autour de la valeur de l'attribut src comme ça : '<img src="pics_min/'.$dos.'/'.$pics_com.'">'; (la ligne précédente aussi)

    Supprimez aussi les apostrophes autour de la variable $url_tof[$p] comme ça $items->addChild('item_show', $url_tof[$p]);

  5. #5
    Membre confirmé Avatar de zool.bzh
    Homme Profil pro
    peintre industriel
    Inscrit en
    Octobre 2023
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : peintre industriel
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2023
    Messages : 134
    Par défaut
    Re
    j'ai un autre souci avec mon XML, voici mon code
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?php 
    $pdo = new PDO('mysql:host=IP;dbname=DB', 'ID', '****');
        if (isset($_GET['hmax']) && isset($_GET['hmin']) && isset($_GET['wmax']) && isset($_GET['wmax'])) {
    	    $sql_tri = 'SELECT height, width, name_tof, dos_tof FROM pictures WHERE dos_tof = :dos_tof AND height <= :sqlmaxheight AND height >= :sqlminheight AND width <= :sqlmaxwidth AND width >= :sqlminwidth';
            $sth_tri = $pdo->prepare($sql_tri); 
            $sth_tri->execute(array('dos_tof' => $dos,
    								'sqlminheight' => $_GET['hmin'],
                                    'sqlmaxheight' => $_GET['hmax'],    //on garde en memoire les dimensions selectionnées                             'sqlminwidth' => $_GET['wmin'],
                                    'sqlmaxwidth' => $_GET['wmax']
                                     ));								
    		$done_tri = $sth_tri->fetchAll();
            $t = 0;
            foreach ($done_tri as $done_url){           
                $pic_sel[$t] = $done_url['name_tof'];  // la variable du nom de la photos
                $t++;
                }
            if (isset($_GET['pics'])) {
                $values = explode(' ', $_GET['pics']);
                $lot_1 = $values[1]-1;                 // $pics = "De 1 à 50", "De 51 à 100" etc
                $lot_3 = $values[3]-1;
                }
    include('info.php');    //les données XML
    $items  = new SimpleXMLElement($xmlstr);
    $r=0;
    	$sql_tof = 'SELECT name_tof, dos_tof FROM pictures WHERE dos_tof = :dos_tof';
        $sth_tof = $pdo->prepare($sql_tof);
    	$sth_tof->execute(array(':dos_tof' => $dos));
        $done_tof = $sth_tof->fetchAll();
        foreach ($done_tof as $done_sel) {
        	if ($r>=$lot_1 && $r<=$lot_3){	       
    		    $items->addChild('item_show', $pic_sel[$r]); // on insert le tout dns info.php
    	        //echo $items['item_show'][$r];  // un truc du genre pour avoir une variable par photos
    		}
         $r++;  
    	 }
    echo $items->asXML(); // fonctionne elle me donne le nom de toutes mes photos
    print_r($items);
    ?>
    le print_r :
    SimpleXMLElement Object ( [item_show] => Array ( [0] => Photo_001.jpg [1] => Photo_002.jpg [2] => Photo_003.jpg [3] => Photo_004.jpg [4] => Photo_005.jpg etc...
    J'ai des dossiers dans lesquels sont stoqué des images.
    je desire faire un diaporamma et donc je voudrais recupérer mon XML pour une autre page avec la variavle du nom de la photos pour pouvoir avoir un 'next' et 'back'.
    mon fichier info.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $xmlstr = <<<XML
    <?xml version='1.0'?>
    <items>
     
    </items>
    XML;
    ?>
    Quelqu'un voit-il comment faire ??

  6. #6
    Membre confirmé Avatar de zool.bzh
    Homme Profil pro
    peintre industriel
    Inscrit en
    Octobre 2023
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : peintre industriel
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2023
    Messages : 134
    Par défaut
    J'ai en parti trouver réponces à mes questions mais il en subsiste d'autres
    voici mon code essenciel :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    include('info.php');
    $r=0;
    	$sql_tof = 'SELECT name_tof, dos_tof FROM pictures WHERE dos_tof = :dos_tof';
        $sth_tof = $pdo->prepare($sql_tof);
    	$sth_tof->execute(array(':dos_tof' => $dos));
        $done_tof = $sth_tof->fetchAll();
        foreach ($done_tof as $done_sel) {
        	if ($r>=1 && $r<=50){	
    		   $xml->addChild('item_show', $pic_sel[$r]."|");
    		}
         $r++;  
    	 }
     
    $xml_lot = $xml->asXML();
     
    $pics_exp = explode('|', $xml_lot);
     
    $s=0;
    for ($s>=1; $s<=50; $s++){
        echo '<img src="pics_min/'.$dos.'/'.$pics_exp[$s].'">';	
    }
    et voila ce que génère ma console inspecteur :
    <img src="pics_min/dossier/</item_show><item_show>photo_001.jpg">
    <img src="pics_min/dossier/</item_show><item_show>photo_002.jpg">
    <img src="pics_min/dossier/</item_show><item_show>photo_003.jpg">
    etc...
    je voudrais supprimer les balises item_show pour laisser place a la bonne url des photos
    comment faire ??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. XML vs MySQL
    Par Tigrounette dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 12/10/2006, 05h57
  2. [[xml]->[php]->[MySQL]] script php pour lire du xml
    Par koudjo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 30/06/2006, 03h18
  3. exporation XML vers Mysql
    Par nazar76 dans le forum Administration
    Réponses: 1
    Dernier message: 12/06/2006, 15h58
  4. [JDBC + XML + Java] XML to MySQL
    Par mathieu77186 dans le forum JDBC
    Réponses: 4
    Dernier message: 28/03/2006, 13h50
  5. [SimpleXML] Comment passer de XML à MySQL et vice-versa avec PHP ?
    Par Ben42 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 05/12/2005, 21h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo