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 :

Du code php qui donne une page vide ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 55
    Points
    55
    Par défaut Du code php qui donne une page vide ?
    Bonjour tout le monde,
    Alors tout est dans le titre, un code php rend ma page complètement vide : si je regarde le code source généré, il n'y a rien !!!
    Alors après avoir regardé partout, j'ai pu déterminé que le problème venait de la partie de code suivante, en sachant que j'utilise ce même tableau "dynamique" avec d'autre donnée et que ça fonctionne très bien, et que mes objets php sont bien remplis et tout... Je sais plus quoi faire et je ne comprend vraiment pas....

    Donc aucune erreur php générée, aucun code source généré....

    Voici le code de la page qui bug : (sans cette partie la page s'affiche)

    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
    <?php
    for($i=0;$i<count($categorie[$cat]->sousCat);$i++)
    {
     
    	?>
        <tr align="center">
        <?php if($i>0) {?>
        	<td><a href="souscat1_gestion.php?up_cat=<?php echo $categorie[$cat]->sousCat[$i]->ordre ?>" style="border:none;text-decoration:none" ><img src="../media/coquette3/png/24x24/up.png" style="border:none"/></a></td><?php } else { ?><td>&nbsp;</td><?php } ?>
        <?php if($i < count($categorie[$cat]->sousCat)-1) {?>
            <td><a href="souscat1_gestion.php?down_cat=<?php echo $categorie[$cat]->sousCat[$i]->ordre ?>" style="border:none;text-decoration:none" ><img src="../media/coquette3/png/24x24/download.png" style="border:none"/></a></td><?php } else { ?><td>&nbsp;</td><?php }?>
            <td><a href="souscat2_gestion.php?cat=<?php echo $categorie[$cat]->sousCat[$i]->id?>"><?php echo $categorie[$cat]->sousCat[$i]->name ?></a></td>
            <td><a href="redac_cat.php?edit_souscat=<?php echo $categorie[$cat]->sousCat[$i]->id ?>" style="border:none;text-decoration:none" ><img src="../media/png/24x24/edit.png" style="border:none"/></a></td>
            <td><a href="souscat1_gestion.php?del_cat=<?php echo $categorie[$cat]->sousCat[$i]->id ?>" style="border:none;text-decoration:none" ><img src="../media/coquette/png/24x24/delete.png" style="border:none"/></a></td>
        </tr>
     
    <?php 
    }
    ?>
    Et voici le code de l'objet pour vous faire une idée :

    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
    class SousCategorie 
    {
    	public $id;
    	public $idCat;
    	public $name;
    	public $sousCat;
    	public $ordre;
     
    	public function __construct()
    	{
    		$this->sousCat = array();
    	}
     
    }
     
    class Categorie 
    {
    	public $name;
    	public $id;
    	public $sousCat;
    	public $ordre;
     
     
    	public function  __construct()
    	{
    		$this->sousCat = array();
    	}
    }
    Donc le code marche très bien que je veux afficher le tableau des catégories, mais quand je l'adapte pour les sous catégories, ça ne marche plus.

    Merci d'avance pour votre aide, parce que là...

  2. #2
    jnore
    Invité(e)
    Par défaut
    Salut,

    Je ne comprends pas cette syntaxe!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    count($categorie[$cat]->sousCat);
    As-tu le script qui instancifie la classe?

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    Bonjour,
    Le count donne le nombre de case du tableau sousCat contenu dans un objet catégorie.

    $categorie est un tableau d'objet Categorie

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    A tout hasard, tu n'utiliserais pas le même nom de variable ($i) dans tes 2 boucles ?

    HS, utilise la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($z=count($array), $i=0; $i<$z;$i++)
    Afin d'éviter le count à chaque tour de boucle

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    Euh je n'ai qu'une boucle, pour toutes les sous cat, je rajoute une ligne dans le tableau. Je ne comprend pas comment un code php peut générer une page blanche...

  6. #6
    jnore
    Invité(e)
    Par défaut
    Avant ce code, t'as quoi en script?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for($i=0;$i<count($categorie[$cat]->sousCat);$i++)

  7. #7
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Citation Envoyé par MasterChief78 Voir le message
    Euh je n'ai qu'une boucle, pour toutes les sous cat, je rajoute une ligne dans le tableau. Je ne comprend pas comment un code php peut générer une page blanche...
    Autant pour moi alors, je pensais que celle-ci était une sous-boucle d'une boucle listant les catégories.

    Dans ce cas je te suggère de regarder du côté de ta classe, et de mettre ton error_reporting au max.

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    Alors avant ce code j'ai quelques petits bouts de code, qui ne posent pas de soucis car c'est des if($_GET[]) que je n'appelle donc pas. La page est blanche que a cause de cette partie de code (si je la supprime les en-têtes du tableau s'affiche !)

    Le truc c'est que ma classe fonctionne très bien dans tout ce que j'en fait sur d'autre page, avec le même code de récupération dans sql...

    (dsl pour la réponse tardive j'étais en congé)

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    J'ai tester en ajoutant ceci en début de code :

    error_reporting(E_ALL);

    ... et toujours la même page blanche, vide....

    Je perd espoir !!! Plz help

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Points : 550
    Points
    550
    Par défaut
    Et avec tout ça?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ini_set('display_errors', 1); 
     ini_set('log_errors', 1); 
     ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); 
     error_reporting(E_ALL);

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    A première vue on pourrait penser qu'on entre jamais dans la première boucle.

    Si tu précédais ton code présenté d'un petit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<pre>' . print_r( $categorie[ $cat ] , true ) . '</pre>';
    Ça pourrait donner des piste pour déboguer.

  12. #12
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    Avec tout ça toujours rien... c'est incompréhensible....

  13. #13
    jnore
    Invité(e)
    Par défaut
    Citation Envoyé par MasterChief78 Voir le message
    Avec tout ça toujours rien... c'est incompréhensible....
    Je repose ma question:

    As-tu le script qui instancifie la classe?

  14. #14
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    Alors ce qui fait planter c'est bien cette boucle, qui rajoute un nom X de lignes, je ne comprend pas pourquoi ça ne fonctionne pas

  15. #15
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    Alors voilà tout ce qui se passe avant :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
    <?php
     
     
    include("connexion.php");
    include("getCat.php");
    $cat = 0;
     
    if(isset($_GET['cat']))
    {
    $cat = $_GET['cat'];
    $cat = $cat - 1;
     
    }
     
     
     
    //DELETE CAT
    else if(isset($_GET['del_cat']))
    {
    	 mysql_query('DELETE FROM orientis_souscat1 WHERE id' . $_GET['del_cat']);
    }
     
     
    //UP
    else if(isset($_GET['up_cat']))
    {
    	$up_id = $_GET['up_cat'];
    	$temp = new Categorie();
    	for($i=0;$i<count($categorie[$cat]->sousCat);$i++)
    	{
    		if( $up_id == $categorie[$cat]->sousCat[$i]->ordre)
    		{
    			//$temp->id = $urgences[$i-1]->id;
    			$temp[0]->sousCat[$i]->name = $categorie[cat]->sousCat[$i]->name;
    			//$temp->importance = $urgences[$i]->importance;
     
    			$cpt = $i;
     
    		}
    	}
     
    	//$urgences[$cpt]->id = $urgences[$cpt-1]->id;
    	$categorie[$cat]->sousCat[$cpt]->name = $categorie[$cat]->sousCat[$cpt-1]->name;
    	//$urgences[$cpt]->importance = $urgences[$cpt-1]->importance;
     
    	//$urgences[$cpt-1]->id = $temp->id;
    	$categorie[$cat]->sousCat[$cpt-1]->name = $temp[0]->sousCat[$cpt]->name;
    	//$urgences[$cpt-1]->importance = $temp->importance;
     
    	//MAJ BDD
    	mysql_query("UPDATE orientis_souscat1 SET  nom='" .$categorie[$cat]->sousCat[$cpt-1]->name."' WHERE id=" . $categorie[$cpt-1]->id);
    	mysql_query("UPDATE orientis_souscat1 SET  nom='" .$categorie[$cat]->sousCat[$cpt]->name."' WHERE id=" . $categorie[$cpt]->id);
     
    }
     
     
    //DOWN
    else if(isset($_GET['down_cat']))
    {
    	$up_id = $_GET['down_cat'];
    	$temp = new Categorie();
    	for($i=0;$i<count($categorie[$cat]->sousCat);$i++)
    	{
    		if( $up_id == $categorie[$cat]->sousCat[$i]->ordre)
    		{
    			//$temp->id = $urgences[$i-1]->id;
    			$temp[0]->sousCat[$i]->name = $categorie[cat]->sousCat[$i]->name;
    			//$temp->importance = $urgences[$i]->importance;
     
    			$cpt = $i;
     
    		}
    	}
     
    	//$urgences[$cpt]->id = $urgences[$cpt-1]->id;
    	$categorie[$cat]->sousCat[$cpt]->name = $categorie[$cat]->sousCat[$cpt+1]->name;
    	//$urgences[$cpt]->importance = $urgences[$cpt-1]->importance;
     
    	//$urgences[$cpt-1]->id = $temp->id;
    	$categorie[$cat]->sousCat[$cpt+1]->name = $temp[0]->sousCat[$cpt]->name;
    	//$urgences[$cpt-1]->importance = $temp->importance;
     
    	//MAJ BDD
    	mysql_query("UPDATE orientis_souscat1 SET  nom='" .$categorie[$cat]->sousCat[$cpt+1]->name."' WHERE id=" . $categorie[$cpt+1]->id);
    	mysql_query("UPDATE orientis_souscat1 SET  nom='" .$categorie[$cat]->sousCat[$cpt]->name."' WHERE id=" . $categorie[$cpt]->id);
     
    }
    ?>
     
     
     
    <div align="center">
    <h3>Gestion des cat&eacute;gories</h3>
     
    <blockquote>
    <table>
    <tr  valign="middle"><td valign="middle"><a href="redac_cat.php?add_souscat1=1" style="border:none;text-decoration:none;vertical-align:middle" ><img src="../media/coquette/png/24x24/add.png" style="border:none;"/></a></td>
    <td><a href="redac_cat.php?add_souscat1=1" style="border:none;text-decoration:none;vertical-align:middle" > Ajouter une sous cat&eacute;gorie</a></td></tr></table>
    </blockquote>
     
     
    <table width="700" cellspacing="0" border="1 black" >
    <tr bgcolor="#0099FF">
    	<th>Monter</th>
        <th>Descendre</th>
        <th>Nom</th>
        <th>Modifier</th>
        <th>Supprimer</th>
    </tr>

  16. #16
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    Et le script qui construit la classe :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?php
     
     
    class SousCategorie 
    {
    	public $id;
    	public $idCat;
    	public $name;
    	public $sousCat;
    	public $ordre;
     
    	public function __construct()
    	{
    		$this->sousCat = array();
    	}
     
    }
     
    class Categorie 
    {
    	public $name;
    	public $id;
    	public $sousCat;
    	public $ordre;
     
     
    	public function  __construct()
    	{
    		$this->sousCat = array();
    	}
    }
     
     
    include("connexion.php");
     
    $i = 0;
    //Récupérer les catégories
    $retour = mysql_query('SELECT * FROM orientis_categorie ORDER by ordre ');
    while($donnees = mysql_fetch_array($retour))
    {
    $categorie[$i] = new Categorie();
    $categorie[$i]->name=$donnees['nom'];
    $categorie[$i]->id=$donnees['id'];
    $categorie[$i]->ordre = $donnees['ordre'];
    $i++;
    }
     
     
    $i = 0;
    //Récupère les sous catégorie
    $retour = mysql_query('SELECT * FROM orientis_souscat1 ORDER by ordre ');
    while($donnees = mysql_fetch_array($retour))
    {
    	for ($j=0;$j<count($categorie);++$j)
    	{	
    		If($donnees['id_cat'] == $categorie[$j]->id)
    		{	
    			$categorie[$j]->sousCat[] = new SousCategorie();
    			$categorie[$j]->sousCat[count($categorie[$j]->sousCat)-1]->name =$donnees['nom'];
    			$categorie[$j]->sousCat[count($categorie[$j]->sousCat)-1]->idCat=$donnees['id_cat'];
    			$categorie[$j]->sousCat[count($categorie[$j]->sousCat)-1]->id=$donnees['id'];
    			$categorie[$j]->sousCat[count($categorie[$j]->sousCat)-1]->ordre = $donnees['ordre'];
    		}
    	}
     
     
     
    }
     
    $i=0;
    $j=0;
    $k=0;
    //Récupère les sous sous catégorie
    $retour = mysql_query('SELECT * FROM orientis_souscat2 ORDER by ordre ');
    while($donnees = mysql_fetch_array($retour))
    {
    	for ($j=0;$j<count($categorie);++$j)
    	{	
    		for($k=0;$k<count($categorie[$j]->sousCat);++$k)
    		{	
    			If($donnees['id_souscat1'] == $categorie[$j]->sousCat[$k]->id)
    			{
    				$categorie[$j]->sousCat[$k]->sousCat[] =$donnees['nom'];
    			}
    		}
     
    	}
     
    }
     
     
     
    ?>

  17. #17
    jnore
    Invité(e)
    Par défaut
    Ce qu'il faudrait que t'essayes, c'est de construire une requete avec des jointures pour afficher des catégories et sous categories plutot que de faires des correspondances sur des tableaux via des classes.(Ca n'est que mon avis !)

    Je n'y aurais pas inséré de classes à ce niveau là.

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Mais si c'est bien d'utiliser des classes pour ce genre de truc. Il faudrait peut-être par contre les rendre utiles en définissant quelques méthodes, parce que là c'est ni plus ni moins que des stdClass... Soit pas une très grande utilité.

  19. #19
    jnore
    Invité(e)
    Par défaut
    Citation Envoyé par Petibidon Voir le message
    Mais si c'est bien d'utiliser des classes pour ce genre de truc. Il faudrait peut-être par contre les rendre utiles en définissant quelques méthodes, parce que là c'est ni plus ni moins que des stdClass... Soit pas une très grande utilité.
    M'ouais.
    J'aime bien programmer en POO mais sur ce coup là, vue l'utilisation, je pense qu'il aurait eu tout de même à y gagner à ne faire qu'une seule requete au lieu de 3!

    Pour l'instant, les choses sont un peu lourdes à digérer .

Discussions similaires

  1. Code php qui donne 2 resultats différents en local et en ligne
    Par gentil2005 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/05/2014, 09h52
  2. Réponses: 2
    Dernier message: 25/06/2008, 13h56
  3. Script php qui inclu une page au hasard
    Par adri5656 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 12/04/2007, 02h00
  4. Réponses: 11
    Dernier message: 08/06/2006, 18h07
  5. Boutons Radios qui charge une page php différente
    Par nebule dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/11/2004, 15h25

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