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 :

base de données mysql php


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    apprenti développeur
    Inscrit en
    Juillet 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : apprenti développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 21
    Points : 23
    Points
    23
    Par défaut base de données mysql php
    Bonjour, j'ai un petit souci sur ce qui parait être une requête simple,

    alors, quand je retire la colonne role et la colonne id tout fonctionne bien raison pour laquelle je n'ai pas copier coller le fichier contrôller et le fichier vue,
    donc le problème vient de la méthode getUsers,
    mais je n'ai aucune idée d'ou cela peut provenir même en ayant bien cherché,

    pouvez-vous m'aidez s'il vous plait.

    cordialement.


    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
    Users {
     
    public function getUsers($login, $pass) {
    $mysqli = new mysqli('localhost', 'Yousss77', 'Yousss77', 'projet_images');
    $mysqli->set_charset("utf8");
    if ($mysqli->connect_errno) {
    echo 'Il y\'à une erreur de connexion : ' .$mysqli->connect_error. ' !';
    exit();
    } 
    $result = $mysqli->query('SELECT COUNT(u.id), u.id, u.login, u.password, u.role FROM users AS u WHERE login = "'.$login.'" AND password = "'.md5($pass).'"');
    if (!$result) {
     
    $msg_error = 'Erreur lors de la récuperation des identifiants !' .$mysqli->error;
    } else {
    $row = $result->fetch_array();
    $userData['count'] = $row['COUNT(u.id)'];
    $userData['id'] = $row['id']; // problème avec champ id
    $userData['login'] = $row['login'];
    $userData['password'] = $row['password'];
    $userData['role'] = $row['role']; // problème avec champ role
    return $userData; // retour correct sans id et role mais message erreur avec ces derniers
    }
    $mysqli->close();
    return $msg_error;
    }
     
    }
    le message d'erreur :
    string(89) "Erreur lors de la récuperation des identifiants !Unknown column 'u.role' in 'field list'"
    Warning: Illegal string offset 'count' in

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    1. Quand on utilise la fonction count dans un select et qu'il y a d'autre colonnes à récupérer, tu dois utiliser la clause group by. Utilise aussi un alias pour le count si tu utilises un tableau associatif ($row['id']...). Comme tu récupères d'autres colonnes, le count n'est pas nécessaire.
    2. Tu dois utiliser une requête préparer pour éviter une injection sql (imagine si l'utilisateur utilise 0 " and 1 = 1 -- comme login).
    3. Utilise password_hash et password_verify pour insérer et comparer les mots de passe.
    4. Ne récupère pas le mot de passe dans ton select, tu ne dois l'utiliser que dans la clause where.


    A+.

  3. #3
    Membre à l'essai
    Homme Profil pro
    apprenti développeur
    Inscrit en
    Juillet 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : apprenti développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 21
    Points : 23
    Points
    23
    Par défaut Base de données mysql php
    Salut à toi,
    Je regarde ça de plus près,
    Merci pour ces conseils précieux.

Discussions similaires

  1. [MySQL] Update d'une table dans la base des données mysql php
    Par glodybiss4 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/02/2012, 16h51
  2. Réponses: 1
    Dernier message: 17/10/2008, 10h25
  3. [MySQL] Requête pour vérifier base de donné Mysql en php
    Par srab2pac dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/06/2008, 09h48
  4. Problème de copie d'une base de données MySQL avec PHP
    Par rheem dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 15/10/2007, 14h52
  5. [MySQL] Synchronisation de base de données MySQL en PHP
    Par takepaf dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/07/2007, 11h23

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