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 :

Taille Tableau array_push()


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Par défaut Taille Tableau array_push()
    Bonjour,

    J'ai un souci avec l'un de mes tableau en effet j'aimerai modifier la taille mon tableau pour le moment elle est a 4 donc de 0 à 3 moi j'aimerai ajouter une taille de plus donc de 0 à 4.

    j'ai une function qui a été réalisé par un développeur et j'ai essayé d'ajouter une valeur de plus mais cela ne fonctionne pas je ne voit pas mon erreur

    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
     
    	function critique(){
    			$this->snoopy->fetch($this->p_url_critique);
    			$critique = array();
    			preg_match_all('/<td valign="top"><h4><b>(.+?)<\/b><\/h4>/',$this->a($this->snoopy->results), $journal);
    			preg_match_all('/<\/b><\/h4><h4>&nbsp;-&nbsp;(.+?)<\/h4><\/td>/',$this->a($this->snoopy->results), $journaliste);
    			preg_match_all('/<div align="justify" style="padding: 5 0 5 0"><h4>(.+?)<\/h4><\/div>/',$this->a($this->snoopy->results), $critique);
    			preg_match_all('/<img src="http:\/\/a69.g.akamai.net\/n\/69\/10688\/v1\/img5.allocine.fr\/acmedia\/skin\/empty.gif" border="0" style="margin: 0 6 0 0" width="4" height="9" class="flechejaune"\/><a href="([^\"]+)" class=\"link1\" target=\"_blank\">/',$this->a($this->snoopy->results), $lien);
    			preg_match_all('/<\/b><\/h4><img src="http:\/\/a69.g.akamai.net\/n\/69\/10688\/v1\/img5.allocine.fr\/acmedia\/skin\/empty.gif" width="52" height="13" class="etoile_(.+?)" border="0" \/>/',$this->a($this->snoopy->results), $note);
     
    			for($i=0;$i<sizeof($journal[1]);$i++){
     
     
    				$critique['journal'] = $journal[1][$i];
    				$critique['journaliste'] = $journaliste[1][$i];
    				$critique['critique'] = $critique[1][$i];
    				$critique['lien'] = $lien[1][$i];
    				$critique['note'] = $note[1][$i];
    				array_push($this->critique,$critique);	
    			}	
    		}
    Donc j'aimerai que quand j'affiche $critique[4] cela m'affiche le lien de la critique. Quand j'affiche les autre donc $critique[0]ou [1] cela fonctionne parfaitement mais sauf pour le 4 donc a mon avis il y a un problème de taille.

    Pourriez-vous m'aider SVP

    Cordialement

  2. #2
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour,

    Essaye de coller ce code à la fin de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo "<pre>";
    print_r($critique);
    echo "</pre>";
    Je pense que ca va t'aider à comprendre ton erreur.

    Gillou

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Par défaut
    J'ai bien fait ce que tu ma dit mais sa m'affiche correctement

    voici une exemple de ce qu'il m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [journal] => Positif
        [journaliste] => Jean A. Gili
        [critique] => (...) malgré son caractére spectaculaire, (...) le film est une oeuvre intimiste (...)
        [lien] => http://www.revue-positif.net/
        [note] => 4
    C'est quand je souhaite enregistrer le résultat dans la BDD ben il le fait pas enfin il enregistre tout sauf le lien

    Voici le code qui enregistre

    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
     
    if(isset($_POST['allocine_critiques'])){
     
    					$critiques = $_POST['allocine_critiques'];
    					$crit = new Critique_film();
    					$crit->set('film',$id_film);
    					//echo 'film : '.$id_film.'<br>';
    					$jour = new Journal();
     
    					for($j=0;$j<sizeof($critiques);$j++){
     
    						$critique = explode('|_|',$critiques[$j]);
     
    						$jour->set('nom',toBD($critique[0]));
     
    						$id = $jour->getId();
     
    						$crit->set('journal',$id['id_journal']);
    						$crit->set('journaliste',toBD($critique[1]));
    						$crit->set('critique',toBD($critique[2]));
    						$crit->set('lien',toBD($critique[4]));
    						$crit->set('note',toBD($critique[3]));
     
    						echo "0 : ".$critique[0]."<br>";
    						echo "1 : ".$critique[1]."<br>";
    						echo "2 : ".$critique[2]."<br>";
    						echo "3 : ".$critique[3]."<br>";
    						echo "4 : ".$critique[4]."<br>";
     
     
    						$crit->enregistre();
     
    					}
    Pour les echo il m'affiche tous sauf le dernier qui lui contiens normalement le lien

    Saurai-tu comment résoudre ce problème

    Merci d'avance

  4. #4
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Il ne t'affiche rien ou il te met une erreur ?
    Si il n'affiche rien, essaye de remplacer echo "4 : ".$critique[4]."<br>";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_dump($critique[4]);
    Gillou

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Par défaut
    Quand je fait le echo $critique[4] il m'affiche rien

    et quand je fait ton var_dump($critique[4]); il m'affiche NULL

    Le problème vient pas du array_push($this->critique,$critique); ????

    enfin je sais pas car le truc c'est que les autre infos il me les affiche sauf la 4eme

  6. #6
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    j'ai du mal à comprendre.
    $critiques est un tableau ?

    Que te donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo "<pre>";
    print_r($critiques);
    echo "</pre>";
    et remplace les numéros par le nom de la clé du tableau
    par exemple :
    $critique[1]
    devient
    $critique['journaliste']

    pour que l'on comprenne mieux.

    Merci.

  7. #7
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    ah non. pardon.
    affiche plutôt $critiques[$j] au début de la boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $critiques[$j] . "<br>";

    Gillou

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Par défaut
    Alors je t'explique

    J'ai une page qui va me récupérer les critiques donc j'ai crée un tableau qui doit contenir ces 5 informations

    0-> journal
    1-> journaliste
    2-> critique
    3-> lien
    4-> note

    donc dans la function critique() tu vois qu'il y a le tableau $critique qui est déclaré ce tableau doit contenir ces 5 informations

    ensuite le for dessous va tourner 10 fois pour récupérer 10 critiques, puis qui va les mettre dans le tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                                    $critique['journal'] = $journal[1][$i];
    				$critique['journaliste'] = $journaliste[1][$i];
    				$critique['critique'] = $critique[1][$i];
    				$critique['lien'] = $lien[1][$i];
    				$critique['note'] = $note[1][$i];
    				array_push($this->critique,$critique);
    Quand je fait un echo sur les variable dans le code ci-dessus cela fonctionne parfaitement il m'affiche tout les infos dont j'ai besoin mais c'est quand je passe a l'autre page pour les enregistrer dans la base de données c'est la qu'il ne m'affiche pas les infos de la cellule qui contient le lien

    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
     
    for($j=0;$j<sizeof($critiques);$j++){
     
       $critique = explode('|_|',$critiques[$j]);
     
       $jour->set('nom',toBD($critique[0]));
     
       $id = $jour->getId();
     
       $crit->set('journal',$id['id_journal']);
       $crit->set('journaliste',toBD($critique[1]));
       $crit->set('critique',toBD($critique[2]));
       $crit->set('lien',toBD($critique[4]));
       $crit->set('note',toBD($critique[3]));
     
        echo "0 : ".$critique[0]."<br>";
        echo "1 : ".$critique[1]."<br>";
        echo "2 : ".$critique[2]."<br>";
        echo "3 : ".$critique[3]."<br>";
        echo "4 : ".$critique[4]."<br>";
        $crit->enregistre();
    					}
    Voila le code ci-dessus m'affiche toute les infos des cellule sauf celle du numéro 4 qui elle doit contenir le lien

    Voila ce que m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $critiques[$j] . "<br>";
    Le Parisien|_|Renaud Baronian|_|(...) On a droit à un festival de scènes dignes des meilleurs films de guerre, et se séquences de bravoure. (...)|_|4

    Donc on peux voir qu'il cotient que 4 informations au lieu de 5

    il contiens Le parisien qui est le journal
    Renaud Baronian qui est le journaliste
    la critique qui est critique
    et 4 qui et la note

    mais dedans il ne figure aucun lien (URL)

    Voila j'espère que tu as mieux compris mon code

  9. #9
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut
    Il doit y avoir un problème au niveau de la création de ton tableau $critiques[] et du coup la chaine est mal formée, essaye de voir de ce coté là.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Par défaut
    Bonjour,

    Question bête... t'as essayé de mettre les infos dans le bon ordre?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $crit->set('journal',$id['id_journal']);
    						$crit->set('journaliste',toBD($critique[1]));
    						$crit->set('critique',toBD($critique[2]));
    						$crit->set('lien',toBD($critique[4]));// ICI LE 4 EST AVANT LE 3.
    						$crit->set('note',toBD($critique[3]));
     
    						echo "0 : ".$critique[0]."<br>";
    						echo "1 : ".$critique[1]."<br>";
    						echo "2 : ".$critique[2]."<br>";
    						echo "3 : ".$critique[3]."<br>";
    						echo "4 : ".$critique[4]."<br>";
    Je suis pas encore très à l'aise avec la poo de php, mais fais ce petit essai.

    Ensuite tu peux aussi regarder quand tu supprimes une des autres infos, si celle que tu ajoutes est maintenant prise en compte...

    Bref, fais plein de petit tests, et dis nous tout ce qu'il se passe, ca nous aidera beaucoup pour t'aider ^^

    Cordialement,

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Par défaut
    Salut,

    Le problème est résolu enfaite j'avais un problème dans une autre page qui devais passer les infos par une tableau dans le POST il et manquais justement la cellule Lien.

    C'est tout bon maintenant.

    Merci pour l'aide apportés

    Salutations

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

Discussions similaires

  1. Taille tableau par utilisateur
    Par nicodn02 dans le forum C
    Réponses: 56
    Dernier message: 26/04/2007, 18h28
  2. Aligner taille tableau sur celui du dessous
    Par linar009 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/09/2006, 17h02
  3. besoin d'aide probleme taille tableau
    Par zhao dans le forum C++
    Réponses: 8
    Dernier message: 28/09/2006, 10h14
  4. [Tableaux] taille tableau a deux dimensions
    Par nath-0-0 dans le forum Langage
    Réponses: 2
    Dernier message: 24/08/2006, 19h04
  5. [Tableaux] trouver taille tableau html en php
    Par eulalie15 dans le forum Langage
    Réponses: 4
    Dernier message: 03/07/2006, 14h47

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