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 :

fonction de requête SELECT


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut fonction de requête SELECT
    Bonjour

    je veut faire une fonction qui fait tous les recherche ( SELECT ) dans mon base de données
    alors j'ais ce code de mon ami mais il ne fonctionne pas :/ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Select_query($db,$var,$fields,$table){
        foreach ($fields as $field){
            // Assume the data is coming from a form
            $values[] = $_POST[$field];
        }
        $st = $db->prepare("SELECT * FROM $table WHERE (" . implode(',',$var) . ') ');
        $st->execute($values);
        return $st;
    }
    et voila mon test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $db = data_base_connect ();
    $var = array(' Code=?','Nom_Fr=?');
    $fields=array('digits','required1');
    $st = Select_query($db,$var,$fields,'chercheur');
    et Voila L'erreur qu'il m'envoie

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)' in C:\wamp\www\Projet\Fodil formul\function.php on line 47

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Ton premier souci viens de ta boucle, où tu ne reçois pas de $_POST

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach ($fields as $field){
            // Assume the data is coming from a form
            //$values[] = $_POST[$field];
            $values[] = $field;
        }
    Ensuite dans ta requête, tu fais un prédicat WHERE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (" . implode(',',$var) . ') ');
    , or celui-ci va se générer automatiquement sur plusieurs prédicats, mais ceux-ci doivent être séparé par le mot clé 'AND', ce que tu ne fais pas !

Discussions similaires

  1. Résultat commençant par un chiffre avec requête SELECT
    Par nicolas.pissard dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/04/2010, 13h31
  2. Tri d'une requête SELECT en fonction de cases à cocher
    Par ju0123456789 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 31/12/2008, 10h18
  3. Insertion multiple à base de sous requête SELECT
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/04/2005, 16h34
  4. SQL Server 7.0 - Requête Select
    Par sangokus dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/03/2004, 10h32
  5. Optimisations mysql sur les requêtes SELECT: index
    Par leo'z dans le forum Débuter
    Réponses: 2
    Dernier message: 29/11/2003, 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