Afficher le résultat d'une requête SQL
Codedu59
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour!
Je n'arrive pas à afficher les données de ma base de données... Quand je veux que le résultat de ce code PHP s'affiche:
Avec cette variable là:
La page s'affiche normalement mais hélas, le login lui ne s'affiche pas.
Pourriez-vous m'aider?
Merci!
Je n'arrive pas à afficher les données de ma base de données... Quand je veux que le résultat de ce code PHP s'affiche:
<?php session_start(); if (!isset($_SESSION['login'])) { header ('Location: ***'); exit(); include ('connexionBDD.php'); $base = mysql_connect ('***', '***', '***'); mysql_select_db ('***', $base); // on crée la requete SQL $sql = mysql_query ("SELECT * WHERE membre FROM login = '".$_SESSION["login"]."' ") ; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); mysql_free_result ($req); mysql_close (); } ?>
Avec cette variable là:
Bienvenue <?php echo $data['login']; ?>
La page s'affiche normalement mais hélas, le login lui ne s'affiche pas.
Pourriez-vous m'aider?
Merci!
A voir également:
- Afficher résultat requête sql php pdo
- Resultat foot - Télécharger - Vie quotidienne
- Afficher appdata - Guide
- Easy php - Télécharger - Divers Web & Internet
- Lexer resultat - Télécharger - Sport
- Afficher taille dossier windows - Guide
4 réponses
Déjà ta condition :
Arrête ton script PHP au exit(); Donc, tu ne passe pas dans le reste du code.
Ensuite,
Il n'y a pas redondance ?
Petit rappel, l'extension mysql est obsolète
J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
if (!isset($_SESSION['login'])) {
Arrête ton script PHP au exit(); Donc, tu ne passe pas dans le reste du code.
Ensuite,
include ('connexionBDD.php'); $base = mysql_connect ('***', '***', '***');
Il n'y a pas redondance ?
Petit rappel, l'extension mysql est obsolète
J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
J'ai changé le code en fonction de ce que vous m'avez dit mais je ne trouve pas l'erreur car toujours rien ne s'affiche
<?php session_start(); if (!isset($_SESSION['login'])) { header ('Location: ***'); $base = mysql_connect ('***', '***', '***'); mysql_select_db ('***', $base); $sql = mysql_query ("SELECT * FROM membre WHERE login = '".$_SESSION["login"]."' ") or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($sql); mysql_free_result ($data); mysql_close (); exit(); } ?>
Bon...
voici le code corrigé :
Par contre.... comme déjà dit auparavent.. tu utilises l'ancienne extension mysql... il serait préférable que tu passes à mysqli_* ou (je préfère...) la PDO.
Merci de lire ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
.
EDIT : Ajout de la vérification sur le résultat de la requête avant d'afficher le "bonjour.."
Cordialement,
Jordane
voici le code corrigé :
<?php //Démarrage "propre" des sessions : if(session_id() == '') { session_start(); } //--------------------------------- //Connexion à la BDD //--------------------------------- require_once 'connexionBDD.php'; //--------------------------------- //Récupération "propre" des variables //--------------------------------- $Session_login = !empty($_SESSION['login'])?$_SESSION['login']:NULL; if ($Session_login) { //--------------------------------- // récupération des informations du user //--------------------------------- //on met la requête dans une variable ($sql) $sql = "SELECT * FROM membre WHERE login = '$Session_login' "; // on execute la requete : $resultat = mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // retourne un tableau qui contient la première ligne de $resultat $data = mysql_fetch_array($resultat); mysql_free_result ($data); mysql_close (); }else{ //--------------------------------- //redirection si non connecté //--------------------------------- header ('Location: ***'); exit(); } ?> <!-- Le reste de ton code .. par exemple : --> <!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>TEST</title> </head> <body> <?php if(count($data)>0){ // si la requête a retourné un résultat echo " Bienvenue ".$data['login']: } ?> </body> </html>
Par contre.... comme déjà dit auparavent.. tu utilises l'ancienne extension mysql... il serait préférable que tu passes à mysqli_* ou (je préfère...) la PDO.
Merci de lire ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
.
EDIT : Ajout de la vérification sur le résultat de la requête avant d'afficher le "bonjour.."
Cordialement,
Jordane
Avec ce code:
Il y a toujours un problème vu que le login ne s'affiche pas et une erreur s'affiche:
Warning: mysql_free_result() expects parameter 1 to be resource, array given in *** on line 31
<?php //Démarrage "propre" des sessions : if(session_id() == '') { session_start(); } //--------------------------------- //Connexion à la BDD //--------------------------------- require_once ('connexionBDD.php'); //--------------------------------- //Récupération "propre" des variables //--------------------------------- $Session_login = !empty($_SESSION['login'])?$_SESSION['login']:NULL; if ($Session_login) { //--------------------------------- // récupération des informations du user //--------------------------------- //on met la requête dans une variable ($sql) $sql = "SELECT * FROM membre WHERE login = '$Session_login' "; // on execute la requete : $resultat = mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // retourne un tableau qui contient la première ligne de $resultat $data = mysql_fetch_array($resultat); mysql_free_result ($data); mysql_close (); } else{ //--------------------------------- //redirection si non connecté //--------------------------------- header ('Location: ***'); exit(); } ?>
Il y a toujours un problème vu que le login ne s'affiche pas et une erreur s'affiche:
Warning: mysql_free_result() expects parameter 1 to be resource, array given in *** on line 31
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
Oui en effet.. j'ai bêtement copié ton code....
Modifie comme ceci :
Modifie comme ceci :
// on execute la requete : $resultat = mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // retourne un tableau qui contient la première ligne de $resultat $data = mysql_fetch_array($resultat); mysql_free_result($resultat); mysql_close ();