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 :

search array PHP


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2016
    Messages : 45
    Par défaut search array PHP
    Bonjour,

    Je cherche à trouver le champ first_name dont le nom est "NICK" dans un array peuplé grace une requête mysql.
    J'aimerais trouver le first_name grace à son ID (actor_id).

    $arr =
    array(5) { [0]=> array(4) { ["actor_id"]=> int(1) ["first_name"]=> string(8) "PENELOPE" ["last_name"]=> string(7) "GUINESS" ["last_update"]=> string(19) "2006-02-15 03:34:33" } [1]=> array(4) { ["actor_id"]=> int(2) ["first_name"]=> string(4) "NICK" ["last_name"]=> string(8) "WAHLBERG" ["last_update"]=> string(19) "2006-02-15 03:34:33" } [2]=> array(4) { ["actor_id"]=> int(3) ["first_name"]=> string(2) "ED" ["last_name"]=> string(5) "CHASE" ["last_update"]=> string(19) "2006-02-15 03:34:33" } [3]=> array(4) { ["actor_id"]=> int(4) ["first_name"]=> string(8) "JENNIFER" ["last_name"]=> string(5) "DAVIS" ["last_update"]=> string(19) "2006-02-15 03:34:33" } [4]=> array(4) { ["actor_id"]=> int(5) ["first_name"]=> string(6) "JOHNNY" ["last_name"]=> string(12) "LOLLOBRIGIDA" ["last_update"]=> string(19) "2006-02-15 03:34:33" } }
    
    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
     
    $pdo = "mysql:host=localhost;dbname=sakila;charset=utf8mb4";
    $options = [
      PDO::ATTR_EMULATE_PREPARES   => false, // turn off emulation mode for "real" prepared statements
      PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION, //turn on errors in the form of exceptions
      PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, //make the default fetch be an associative array
    ];
    try {
      $conn = new PDO($pdo, "root", "", $options);
    } catch (Exception $e) {
      error_log($e->getMessage());
      exit('Something weird happened'); //something a user can understand
    }
     
    $stmt = $conn->prepare("SELECT * FROM actor limit 5");
    $stmt->execute();
     
    $arr = $stmt->fetchAll(PDO::FETCH_ASSOC);
    if(!$arr) exit('No rows');
     
    $key = array_search("NICK", array_column($arr, 'first_name'));
     
    print_r($key);

    Merci pour vos lumières:

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 313
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 313
    Billets dans le blog
    17
    Par défaut
    J'aimerais trouvé le first_name grace à son ID (actor_id).
    Tu veux le actor_id selon le first_name "NICK" ?

    $key = array_search("NICK", array_column($arr, 'first_name'));
    $actor_id = $arr[$key]['actor_id'];
    Mais tu pourrais faire cela directement en SQL.
    Et attention, tu limites ton jeu de résultat, ainsi NICK peut être présent en base mais pas dans le résultat.

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2016
    Messages : 45
    Par défaut
    Merci pour ce retour rapide.
    Non j aimerais trouver NICK en fonction de son ID (actor_id).

    Sur le principe de ta réponse, j ai trouvé la solution.

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $key = array_search("2", array_column($arr, 'actor_id'));
    $actor_id = $arr[$key]['first_name'];
    echo $actor_id;

    Merci encore pour la réponse.

Discussions similaires

  1. afficher données array php
    Par Patpillon dans le forum Langage
    Réponses: 2
    Dernier message: 30/07/2009, 09h21
  2. [Tableaux] Tableau (array) PHP/ foreach
    Par KOUTO dans le forum Langage
    Réponses: 2
    Dernier message: 01/06/2009, 00h54
  3. [MySQL] Boucle Array Php
    Par toulousain3117 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/05/2009, 00h13
  4. Augmenter un array php via js
    Par bastien dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 17/09/2008, 11h26
  5. [Tableaux] Recherche évoluée dans un array PHP
    Par fanfouer dans le forum Langage
    Réponses: 2
    Dernier message: 01/03/2008, 13h23

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