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 :

Sélection aléatoire dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut Sélection aléatoire dans un tableau
    Bonjour,
    Je teste un code pour afficher des éléments aléatoires
    J'affiche pas tous le code mais une partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ar[] = $p->getId(); //ici j'ai 25 entrées dans le tableau
     
     
    			$rand_keys = array_rand($ar, 3);
     
    			echo ar[$rand_keys[0]] . "\n";
    			echo ar[$rand_keys[1]] . "\n";
    			echo ar[$rand_keys[2]] . "\n";
    Le code fonctionne je récupère 3 entrées au hasard.
    Seulement (ce qui est normal) les entrées sélectionnées changent à chaque rafraichissement de page. Je voudrais les changer une fois par jour.

    Comment feriez vous ? Mettre la date du jours et les entrées sélectionnées dans un fichier externe et comparer ? Ou une autre technique

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il n'y a qu'une possibilité : enregistrer le tirage du jour quelque part.
    Un fichier est suffisant je pense.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Bonjour et merci pour la réponse
    avec fopen ?
    $fichier = @fopen($fichier, "w+");

    et les stocker dans le fichier ?

    Si oui est ce qu'ont peut stocker dedans des variales ex : $date=
    $array =

  4. #4
    Membre averti
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Par défaut
    avec fopen ?
    Oui ...

    Si oui est ce qu'ont peut stocker dedans des variales ex : $date=
    Utilisez,la fonction serialize(),pour la linéarisation vos variables,ensuite vous les stockez dans un fichier.

    Pour,les récuperer,utilise unserialize().

  5. #5
    Membre averti
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    J'essaye
    est ce que j'ai bon jusque là ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	$fichier=toto.txt;
    	$fp = @fopen($fichier, "w+"); // le fichier est ouvert en ecriture
        if (!$fp) {
            echo "Impossible d'ouvrir $fichier en ecriture";
            exit;
        }
    $date=date("Y,n,d");
    Comment ajouter $date dans mon fichier toto.txt ?
    est ce que je fait bien de prendre un .txt ou xml c'est mieux ?

  6. #6
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    si tu as plus d'informations à stocker, mets les dans une base MySQL, ça sera plus pratique

  7. #7
    Membre averti
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    J'ai deux éléments à stocker la date du jour et un tableau.
    J'aimerai apprendre le fopen si quelqu'un avait la patience pour m'expliquer ou m'aiguiller

  8. #8
    Membre averti
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Par défaut
    Par exemple,l'écriture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if( $fp = @fopen( $tonFichier,'w') ){
     
    	$data = serialize( array('var1' => $var1,'var2' => $var2) ); // $var3,$var4 .... 
    	$fwrite($fp,$data);
    	fcolse($fp);
     
    }else{
     
    	//erreur
    }
    Lecture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if( $fp = @fopen( $tonFichier, 'r') ) {
     
    	$dataFile = fread($fp, filesize( $tonFichier ) ) ;
    	$data = unserialize($dataFile);
    	foreach( $data as $k => $v ) $$k = $v;
    	fclose($fp) ; 
     
    }else{
    	     //erreur
     
    }

  9. #9
    Membre averti
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Merci pour la réponse et désolé pour le retard (changé de FAI) et j'ai eu une coupure
    Je vais tester le code merci

  10. #10
    Membre averti
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Bonjour,
    Je ne vois aucun fichier s'ajouter sur mon serveur. Je suis dans un dossier public_html/monsite/test/test.php

    Le fichier s'ajoute au même niveaux que test.php ?

  11. #11
    Membre expérimenté Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Par défaut
    Oui, le fichier doit se trouver au même répertoire que test.php.

    Ton dossier public_html/monsite/test doit être accessible en écriture.

  12. #12
    Membre averti
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Le dossier contenant ce fichier est en 755, est ce suffisant ?

  13. #13
    Membre expérimenté Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Par défaut
    Non, c'est insuffisant.

    Il doit être à 766

Discussions similaires

  1. Sélection aléatoire dans une BD
    Par djileuk dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/10/2008, 10h41
  2. Répartition aléatoire dans un tableau
    Par pyopyo dans le forum Langage
    Réponses: 2
    Dernier message: 23/04/2008, 14h02
  3. Choix aléatoire dans un tableau
    Par jacko2 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 04/03/2008, 10h37
  4. [Débutante] Atteindre une ligne aléatoire dans un tableau
    Par rosanne dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/10/2007, 13h05
  5. Recherche aléatoire dans un tableau
    Par Ykroxor dans le forum Excel
    Réponses: 1
    Dernier message: 11/04/2007, 09h58

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