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 :

Comment contruire un array multiple [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 149
    Par défaut Comment contruire un array multiple
    Bonjour a tous,
    En fait ma question est plus prochae de array, mais je mets ce poste ici car je dois le contruire avec MySQL.

    Je dos faire u tableau multimitionnel qui doit comme ceci au final
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $cities = array(
    array("name"=>"Nom","firstname"=>"Prenom","city"=>"Lausanne","state"=>"Vaud","country"=>"Suisse"),
    );
    Il fau donc ajouter autant d' "array("name"=>"nom"...)" que de membre que possede ma table

    Le truc,c'est que je vois pas comment initier mon tableau multiple?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    le resultat de mysql c'est deja un tableau

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 149
    Par défaut
    Ok c'est juste

    Le truc c'est que si je fais
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while($data_search=mysql_fetch_assoc($query_search)){
    print_r($data_search);
    echo '<br>';
    }
    J'obtiens le contenu de mon tableau sous cette forme
    Array ( [fd_name] => Kumoudo [fd_firstname] => Jakob )
    Ben c'est axatement ce que j'ai besoin sauf que ca doit etre trabsformé ainsi
    Array ("fd_name"=>"Kumoudo","fd_firstname"=>"Jakob")

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 149
    Par défaut
    en fait je crois savoir comment faire.....

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    suffit de remplir un autre tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $data = array();
     
    while($data_search=mysql_fetch_assoc($query_search))
    {
        $data[] = $data_search;
    }
     
    print_r($data);

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 149
    Par défaut
    ouis mais comment alors formater le texte ainsi
    array("name"=>"Nom","firstname"=>"Prenom","city"=>"Lausanne","state"=>"Vaud","country"=>"Suisse"),
    Soit remplacer les [] par des "" et mettre des "" au lieu des expace qui se trouve apres le =>

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par pierrot10 Voir le message
    ouis mais comment alors formater le texte ainsi

    Soit remplacer les [] par des "" et mettre des "" au lieu des expace qui se trouve apres le =>
    si c'est pour faire du json je t'ai répondu sur ton autre sujet

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 149
    Par défaut
    Ben oui, ben crois pas etre très loin de la solution, sauf que je n'y arrive toujours pas

    Voila ton le code sur le quel je travaille
    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
     
    <?php
     
    $_clients = array(
    /*
    	array("fd_name"=>"Hadock","fd_firstname"=>"Alain","fd_state"=>"10001"),
    */
    );	
     
    $clients = array(
    );	
     
    $root="../";
    include($root.'sql/db_connect.php');
    $sql_search = 'SELECT fd_name,fd_firstname,fd_state FROM tb_clients ORDER BY fd_name';
    $query_search = mysql_query($sql_search)or die(mysql_error());
    $nb_search = mysql_num_rows($query_search);
     
     
     
    while($data_search=mysql_fetch_assoc($query_search)){
     
    $clients[]=$data_search;
    }
    echo json_encode($clients);
     
     
    // Cleaning up the term
    $q = trim(strtolower(strip_tags($_GET['term'])));
    if (!$q) return;
     
    // Rudimentary search
    $matches = array();
    foreach($clients as $client){
     
    	if(stripos($city['fd_name'], $q) !== false){
    	#if (strpos(strtolower($city['city']), $q) !== false) {
    		// Add the necessary "value" and "label" fields and append to result set
    		$client['value']=$client['fd_name'];
    		$client['label']="{$client['fd_name']}, {$client['fd_firstname']} {$client['fd_state']}";
    		$matches[] = $client;
    	}
    	#else{
    		#$matches[]= '';
    	#}
    }
     
    // Truncate, encode and return the results => LIMIT THE OUTPUT
    #$matches = array_slice($matches, 0, 10);
    print json_encode($matches);
    ?>
    Le premier json_encode() affiche correctement comme je le dois le coder en PHP dans le array $clients. Ce que je cherche a finaliser c'est que dans mon while($data_search), j'ai au final la meme chose que si j'avais codé dans l'array de test $_clients. (bien entendu, les noms et prénoms varient).
    Avec $_clients, ca fonctionne.
    Miantenant je veux que ma base de donnée "remplisse" l'array $clients, comme si je faisait manuellement.

    J'ai essayé avec json() comme tu me l'a dit dans l'autre poste (que j'ai fermé d'ailleur (delestage))

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 149
    Par défaut
    Ca marche,
    J'allucine! J'ai du tourné au tour du pot pendanr des heures!!!!
    Je devais tourner autour d'une faute de phrappe, d'un ". J'en sais rien.
    mais ca ca marche
    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
     
    <?php
    $_clients = array(
    /*
    	array("fd_name"=>"Hadock","fd_firstname"=>"Alain","fd_state"=>"10001"),
    	array("fd_name"=>"Hadock","fd_firstname"=>"Alain","fd_state"=>"10001"),
    	array("fd_name"=>"Hadock","fd_firstname"=>"Alain","fd_state"=>"10001"),
    	array("fd_name"=>"Hadock","fd_firstname"=>"Alain","fd_state"=>"10001"),
    	array("fd_name"=>"Hadock","fd_firstname"=>"Alain","fd_state"=>"10001"),
    	array("fd_name"=>"Hadock","fd_firstname"=>"Alain","fd_state"=>"10001"),
    	array("fd_name"=>"Hadock","fd_firstname"=>"Alain","fd_state"=>"10001"),
    	array("fd_name"=>"Hadock","fd_firstname"=>"Alain","fd_state"=>"10001"),
    */
    );	
     
    $clients = array(
    );	
     
    $root="../";
    include($root.'sql/db_connect.php');
    $sql_search = 'SELECT fd_name,fd_firstname,fd_state FROM tb_clients ORDER BY fd_name';
    $query_search = mysql_query($sql_search)or die(mysql_error());
    $nb_search = mysql_num_rows($query_search);
     
     
    while($data_search=mysql_fetch_assoc($query_search)){
    	$clients[]=$data_search;
    }
     
    // Cleaning up the term
    $q = trim(strtolower(strip_tags($_GET['term'])));
    if (!$q) return;
     
    // Rudimentary search
    $matches = array();
    foreach($clients as $client){
     
    	if(stripos($client['fd_name'], $q) !== false){
    	#if (strpos(strtolower($city['city']), $q) !== false) {
    		// Add the necessary "value" and "label" fields and append to result set
    		$client['value']=$client['fd_name'];
    		$client['label']="{$client['fd_name']} {$client['fd_firstname']}, {$client['fd_state']}";
    		$matches[] = $client;
    	}
    	#else{
    		#$matches[]= '';
    	#}
    }
     
    // Truncate, encode and return the results => LIMIT THE OUTPUT
    #$matches = array_slice($matches, 0, 10);
    print json_encode($matches);
    ?>
    C'est la première fois que je travail avec json

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    cool, par contre tu peux simplifié, pour faire ca en 1 seule requête faire un LIKE sur fd_name avec $_GET['term']

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

Discussions similaires

  1. Comment affecter un array à un element select
    Par ouioui2000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/01/2006, 12h26
  2. Réponses: 16
    Dernier message: 24/11/2005, 12h43
  3. [VB.NET] Comment remplir un Array
    Par Immobilis dans le forum ASP.NET
    Réponses: 6
    Dernier message: 10/11/2005, 23h49
  4. Comment intégrer des applications multiples ?
    Par Vulcanos dans le forum Composants VCL
    Réponses: 8
    Dernier message: 22/09/2005, 23h08
  5. Comment utiliser un array of TImage ?
    Par poussinphp dans le forum Langage
    Réponses: 23
    Dernier message: 19/09/2005, 09h24

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