Ma requête sql ne ramène rien
Résolu/Fermé
S@wrou
Messages postés
8
Date d'inscription
mercredi 29 janvier 2014
Statut
Membre
Dernière intervention
22 avril 2015
-
29 janv. 2014 à 15:29
Utilisateur anonyme - 29 janv. 2014 à 22:39
Utilisateur anonyme - 29 janv. 2014 à 22:39
A voir également:
- Ma requête sql ne ramène rien
- Sql lister les tables ✓ - Forum Programmation
- Blob sql ✓ - Forum Webmastering
- Récupération serveur sql - Télécharger - Gestion de données
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- La requête graphql n’est pas autorisée facebook - Forum Facebook
10 réponses
Utilisateur anonyme
29 janv. 2014 à 17:59
29 janv. 2014 à 17:59
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
Utilisateur anonyme
29 janv. 2014 à 15:35
29 janv. 2014 à 15:35
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.
S@wrou
Messages postés
8
Date d'inscription
mercredi 29 janvier 2014
Statut
Membre
Dernière intervention
22 avril 2015
29 janv. 2014 à 15:45
29 janv. 2014 à 15:45
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.
Utilisateur anonyme
29 janv. 2014 à 15:59
29 janv. 2014 à 15:59
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
S@wrou
Messages postés
8
Date d'inscription
mercredi 29 janvier 2014
Statut
Membre
Dernière intervention
22 avril 2015
29 janv. 2014 à 16:09
29 janv. 2014 à 16:09
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.
Utilisateur anonyme
Modifié par le père. le 29/01/2014 à 16:23
Modifié par le père. le 29/01/2014 à 16:23
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 ?
S@wrou
Messages postés
8
Date d'inscription
mercredi 29 janvier 2014
Statut
Membre
Dernière intervention
22 avril 2015
29 janv. 2014 à 16:33
29 janv. 2014 à 16:33
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
Utilisateur anonyme
Modifié par le père. le 29/01/2014 à 17:01
Modifié par le père. le 29/01/2014 à 17:01
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.
S@wrou
Messages postés
8
Date d'inscription
mercredi 29 janvier 2014
Statut
Membre
Dernière intervention
22 avril 2015
29 janv. 2014 à 17:30
29 janv. 2014 à 17:30
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 :)
S@wrou
Messages postés
8
Date d'inscription
mercredi 29 janvier 2014
Statut
Membre
Dernière intervention
22 avril 2015
29 janv. 2014 à 18:06
29 janv. 2014 à 18:06
Rien que cette petite modification et tout marche comme sur des roulettes!!
Vous êtes le meilleur!!
Merci infiniment pour votre aide :)
Vous êtes le meilleur!!
Merci infiniment pour votre aide :)