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 :

Récupérer les informations dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut Récupérer les informations dans un tableau
    bonjours
    j'ai créer un script qui a pour but d'afficher dans un tableaux les données sortie d'un fichier.txt
    Code php : 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
    // connection 
    $a = mysql_query('select connecter from membre where id="'.$_SESSION['id'].'"')or die (mysql_error());// on regarde si la personne est connecter ou pas 
       $b = mysql_fetch_array($a);
       if($_SESSION['login'] == false || !isset($_SESSION['login']) || $b['connecter'] !=1)
       {
       echo ' merci de vous connecter';
       }
       else
       {
      if(!empty($_GET['client']) and is_numeric($_GET['client']) and $_GET['client'] != 0)// on regarde si la variable client existe si c'est un nombre et client est différent de 0
    {
    $i = 1;
    while($i < $_GET['client'])
    {
      $nombre_hasard[$i] =  mt_rand(1,10);// on prend un un nombre  au hassaer
     $aap[$i] = $ouvert[$nombre_hasard[$i]] = file('client.txt'); // on prend la ligne  qui correspond au nombre hassard
     
    while(list($a[$i], $b[$i], $c[$i]) = $aap[$i])// on découpe la chaine en plusieur variable ps c'est la ligne 31 :p
    {
     
    echo $a[$i].','.$b[$i].','.$c[$i];// on affiche 
    }
    $i++;// on incrmente $i :)
    }
    ?>
    ps je ne l'ai pas encore mit dans le tableaux .

    bien sur je doit récuperer une données sur les 3 données dans l'array
    le fichier .txt ce comporte comme
    mais le petit problème c'est que j'ai l'erreur
    Warning: Cannot use a scalar value as an array in /home/data/users/d/docteur/client.php on line 31

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu marques que tu decoupes la chaine $aap[$i] mais je ne vois pas ou.
    Il te manque un truc comme explode(); non ?

  3. #3
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    salut,

    Perso je comprends pas cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $aap[$i] = $ouvert[$nombre_hasard[$i]] = file('client.txt');
    Que veux tu faire ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu marques que tu decoupes la chaine $aap[$i] mais je ne vois pas ou.
    Il te manque un truc comme explode(); non ?
    avec la focntion list . je vais voir avec explode mais il semble qu'il me dissait caractère incorect avec explode(' ',$aap[$i]);

    a thes32 je cherche a récupérer la ligne du nombre au hassard choisie :s :s

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Amha, tu te mélanges joyeusement les pinceaux entre les variables...
    Essaye de changer les noms de façon à avoir des choses plus explicites. Parce que là tu utilises $a comme une ressource mysql et un peu plus loin comme un tableau...

    Ensuite les choses qui n'ont pas à être utilisées à l'extérieur de la boucle n'ont pas besoin d'être stockées dans des tableaux.

    Et enfin, ton message d'erreur vient du fait que $aaap[$i] est une chaine de caractère et non un tableau, donc tu ne peux utiliser list avec. De plus, tu démarres $i à 1, alors qu'un tableau est indexé à partir de 0...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(!empty($_GET['client']) and is_numeric($_GET['client']) and $_GET['client'] != 0)// on regarde si la variable client existe si c'est un nombre et client est différent de 0
    {
    $contenu_fichier = file('client.txt');
    for ($i = 0; $i < $_GET['client']; $i++)
    {
      $nombre_hasard =  mt_rand(0, sizeof($contenu_fichier)-1);// on prend un un nombre  au hassaer entre 0 et le nombre de lignes du fichier
      $ligne = $contenu_fichier[$nombre_hasard];  // on prend la ligne  qui correspond au nombre hassard
      echo 'ligne : '.$ligne.'<br/>'; //on affiche la ligne
    }
    }

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    après on peut utiliser list???

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    ça dépend ce que tu veux faire exactement et à quoi va te servir list...

  8. #8
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Tout ca pour afficher une ligne d'un fichier au hasard ?????
    Il suffit de faire :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tab = file('fichier.txt');
    echo $tab[array_rand($tab)];

    Et si tu veux en extraire plusieurs tu peux faire comme ca :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function extractrand($file,$max) {
    	$tab = file($file);
    	$rand_lines = array_rand($tab, $max);
    	for ($i=0;$i<=$max;$i++) {
    		echo $tab[$rand_lines[$i]].'<br />';
    	}
    }
    echo extractrand('fichier.txt', 3);

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par Celira Voir le message
    ça dépend ce que tu veux faire exactement et à quoi va te servir list...
    ben le liste va me servir a récuperer que la variable maladie
    @ blueice sympa la fonction mais si tu veut séparer les différent données tu a un jolie message d'erreur
    Warning: explode() [function.explode]: Empty delimiter in /home/data/users/d/docteur/client.php on line 33
    juste pour information le fichier client.txt est organiser de la façon
    numéros de la ligne nom de la maladie la réputation
    1 rhume 1

  10. #10
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Extrait ta valeur avec la fonction que je t'ai donnée et ensuite tu extraits la portion qui t'intérèsse, tu peux faire un explode.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par blueice Voir le message
    Extrait ta valeur avec la fonction que je t'ai donnée et ensuite tu extraits la portion qui t'intérèsse, tu peux faire un explode.
    ok mais je doit utiliser explode pour la portion qui m'intéresse mais vu que j'ai au moins 10 voir plus de valeur a récupérer je ne peu pas utiliser explode :s

  12. #12
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function extractrand($file,$max) {
    	$tab = file($file);
    	$rand_lines = array_rand($tab, $max);
    	for ($i=0;$i<=$max;$i++) {
    		$tab = explode(' ',$tab[$rand_lines[$i]]);
    		echo $tab[1].'<br />';
    	}
    }
    echo extractrand('fichier.txt', 2);


    Dans le cas ou ta maladie n'est pas en deux mots...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    en fait j'ai fait comme cela ... c'est peu être un peu lourd mais sa marche :p
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function extractrand($file,$max) {
    	$tab = file($file);
    	$rand_lines = array_rand($tab, $max);
    	for ($i=0;$i<=$max;$i++) {
    		  list( ,$maladie, ,$prix,$materiel)=explode(" ",$tab[$rand_lines[$i]]);

    oui j'aime fait compliquer quand c'est simple

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/11/2011, 13h58
  2. [XSD] Récupérer les informations dans un fichier xsd (xml schema)
    Par gold_men84 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 04/03/2011, 18h50
  3. Récupérer les valeurs dans un tableau
    Par ssxjim dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 26/01/2011, 20h49
  4. [FirePHP] Récupérer les logs dans un tableau php
    Par Concombre Masqué dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 10/12/2010, 11h48
  5. Récupérer les informations dans un Array
    Par ozlem dans le forum Langage
    Réponses: 20
    Dernier message: 01/04/2010, 12h07

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