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 :

Erreur avec la fonction mysql fetch [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 80
    Points : 53
    Points
    53
    Par défaut Erreur avec la fonction mysql fetch
    Bonjour tout le monde,
    J’ai un formulaire de connexion dont voici le code :
    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
    28
    29
    <?php
    if(isset($_POST['connexion'])){
    	if(isset($_POST['id']) && ($_POST['mdp'])){
    		//Connexion a la base de donnees
    		$connexion=new mysqli("localhost","root","","testdb");
    		if($connexion->connect_errno){
    			echo"Erreur lors de la connexion au serveur et a la base de données: (" .$mysqli->connect_errno .") ". $mysqli->connect_error;
    		}
    		mysqli_query($connexion,"SET NAMES 'utf8'");
    		$id=$_POST['id'];$id=$connexion->real_escape_string($id);
    		$mdp=$_POST['mdp'];$mdp=$connexion->real_escape_string($mdp);
    		$sql=$connexion->query("SELECT nom_utili, mdp, id_grp_utili FROM utilisateurs WHERE nom_utili='".$id."' AND mdp='".$mdp."'");
    		$data=$sql->fetch_assoc();
    		echo'Connexion reussie';
    	}
    	else{
    			echo"Veuillez remplir tous les champs du formulaire";
    		}
    	}
    else{ 
    	echo"Veuillez soumettre le formulaire";
    }
    if(isset($_GET['logout'])){
    	session_start();
    	//destruction de la session
    	session_destroy();
    	header("location:/connexion/");
    }
    ?>
    Quand j’exécute la page j’ai le code d’erreur suivant :
    Fatal error: Call to a member function fetch_assoc() on a non-object in C:\wamp\www\connexion\fcon.php on line 13
    Nom : fetch.png
Affichages : 183
Taille : 93,9 Ko
    Merci d'avance!

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Le message signifie que $sql n'est pas un objet. Probablement parce que la requête a échoué.

    Ligne 13, après avoir fait la requête mais avant de consulter le résultat, ajoute ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($connexion->errno) {
       echo "Erreur MySQL {$connexion->errno} : {$connexion->error}";
    }
    Une remarque : il vaut mieux que tu places le session_start en début de code, car sinon il y a une possibilité que des echo se soient produits avant. Déplace tout le bloc if (isset($_GET['logout'])) au début de ton script, et ajoute un exit après le header pour éviter les imprévus.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre régulier
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Points : 90
    Points
    90
    Par défaut
    Vérifie bien si ta table utilisateurs existe bien dans la base de données et qu'elle contienne au moins un enregistrement!
    Par ce que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data=$sql->fetch_assoc();
    retourne un tableau associatif qui correspond à la ligne récupérée ou NULL s'il n'y a pas plus de lignes.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si une requête ne produit pas de résultat, fetch_assoc ne provoque pas une erreur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 80
    Points : 53
    Points
    53
    Par défaut
    Incroyable j'ai pu retrouver l'erreur en faisant ceci comme me la suggérer Watilin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($connexion->errno) {
       echo "Erreur MySQL {$connexion->errno} : {$connexion->error}";
    }
    Et le message d'erreur ma signalé que la table utilisateur n'existait pas et quand je l'ai crée et ajoutée une ligne sa fonctionné normalement! Pouff comme je peux être ... parfois!
    Merci à tous!

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

Discussions similaires

  1. Erreur avec la fonction Make .
    Par seboyoyo dans le forum Linux
    Réponses: 3
    Dernier message: 06/10/2007, 01h31
  2. [Formule]Erreur avec la fonction recherchev
    Par solorac dans le forum Excel
    Réponses: 4
    Dernier message: 19/04/2007, 17h09
  3. [XSLT] erreur avec les fonctions
    Par frouge dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 18/07/2006, 10h15
  4. [Mail] erreur avec utilisation fonction mail
    Par taka10 dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2006, 16h19
  5. erreur avec la fonction putfile() sur connexion FTP
    Par stefane1981 dans le forum C++
    Réponses: 2
    Dernier message: 23/09/2005, 09h13

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