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

PHP & Base de données Discussion :

Problème d'allocation de mémoire: Fatal error: Allowed memory


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut Problème d'allocation de mémoire: Fatal error: Allowed memory
    Bonsoir à tous,

    Je me retrouve actuellement face à un problème que je ne comprends guère ^^.
    Apparemment il y a des problèmes de mémoire dans mon code ... (Au passage, j'ai essayé d'augmenter la taille de la mémoire du php.ini, et cela n'a rien changé ! ^^).

    Donc je dois certainement coder salement, et si c'est le cas, pouvez-vous m'informer de ce qui ne va pas ? =).

    Voici le code (enfin la partie qui rate):

    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
    	public function searchAndDisplay($ingredients){
     
    	    $result = array();
     
    	    $listeIngredients = explode('-', $ingredients);
     
    	    $nbrIngredients = sizeof($listeIngredients);
     
    	    $requete = 'SELECT * FROM recette WHERE titre LIKE "%'.$listeIngredients[0].'%"';
     
    	    for($i = 1; $i < $nbrIngredients; $i++){
     
    		if($listeIngredients[$i] != null){
     
    		    $requete .= ' OR titre LIKE "%'.$listeIngredients[$i].'%"';
     
    		}
     
    	    }
     
     
    	    $query = $this->pdo->prepare($requete);
    	    $query->execute();
     
    	    if($row = $query->fetch(PDO::FETCH_OBJ)){
     
    		while($row){
     
    		    $result[] = new Recette($row->id, $row->titre, $row->nbpersonnes, $row->dureepreparation, $row->dureeattente,
    					    $row->dureecuisson, $row->difficulte, $row->note, $row->prix, $row->ingredients,
    					    $row->preparation, $row->conseil, $row->timestamp, $row->date,
    					    $row->image, $row->description, $row->validation, $row->idutilisateur);
     
     
    		}
     
    		return $result;
     
    	    } else{ /* [....] Encore du code etc.. */.
    L'erreur se trouve ici: "$result[] = new Recette($row->id etc..."

    Merci d'avance à celui qui pourra me donner un coup de main .

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    En fait, après potassage intensif de la doc,

    j'ai pris la décision de faire ainsi, et ça marche !

    Voilà le changement:

    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
    	public function searchAndDisplay($ingredients){
     
    	    $result = array();
     
    	    $listeIngredients = explode('-', $ingredients);
     
    	    $nbrIngredients = sizeof($listeIngredients);
     
    	    $requete = 'SELECT * FROM recette WHERE titre LIKE "%'.$listeIngredients[0].'%"';
     
    	    for($i = 1; $i < $nbrIngredients; $i++){
     
    		if($listeIngredients[$i] != null){
     
    		    $requete .= ' OR titre LIKE "%'.$listeIngredients[$i].'%"';
     
    		}
     
    	    }
     
     
    	    $query = $this->pdo->prepare($requete);
    	    $query->execute();
     
    	    while($row = $query->fetch(PDO::FETCH_OBJ)){
     
    		    $result[] = new Recette($row->id, $row->titre, $row->nbpersonnes, $row->dureepreparation, $row->dureeattente,
    					    $row->dureecuisson, $row->difficulte, $row->note, $row->prix, $row->ingredients,
    					    $row->preparation, $row->conseil, $row->timestamp, $row->date,
    					    $row->image, $row->description, $row->validation, $row->idutilisateur);
     
    	    }
    	    if(sizeof($result) == 0){ /* Suite du code */
    J'ai donc viré le if($row) qui ratait, pour laisser le while faire un fetch object, et du coup, le "else" a été remplacé par une verification, afin de voir si mon tableau est vide ou pas !

    Enfin bref, si vous avez des propositions d'amélioration, je suis preneur !

  3. #3
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Ton il bouclait à l'infini.......

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/11/2010, 18h49
  2. Réponses: 3
    Dernier message: 08/12/2009, 14h14
  3. Réponses: 3
    Dernier message: 08/08/2007, 19h08
  4. [Librairies] zip.lib.php Fatal error: Allowed memory size of 8388608 bytes exhausted
    Par manaboko dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 22/05/2006, 10h42
  5. Fatal error: Allowed memory size of...
    Par Webfab dans le forum Langage
    Réponses: 3
    Dernier message: 17/09/2005, 10h11

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