Erreur php mysql
benjy56
Messages postés
150
Date d'inscription
Statut
Membre
Dernière intervention
-
jlfoot -
jlfoot -
bonjour,
j'ai une erreur mysql php qui marque : mysql_fetch_array(): supplied argument is not a valid MySQL result resource
ma base de donnee est test
voici le code :
<html>
<body><form name="forumulaire">
<p>pseudo : <input type="text" name="pseudo" size="20"></p>
<p>password : <input type="password" name="passe" size="20"></p>
</form>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
//Je crypte $passe avec la fonction "sha1"
$passe = sha1($passe);
$nbre = mysql_query("SELECT COUNT(*) AS exist FROM connexion WHERE pseudo='$pseudo'");
$donnees = mysql_fetch_array($nbre);
if($donnees['exist'] != 0) //si le pseudo existe
{
$quete = mysql_query("SELECT * FROM connexion WHERE pseudo='$pseudo'");
$infos = mysql_fetch_array($quete);
if($passe == $infos['passe'])
{
include("verification.php");
}
else //Si ce n'est pas le bon couple pseudo/mdp
{
echo 'Vous n\'avez pas rentré les bons identifiants';
}
}?>
</body>
</html>
merci de me repondre et surtout vous pouvez me faire des remarque :-)
salut
j'ai une erreur mysql php qui marque : mysql_fetch_array(): supplied argument is not a valid MySQL result resource
ma base de donnee est test
voici le code :
<html>
<body><form name="forumulaire">
<p>pseudo : <input type="text" name="pseudo" size="20"></p>
<p>password : <input type="password" name="passe" size="20"></p>
</form>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
//Je crypte $passe avec la fonction "sha1"
$passe = sha1($passe);
$nbre = mysql_query("SELECT COUNT(*) AS exist FROM connexion WHERE pseudo='$pseudo'");
$donnees = mysql_fetch_array($nbre);
if($donnees['exist'] != 0) //si le pseudo existe
{
$quete = mysql_query("SELECT * FROM connexion WHERE pseudo='$pseudo'");
$infos = mysql_fetch_array($quete);
if($passe == $infos['passe'])
{
include("verification.php");
}
else //Si ce n'est pas le bon couple pseudo/mdp
{
echo 'Vous n\'avez pas rentré les bons identifiants';
}
}?>
</body>
</html>
merci de me repondre et surtout vous pouvez me faire des remarque :-)
salut
A voir également:
- Erreur php mysql
- Mysql community server - Télécharger - Bases de données
- Erreur 0x80070643 - Accueil - Windows
- Expert php pinterest - Télécharger - Langages
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
16 réponses
Ton erreur se trouve ci-dessous :
mysql_connect("localhost", "root", "");
mysql_select_db("test");
Ta base de donnée est en local "localhost"
Pas étonnant que tu as ce message d'accès à ta base de donné
Il faut mettre si tu es hébergé chez free par exemple
"sql.free.fr" lenomdelabase le mot de passe
et le nom de la base en bas "test" par le vrai nom et cela
devrait marcher
mysql_connect("localhost", "root", "");
mysql_select_db("test");
Ta base de donnée est en local "localhost"
Pas étonnant que tu as ce message d'accès à ta base de donné
Il faut mettre si tu es hébergé chez free par exemple
"sql.free.fr" lenomdelabase le mot de passe
et le nom de la base en bas "test" par le vrai nom et cela
devrait marcher
Quand on créé une connexion, il faut affecter cette connexion à une variable pour créer une référence en mémoire vers la connexion créée.
Il faut donc faire :
$link = @mysql_connect( /* les paramètres qui vont bien pour se connecter */);
Ce lien va servir à chaque appel/traitement vers la base de données.
Il faut ensuite passer la référence vers la connexion (cad $link) à chaque appel de fonction mysql.
Exemple:
@mysql_select_db("mabase", $link);
En l'occurence, tout est dans ton message d'erreur :
Etant donné qu'il n'y a pas de référence vers la connexion mysql en mémoire, elle est purement et simplement supprimée au bout d'un certain temps (qui varie en fonction du système d'exploitation)
La fonction mysql_fetch_array() ne trouve pas de connexion mysql, donc renvoie une erreur...
Bonne soirée !
Il faut donc faire :
$link = @mysql_connect( /* les paramètres qui vont bien pour se connecter */);
Ce lien va servir à chaque appel/traitement vers la base de données.
Il faut ensuite passer la référence vers la connexion (cad $link) à chaque appel de fonction mysql.
Exemple:
@mysql_select_db("mabase", $link);
En l'occurence, tout est dans ton message d'erreur :
Etant donné qu'il n'y a pas de référence vers la connexion mysql en mémoire, elle est purement et simplement supprimée au bout d'un certain temps (qui varie en fonction du système d'exploitation)
La fonction mysql_fetch_array() ne trouve pas de connexion mysql, donc renvoie une erreur...
Bonne soirée !
desole mais j'ai pas vraiment compris la parce que tu mais autre script par exemple les news ou le minichat ca marche comme des roulette alors que j'utilise une base de donnee
tu peus me redire
tu peus me redire
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
voici le code :
<html>
<body><form name="forumulaire">
<p>pseudo : <input type="text" name="pseudo" size="20"></p>
<p>password : <input type="password" name="passe" size="20"></p>
</form>
<?php
$link = @mysql_connect("localhost", "root", "");
@mysql_select_db("test", $link);
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
//Je crypte $passe avec la fonction "sha1"
$passe = sha1($passe);
$nbre = mysql_query("SELECT COUNT(*) AS exist FROM connexion WHERE pseudo='$pseudo'");
$donnees = mysql_fetch_array($nbre);
if($donnees['exist'] != 0) //si le pseudo existe
{
$quete = mysql_query("SELECT * FROM connexion WHERE pseudo='$pseudo'");
$infos = mysql_fetch_array($quete);
if($passe == $infos['passe'])
{
include("verification.php");
}
else //Si ce n'est pas le bon couple pseudo/mdp
{
echo 'Vous n\'avez pas rentré les bons identifiants';
}
}?>
</body>
</html>
ca ne marche quand meme pas :-(
erreur :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\inscription\connexion.php on line 14
repondez moi mercie
<html>
<body><form name="forumulaire">
<p>pseudo : <input type="text" name="pseudo" size="20"></p>
<p>password : <input type="password" name="passe" size="20"></p>
</form>
<?php
$link = @mysql_connect("localhost", "root", "");
@mysql_select_db("test", $link);
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
//Je crypte $passe avec la fonction "sha1"
$passe = sha1($passe);
$nbre = mysql_query("SELECT COUNT(*) AS exist FROM connexion WHERE pseudo='$pseudo'");
$donnees = mysql_fetch_array($nbre);
if($donnees['exist'] != 0) //si le pseudo existe
{
$quete = mysql_query("SELECT * FROM connexion WHERE pseudo='$pseudo'");
$infos = mysql_fetch_array($quete);
if($passe == $infos['passe'])
{
include("verification.php");
}
else //Si ce n'est pas le bon couple pseudo/mdp
{
echo 'Vous n\'avez pas rentré les bons identifiants';
}
}?>
</body>
</html>
ca ne marche quand meme pas :-(
erreur :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\inscription\connexion.php on line 14
repondez moi mercie
Précédemment énoncé, je le répète un peu plus fort :
Il faut ensuite passer la référence vers la connexion (cad $link) à chaque appel de fonction mysql
Toutes les fonctions qui commençent par mysql_ ... doivent recevoir la référence de la connexion active.
Il faut ensuite passer la référence vers la connexion (cad $link) à chaque appel de fonction mysql
Toutes les fonctions qui commençent par mysql_ ... doivent recevoir la référence de la connexion active.
salut
un peu plus fort... euh
j'ai que 10ans je comprend pas ce que tu me dis (cad &link)...
tu peut me faire un exemple
s'il te plait
A++++++
un peu plus fort... euh
j'ai que 10ans je comprend pas ce que tu me dis (cad &link)...
tu peut me faire un exemple
s'il te plait
A++++++
Bonjour benji,
Ton code modifié de manière à illustrer ce que je t'ai dit.
A vérifier, l'ordre des paramètres dans les différents appels de fonctions mysql.
A vérifier aussi l'appel dans ton formulaire...
Il faudrait au moins ceci pour qu'un formulaire fonctionne :
Où l'attribut action contient le fichier qui va faire les traitements nécessaires
et l'attribut method contient le mode de transmission des informations (GET ou POST principalement).
D'autres attributs existent, et peuvent être importants... mais ils varient en fonction du contexte de l'application que tu dois développer.
Pour information, le caractère arobase @ devant les fonctions mysql sert uniquement à ôter les messages d'erreur pouvant survenir à l'execution. Pour le développement, il est donc interressant de ne pas les mettre.
Dans un environnement de production, une seule référence à un système de fichiers peut être la source d'une faille de sécurité, c'est pourquoi on désactive ces messages d'erreurs (ou on utilise des handlers spécifiques développés pour gérer ce type d'erreurs, sans rien afficher à l'écran qu'un message à dimension humaine dy style : "Un problème est survenu lors de la récupération des données dans la base."
Ca ne risquait pas de marcher si ton serveur de base de données (mysql) n'était pas démarré.
Windows -> Services -> MySQL -> Start
L'âge est une variable que certains font varier de manière aléatoire. Par internet, les assertions ne sont pas des faits. Et la confiance reste l'histoire de rencontres dans le monde réel.
Ton code modifié de manière à illustrer ce que je t'ai dit.
A vérifier, l'ordre des paramètres dans les différents appels de fonctions mysql.
A vérifier aussi l'appel dans ton formulaire...
<form name="">
Il faudrait au moins ceci pour qu'un formulaire fonctionne :
<form name="" action="traitements.php" method="post">
Où l'attribut action contient le fichier qui va faire les traitements nécessaires
et l'attribut method contient le mode de transmission des informations (GET ou POST principalement).
D'autres attributs existent, et peuvent être importants... mais ils varient en fonction du contexte de l'application que tu dois développer.
Pour information, le caractère arobase @ devant les fonctions mysql sert uniquement à ôter les messages d'erreur pouvant survenir à l'execution. Pour le développement, il est donc interressant de ne pas les mettre.
Dans un environnement de production, une seule référence à un système de fichiers peut être la source d'une faille de sécurité, c'est pourquoi on désactive ces messages d'erreurs (ou on utilise des handlers spécifiques développés pour gérer ce type d'erreurs, sans rien afficher à l'écran qu'un message à dimension humaine dy style : "Un problème est survenu lors de la récupération des données dans la base."
Ca ne risquait pas de marcher si ton serveur de base de données (mysql) n'était pas démarré.
Windows -> Services -> MySQL -> Start
L'âge est une variable que certains font varier de manière aléatoire. Par internet, les assertions ne sont pas des faits. Et la confiance reste l'histoire de rencontres dans le monde réel.
<html> <body><form name="forumulaire"> <p>pseudo : <input type="text" name="pseudo" size="20"></p> <p>password : <input type="password" name="passe" size="20"></p> </form> <?php $link = @mysql_connect("localhost", "root", ""); @mysql_select_db("test", $link); $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']), $link); $passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']), $link); //Je crypte $passe avec la fonction "sha1" $passe = sha1($passe); $nbre = mysql_query($link, "SELECT COUNT(*) AS exist FROM connexion WHERE pseudo='$pseudo'"); $donnees = mysql_fetch_array($nbre, $link); if($donnees['exist'] != 0) //si le pseudo existe { $quete = mysql_query($link, "SELECT * FROM connexion WHERE pseudo='$pseudo'"); $infos = mysql_fetch_array($quete,$link); if($passe == $infos['passe']) { include("verification.php"); } else //Si ce n'est pas le bon couple pseudo/mdp { echo 'Vous n\'avez pas rentré les bons identifiants'; } }?> </body> </html>
1. Le nom de ton formulaire, tu dois faire les modifications au début de ton code (que j'ai reposté sans corriger à ce niveau, étant donné que les corrections sont évidentes)...
En l'état, cela ne risque pas de marcher... et ajoutes-y les attributs dont je t'ai parlé... name="" action="" et method="" ...
2. la documentation, ça peut servir des fois ... une complète, téléchargeable et gratuite se trouve sur ce site pas tip top, mais c'est pas mal pour commencer : http://www.nexen.net et tu cherches la doc mysql et la doc php.
Tu les télécharges, et tu les lis tranquillement....
3. après, tu sauras pourquoi ça ne marche pas, ton mysql_fetch_array()
En l'état, cela ne risque pas de marcher... et ajoutes-y les attributs dont je t'ai parlé... name="" action="" et method="" ...
2. la documentation, ça peut servir des fois ... une complète, téléchargeable et gratuite se trouve sur ce site pas tip top, mais c'est pas mal pour commencer : http://www.nexen.net et tu cherches la doc mysql et la doc php.
Tu les télécharges, et tu les lis tranquillement....
3. après, tu sauras pourquoi ça ne marche pas, ton mysql_fetch_array()
ça ne marche toujours pas :(
mais j'ai trouve un notre sujet http://www.commentcamarche.net/forum/affich 7542326 message d erreur#dernier
mercie quand meme.
mais j'ai trouve un notre sujet http://www.commentcamarche.net/forum/affich 7542326 message d erreur#dernier
mercie quand meme.
Ton erreur se trouve ci-dessous :
remplace donc ceci :
mysql_connect("localhost", "root", "");
mysql_select_db("test");
par
mysql_connect("ladressedetabasededonnee", "lenomdelabasededonnee", "lemotdepassedelabasededonnee");
mysql_select_db("lenomdetabasededonnee");
cela devrait marcher. Toi seul et ton administrateur de réseau connait ces informations importantes pour te connecter à ta base de donnée
remplace donc ceci :
mysql_connect("localhost", "root", "");
mysql_select_db("test");
par
mysql_connect("ladressedetabasededonnee", "lenomdelabasededonnee", "lemotdepassedelabasededonnee");
mysql_select_db("lenomdetabasededonnee");
cela devrait marcher. Toi seul et ton administrateur de réseau connait ces informations importantes pour te connecter à ta base de donnée