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 :

in_array depuis une requête mysqli [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Points : 6
    Points
    6
    Par défaut in_array depuis une requête mysqli
    Bonjour,

    Je bloque sur la fonction in_array
    Je désire coupler cette fonction php avec une requête

    En déclarant mon tableau comme ceci, cela fonctionne:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $lang = array("en","fr");
    if(!in_array($_GET["lang"], $lang)){
         header("Location: ".ADDRESS_BO.$_SESSION["lang_bo"]."/login");
         exit();
    }

    Même chose avec ma requête ma ma page tourne en boucle...
    Où peut être mon erreur ?


    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
     
       function langExist(){
            $sql = Db::getInstance()->query("SELECT l_code FROM language WHERE l_active_back=1");
            $lang = array();
            while($row = $sql->fetch_assoc()){
                $lang[] = '"'.$row["l_code"].'"';
            }
            return implode(",",$lang);
        }
     
    if(!in_array($_GET["lang"], langExist())){
         header("Location: ".ADDRESS_BO.$_SESSION["lang_bo"]."/login");
         exit();
    }

    Merci d'avance de votre aide

  2. #2
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Déjà pourquoi mets tu toutes ces quotes et double quotes?

    $lang[] = '"'.$row["l_code"].'"';

    Tu peux tout simplement:

    $lang[] = $row["l_code"];
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci mais j'ai essayé mais cela ne me donne rien. Ceci dit, c'est une chaine de caractères donc je pense que les guillemets sont obligatoire.

  4. #4
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return implode(",",$lang);
    Tu renvoies une chaine de caractères, puis après tu fais un test dessus avec in_array

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par -Rpass- Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return implode(",",$lang);
    Tu renvois une chaine de caractères, puis après tu fais un test dessus avec in_array
    Rpass, merci de ta réponse. C'est ce que je fais. C'est dans mon premier message. Je n'arrive pas à voir où est mon erreur

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    donc je pense que les guillemets sont obligatoire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!in_array($_GET["lang"], langExist()))
    Tu es au courant que le second paramètre de in_array() doit être un tableau quand même (en fait, son nom viendrait même de cet aspect technique parait-il ) ?
    Dans ce cas, pourquoi ta fonction renvoie-t-elle return implode(",",$lang); ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Oui c'est ce que tu fais mais c'est ce qu'il ne faut pas faire
    La fonction in_array a besoin d'un tableau en deuxième paramètre, donc soit tu renvoies le tableau $lang directement dans ta fonction langExist, soit si tu as absolument besoin de renvoyer une chaîne pour une quelconque raison, tu fais un explode du résultat

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Un grand merci à Bovino je mets le code complet et en résolu:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        public function langExist(){
            $sql = Db::getInstance()->query("SELECT l_code FROM language WHERE l_active_back=1");
            $lang = array();
            while($row = $sql->fetch_assoc()){
                $lang[] = $row["l_code"];
            }
            return $lang;
        }
        if(!in_array($_GET["lang"], $general->langExist())){
            header("Location: ".ADDRESS_BO.$_SESSION["lang_bo"]."/login");
            exit();
        }

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 06/10/2007, 18h03
  2. Insérer une valeur depuis une requête vers un formulaire
    Par baila dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/08/2007, 11h07
  3. recherche de la liste des triggers depuis une requête
    Par voran dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/10/2006, 10h37
  4. Depuis une requête passer une variable
    Par kitty2006 dans le forum Langage
    Réponses: 1
    Dernier message: 26/09/2006, 10h54
  5. [SQL] Affichage d'une valeur depuis une requête
    Par kitty2006 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/09/2006, 16h38

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