Ma requête sql ne ramène rien
Résolu
S@wrou
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je suis en train de développer un site web avec php et MySQL. J'ai déjà fini la conception de la base de données et rempli celle ci grâce à phpMyadmin . Seulement dans mon code les requêtes sql ne ramènent aucune information.
La fonction mysqli_query() échoue à chaque fois.
Alors que le code arrive à se connecter au serveur et à la base de données correctement.
A l'aide s'il vous plait!! c'est la galère depuis plusieurs jours :)
Je suis en train de développer un site web avec php et MySQL. J'ai déjà fini la conception de la base de données et rempli celle ci grâce à phpMyadmin . Seulement dans mon code les requêtes sql ne ramènent aucune information.
La fonction mysqli_query() échoue à chaque fois.
Alors que le code arrive à se connecter au serveur et à la base de données correctement.
A l'aide s'il vous plait!! c'est la galère depuis plusieurs jours :)
A voir également:
- Ma requête sql ne ramène rien
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Réseaux sociaux
- Jointure sql ✓ - Forum MySQL
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
10 réponses
global $link = mysqli_connect($host, $user,$passwd);
Je ne pense pas (je ne suis pas sûr non plus) qu'on puisse à la fois déclarer une variable globale et l'initialiser.
Il faut faire les deux séparément;
global $link;
$link = mysqli_connect($host, $user,$passwd);
et il est absolument certain qu'il faut global $link dans toutes les fonctions qui l'utilisent
Je ne pense pas (je ne suis pas sûr non plus) qu'on puisse à la fois déclarer une variable globale et l'initialiser.
Il faut faire les deux séparément;
global $link;
$link = mysqli_connect($host, $user,$passwd);
et il est absolument certain qu'il faut global $link dans toutes les fonctions qui l'utilisent
Bonjour
Nous ne sommes pas devins.
Pour te répondre, il faut que tu donnes le message d'erreur exact que tu as, et la partie de code correspondant.
Nous ne sommes pas devins.
Pour te répondre, il faut que tu donnes le message d'erreur exact que tu as, et la partie de code correspondant.
Merci de votre réponse.
En fait dans mon code j'ai deux fonctions qui sont responsables de l'extraction des donnees de ma base.Les voici:
function requete_SQL($strSQL) {
//$result = mysql_query($strSQL);
$result = mysqli_query($strSQL);
if (!$result) {
$message = 'Echec de la récupération des donnees..';
die($message);
}
return $result;
}
function extraction_infos_DB() {
$strSQL = 'SELECT * FROM 'pages' WHERE 'Id_page' = '.$_ENV['id_page'];
$resultat = requete_SQL($strSQL);
//$tabl_result = mysql_fetch_array($resultat);
$tabl_result = mysqli_fetch_array($resultat);
}
Le blème c'est que la fonction mysqli_query($strSQL) tombe toujours sur le message d'erreur. Je vous remercie d'avance pour vos idéees.
En fait dans mon code j'ai deux fonctions qui sont responsables de l'extraction des donnees de ma base.Les voici:
function requete_SQL($strSQL) {
//$result = mysql_query($strSQL);
$result = mysqli_query($strSQL);
if (!$result) {
$message = 'Echec de la récupération des donnees..';
die($message);
}
return $result;
}
function extraction_infos_DB() {
$strSQL = 'SELECT * FROM 'pages' WHERE 'Id_page' = '.$_ENV['id_page'];
$resultat = requete_SQL($strSQL);
//$tabl_result = mysql_fetch_array($resultat);
$tabl_result = mysqli_fetch_array($resultat);
}
Le blème c'est que la fonction mysqli_query($strSQL) tombe toujours sur le message d'erreur. Je vous remercie d'avance pour vos idéees.
Essaye
Ça ne va pas régler le problème, mais ça va nous donner des précisions sur la cause réelle de l'erreur
$result = mysqli_query($strSQL) or die (mysqli_error());
Ça ne va pas régler le problème, mais ça va nous donner des précisions sur la cause réelle de l'erreur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
La fonction mysqli_error() n'affiche rien j'ai trouvé cela un peu surprenant aussi.
Aucune information sur le type d'erreur.
Merci encore pour d'autres tentatives.
Aucune information sur le type d'erreur.
Merci encore pour d'autres tentatives.
Ce n'est pas un peu surprenant, ça l'est beaucoup. Je dirais même impossible.
Tu dis bien que ça affiche 'Echec de la récupération des donnees' sans afficher le message de mysqli_error() ?
Peux-tu me montrer ton code modifié avec mon instruction ?
Tu dis bien que ça affiche 'Echec de la récupération des donnees' sans afficher le message de mysqli_error() ?
Peux-tu me montrer ton code modifié avec mon instruction ?
Voici comment j'ai modifié le code avec votre instruction:
Et là l'exécution de la fonction n'affiche rien.
Merci encore
function requete_SQL($strSQL) {
$result = mysqli_query($strSQL);
if (!$result) {
die (mysqli_error());
}
return $result;
}
Et là l'exécution de la fonction n'affiche rien.
Merci encore
Je me suis fait piéger par mysqli dont je n'ai pas l'habitude (j'utilise PDO)
Les fonctions mysqli en mode prcédural demandent l'utilisation du paramètre de connexion (celui fourni par mysqli_connect). Pour pouvoir l'utiliser, il faut qu'il soit global.
Si tu fais ton $lnk=mysqli_connect... à l'intérieur d'une fonction, n'oublie pas de mettre global $lnk aussi dans cette fonction.
Je pense aussi que tu vas être amené à modifier ton mysqli_fetch_array, mais ça, ce sera plus tard.
Les fonctions mysqli en mode prcédural demandent l'utilisation du paramètre de connexion (celui fourni par mysqli_connect). Pour pouvoir l'utiliser, il faut qu'il soit global.
function requete_SQL($strSQL) { global $lnk; // ça dépend de la variable que tu as utilisée pour mysqli_connect) //$result = mysql_query($strSQL); $result = mysqli_query($lnk,$strSQL) or die (mysqli_error($lnk)); if (!$result) { $message = 'Echec de la récupération des donnees..'; die($message); } return $result; }
Si tu fais ton $lnk=mysqli_connect... à l'intérieur d'une fonction, n'oublie pas de mettre global $lnk aussi dans cette fonction.
Je pense aussi que tu vas être amené à modifier ton mysqli_fetch_array, mais ça, ce sera plus tard.
voici comment j'avais défini la fonction $link dans mon code et elle marche correctement ou du moins pour la fonction de connexion:
Voici comment j'ai utilisé cette variable dans les deux autres fonctions:
Je vous donne tout le code pour que vous m'aidiez à voir là ou ca bloque parce que ça ne marche toujours pas. En définissant $link comme globale dans la premiere fonction ai je vraiment besoin de la déclarer encore dans les autres. J'ai essayé sans nouvelle déclaration mais là aussi ca ne passe pas.
Merci de votre aide encore :)
function connexion_DB($name_DB) {
// Déclaration des paramètres de connexion
$host = "localhost";
$user = "root";
$bdd = $name_DB;
$passwd = "admin";
global $link = mysqli_connect($host, $user,$passwd);
if(!$link){
echo "Erreur de connexion au serveur";
}
mysqli_select_db($link, $bdd);
}
Voici comment j'ai utilisé cette variable dans les deux autres fonctions:
function requete_SQL($strSQL) { global $link; $result = mysqli_query($link, $strSQL); if (!$result) { die (mysqli_error($link)); } return $result; } function extraction_infos_DB() { $strSQL = 'SELECT * FROM 'pages' WHERE 'Id_page' = '.$_ENV['id_page']; $resultat = requete_SQL($strSQL); $tabl_result = mysqli_fetch_array($resultat); }
Je vous donne tout le code pour que vous m'aidiez à voir là ou ca bloque parce que ça ne marche toujours pas. En définissant $link comme globale dans la premiere fonction ai je vraiment besoin de la déclarer encore dans les autres. J'ai essayé sans nouvelle déclaration mais là aussi ca ne passe pas.
Merci de votre aide encore :)