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 :

Requête élémentaire qui ne renvoie aucun résultat [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut Requête élémentaire qui ne renvoie aucun résultat
    Bonjour à tous,

    Je viens vers vous pour un problème qui me pourrit la vie depuis 3 jours.
    Je suis plutôt débutant ( mais pas grand débutant), j'utilise depuis plusieurs années, un ensemble de scripts dont le maintien a été abandonné depuis plusieurs années.
    Je dois les passer de php5 à php7.

    Je suis bloqué depuis 3 jours sur une requête de base qui ne renvoie pas le résultat escompté.

    PHP Version 7.0.18
    MariaDB 10.1.21
    Apache/2.4.25

    Un screen de ma base.
    Nom : Capture-BDD-sequane.png
Affichages : 813
Taille : 35,5 Ko

    J'appelle la fonction à partir d'un autre fichier
    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
     
     
    function VerifSession($UserID,$Password){
     
    	if ($con->connect_errno) {
        echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    	}
    	else echo "connecte a la base";
     
        if(empty($UserID) || empty($Password)) return 0;
    	$query="SELECT permission FROM seqadmin WHERE login ='$UserID' AND MD5(mdp) ='$Password'";
     
    	if ($result = mysqli_query($con,$query)) {
              printf("Select a retourné %d lignes.\n", $result->num_rows);
              $result->close();
    	}
    	else{
    	  echo "aucun résultat";
    	}
    J'obtiens " connecté à la base - aucun résultat "

    Je me dis qu'il y a un souci avec les variables et je simplifie en tapant le login en dur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $query="SELECT permission FROM seqadmin WHERE login ='admin' ";
    if ($result = mysqli_query($con,$query)) {
        printf("Select a retourné %d lignes.\n", $result->num_rows);
        $result->close();
    	}
    	else{
    		echo "aucun résultat";
    	}
    Plus simple, tu meurs ...
    aucun résultat .

    Je fais une requête dans phpMyadmin et là , j'obtiens le résultat attendu !

    Désolé de vous importuner avec quelque chose d'aussi trivial mais un peu d'aide serait le bienvanu
    Cordialement,
    et onsmokepas !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ d'abord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$query="SELECT permission FROM seqadmin WHERE login ='$UserID' AND MD5(mdp) ='$Password'";
    Ici, tu requêtes sur le login ET le mdp.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query="SELECT permission FROM seqadmin WHERE login ='admin' ";
    Là, tu requêtes sur le login (uniquement).

    Ce ne sont pas les mêmes requêtes...

    2/ as-tu entendu parlé :
    • d'"injection SQL" ?
    • de "requêtes préparées"


    3/ C'est toi qui a choisi myqli_ plutôt que PDO ?


    "...mysqli est pratique pour mettre à jour un ancien site,
    mais pour les nouveaux c'est PDO sans hésitation..."

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Merci pour ta réponse
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,

    1/ d'abord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$query="SELECT permission FROM seqadmin WHERE login ='$UserID' AND MD5(mdp) ='$Password'";
    Ici, tu requêtes sur le login ET le mdp.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query="SELECT permission FROM seqadmin WHERE login ='admin' ";
    Là, tu requêtes sur le login (uniquement).

    Ce ne sont pas les mêmes requêtes...
    exact, comme la première ne passait pas , je l'ai "déshabillée" au maximum et j'ai réessayé la seconde requête ( avec carrément le login dans le SELECT) qui ne renvoie rien non plus.

    Ces deux requêtes sont des essais successifs.

    J'ai allégé au maximum le code pour montrer que c'est vraiment la requête de base qui ne fonctionne pas
    Citation Envoyé par jreaux62 Voir le message
    2/ as-tu entendu parlé :
    • d'"injection SQL" ?
    • de "requêtes préparées"

    [/CODE]
    Je connais les injections et la supériorité de PDO pour s'en protéger. Maintenant , je suis en localhost pas en prod et préparé ou pas , si une requête élémentaire ne passe pas ...

    Citation Envoyé par jreaux62 Voir le message
    3/ C'est toi qui a choisi myqli_ plutôt que PDO ?


    J'ai choisi mysqli par paresse, mysql m'était familier et après un retour au clavier après plusieurs années, je n'ai pas été chercher plus loin .
    De plus il s'agit d'une mise à jour d'un vieux programme ( PHP 4 à l'origine) , j'ai n'ai pas l'intention de changer de type de base.
    Je vais tester avec PDO.
    Cordialement,
    onsmokepas

  4. #4
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Je viens de faire un test sur ma bdd avec ton code (et une autre table bien évidemment). Il fonctionne très bien. Tu dois avoir un problème de connexion ou une erreur dans le query.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    $con = new mysqli("localhost","root","", "tests"); 
    $query="SELECT * FROM `graphique`  ";
    if ($result = mysqli_query($con,$query)) {
        printf("Select a retourné %d lignes.\n", $result->num_rows);
        $result->close();
    }
    else
    {
      echo "aucun résultat";
    }


    Nom : 20170506_001.jpg
Affichages : 763
Taille : 12,3 Ko

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Bonsoir,

    Il suffit de pas grand chose pour décoincer la machine.

    le code fonctionne parfaitement lorsque j'insère avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $con = new mysqli("localhost","root","", "sequane");
    donc
    La partie qui ne fait pas son travail c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($con->connect_errno) {
        echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    	}
    reste à comprendre pourquoi la connexion se perd sur ce fichier là en particulier.
    C'est une autre histoire.
    on va donc dire résolu
    Merci pour le coup de main
    onsmokepas

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

Discussions similaires

  1. [RegEx] Syntaxe qui ne renvoie aucun résultat
    Par dut-dut dans le forum Langage
    Réponses: 4
    Dernier message: 24/12/2014, 00h53
  2. Requête qui ne retourne aucun résultat en timeout avec un top
    Par olysmar2 dans le forum Développement
    Réponses: 10
    Dernier message: 27/11/2014, 19h35
  3. Réponses: 8
    Dernier message: 04/06/2010, 15h50
  4. Code de calcul qui ne renvoie aucun résultat
    Par joniyyy dans le forum Langage
    Réponses: 9
    Dernier message: 04/10/2008, 19h33

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