Mon prog. PHP ne fonctionne pas :(

Résolu/Fermé
foufou_qc - 15 avril 2011 à 21:09
Neron05 Messages postés 18 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 17 avril 2011 - 15 avril 2011 à 21:39
Bonjour,

Je débute en PHP et je ne comprend pas encore les erreurs. S.v.p. pouvez-vous m'aider?

Seul le nom de la page s'affiche (en HTML :) ) La page elle reste blanche.

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
<head>
    <title>Array!</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php

// $constructeur contient la gamme Renault et Citroen
// on se contentera de deux constructeurs : ça suffira pour l'exemple :)
$constructeur = array();

$constructeur['Renault']['Citadines'] = array('Twingo','Clio');
$constructeur['Renault']['Berlines'] = array('Megane','Laguna');
$constructeur['Renault']['Monospaces'] = array('Scenic','Espace');

$constructeur['Citroen']['Citadines'] = 'Saxo';
$constructeur['Citroen']['Berlines'] = array('Xsara','Xantia');
$constructeur['Citroen']['Monospaces'] = array('Picasso','Evasion');

function afficher_tableau($tableau) 
    {
    // on fait une boucle qui lit les éléments du tableau
    foreach ($tableau as $cle=>$valeur) 
        {
        // si l'un des éléments est lui même un tableau
        // alors on applique la fonction à ce tableau
        if(is_array($valeur)) 
            {
            // on affiche le nom de la clé et
            // le début d'une liste pour
            //  décaler le contenu vers la droite
            echo $cle.' : <ul>'; 
            
            // ici se réalise la récursivité
            // c'est à dire qu'on applique la fonction
            // à l'élément en cours car c'est lui aussi un tableau
            afficher_tableau($valeur); 
            
            // on ferme la liste
            echo '</ul>'; 
            }  // if
        
        // si ce n'est pas un tableau
        // alors on affiche le contenu de l'élément
        else
            {
            echo $cle.' = '.$valeur.' <br>';  
            }
        } //  foreach
    } // function
     
?>
</body>
</html>


A voir également:

1 réponse

Neron05 Messages postés 18 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 17 avril 2011 6
Modifié par Neron05 le 15/04/2011 à 21:46
Salut,
tu as bien défini une fonction mais si tu ne l'utilises pas, elle n'affichera rien rajoute
afficher_tableau($constructeur);
après ta fonction
et aussi
 if(is_array($valeur)) 
tu fais appel à une fonction que tu n'as pas l'air d'avoir implémenté je te conseille d'enlever (tu peux commenter) le if et le else ainsi que les accolades correspondantes sinon ca va pas marcher ca te donne donc
<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR"> 
<head> 
    <title>Array!</title> 
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
</head> 
<body> 
<?php 

// $constructeur contient la gamme Renault et Citroen 
// on se contentera de deux constructeurs : ça suffira pour l'exemple :) 
$constructeur = array(); 

$constructeur['Renault']['Citadines'] = array('Twingo','Clio'); 
$constructeur['Renault']['Berlines'] = array('Megane','Laguna'); 
$constructeur['Renault']['Monospaces'] = array('Scenic','Espace'); 

$constructeur['Citroen']['Citadines'] = 'Saxo'; 
$constructeur['Citroen']['Berlines'] = array('Xsara','Xantia'); 
$constructeur['Citroen']['Monospaces'] = array('Picasso','Evasion'); 

function afficher_tableau($tableau)  
    { 
    // on fait une boucle qui lit les éléments du tableau 
    foreach ($tableau as $cle=>$valeur)  
        { 
        // si l'un des éléments est lui même un tableau 
        // alors on applique la fonction à ce tableau 
      //  if(is_array($valeur))  
         //   { 
            // on affiche le nom de la clé et 
            // le début d'une liste pour 
            //  décaler le contenu vers la droite 
            echo $cle.' : <ul>';  
             
            // ici se réalise la récursivité 
            // c'est à dire qu'on applique la fonction 
            // à l'élément en cours car c'est lui aussi un tableau 
            afficher_tableau($valeur);  
             
            // on ferme la liste 
            echo '</ul>';  
          //  }  // if 
         
        // si ce n'est pas un tableau 
        // alors on affiche le contenu de l'élément 
      //  else 
        //    { 
            echo $cle.' = '.$valeur.' <br>';   
          //  } 
        } //  foreach 
    } // function 
     afficher_tableau($constructeur); 
?> 
</body> 
</html> 
2