PHP Warning: mysql_fetch_array() expects parameter 1 to be ....
Résolu
Madriax
Messages postés
103
Statut
Membre
-
Madriax Messages postés 103 Statut Membre -
Madriax Messages postés 103 Statut Membre -
Bonjour, bonsoir.
Cela fait déjà plusieurs heures que je lis et relis mon code, mais rien ne marche. Je recois l'erreur suivante de php:
PHP Warning: mysql_fetch_array() expects parameter 1 to be resource
Voici mon code:
Merci d'avance pour votre aide.
Alexandre
Cela fait déjà plusieurs heures que je lis et relis mon code, mais rien ne marche. Je recois l'erreur suivante de php:
PHP Warning: mysql_fetch_array() expects parameter 1 to be resource
Voici mon code:
<?php
if (isset($_POST['register'])) {
if (isset($_POST['pseudo']) AND !empty($_POST['pseudo']) AND isset($_POST['email']) AND !empty($_POST['email']) AND isset($_POST['pass1']) AND !empty($_POST['pass1']) AND isset($_POST['pass2']) AND !empty($_POST['pass2']) AND isset($_POST['nom']) AND !empty($_POST['nom']) AND isset($_POST['prenom']) AND !empty($_POST['prenom']) AND isset($_POST['birth']) AND !empty($_POST['birth'])) {
$pseudo = mysql_real_escape_string($_POST['pseudo']);
$email = mysql_real_escape_string($_POST['email']);
$pass1 = sha1($_POST['pass1']);
$pass2 = sha1($_POST['pass2']);
$nom = mysql_real_escape_string($_POST['nom']);
$prenom = mysql_real_escape_string($_POST['prenom']);
$birth = mysql_real_escape_string($_POST['birth']);
if ($pass1 == $pass2) {
$req1 = mysql_query('SELECT pseudo FROM membres WHERE pseudo = "'.$pseudo.'"');
$rep1 = mysql_fetch_array($req1);
if (!isset($rep1['pseudo'])) {
$req2 = mysql_query('SELECT email FROM membres WHERE email = "'.$email.'"');
$rep2 = mysql_fetch_array($req2);
if (!isset($rep2['email'])) {
$req3 = mysql_query('SELECT nom FROM membres WHERE nom = "'.$nom.'"');
$rep3 = mysql_fetch_array($req3);
if (!isset($rep3['nom'])) {
$register = mysql_query('INSERT INTO membres VALUES("","'.$pseudo.'","'.$email.'","'.$pass1.'","'.$nom.'","'.$prenom.'","'.$birth.'","0","")');
?>
<div class="container">
<div class="row">
<div class="alert alert-dismissible alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
<h4>Félicitation!</h4>
<p>Votre compté est maintenant crée !</p>
<br/>
<a href="connect.php" class="btn btn-info">Connection</a>
</div>
</div>
</div>
<?php
} else {
$error_nom = 1;
$error = 'Ce nom est déjà enregistré';
}
} else {
$error_email = 1;
$error = 'Cet email est déjà enregistré';
}
} else {
$error_pseudo = 1;
$error = 'Le pseudo est déjà enregistré.';
}
} else {
$error_pass = 1;
$error = 'Les mots de passe sont différents';
}
} else {
$error_all = 1;
$error = 'Veuillez remplir tout les champs.';
}
}
Merci d'avance pour votre aide.
Alexandre
A voir également:
- PHP Warning: mysql_fetch_array() expects parameter 1 to be ....
- Expert php - Télécharger - Langages
- Easy php - Télécharger - Divers Web & Internet
- Cpu fan fail warning control - Forum Windows
- Php alert ✓ - Forum PHP
- Warning your dimm1 and dimm2 module organization is not same please check it - Forum PC portable
3 réponses
Salut,
C'est probablement dû au fait que ta requête provoque une erreur.
Exécute ta requête de la manière suivante pour voir :
C'est probablement dû au fait que ta requête provoque une erreur.
Exécute ta requête de la manière suivante pour voir :
$req1 = mysql_query('SELECT pseudo FROM membres WHERE pseudo = "'.$pseudo.'"') or die("ERREUR SQL !!!<br/>".mysql_error());
Pour commencer :
Petit rappel, l'extension mysql est obsolète
Le message indique que tu as une erreur dans ta requête SQL.
Il est d'usage lors d'un INSERT INTO de préciser les champs concernés par l'ajout, cela permet de lire plus facilement la requête et d'éviter les problèmes d'inversion de champs.
Aussi, les champs numériques n'ont pas besoin de " pour délimiter leur valeur.
Précision, les champs auto-incrémentés n'ont pas à être assignés dans un INSERT INTO, MySql s'en charge tout seul.
Petit rappel, l'extension mysql est obsolète
Le message indique que tu as une erreur dans ta requête SQL.
Il est d'usage lors d'un INSERT INTO de préciser les champs concernés par l'ajout, cela permet de lire plus facilement la requête et d'éviter les problèmes d'inversion de champs.
Aussi, les champs numériques n'ont pas besoin de " pour délimiter leur valeur.
Précision, les champs auto-incrémentés n'ont pas à être assignés dans un INSERT INTO, MySql s'en charge tout seul.
Bonjour NHenry,
Merci pour le partage de cet article, je comprends donc mieux pourquoi ma connexion à la base de donnée ne marche donc pas.
Merci aussi pour toutes ces précisions ! Je vais donc retirer les "" pour les champs numériques.
Et je suis déjà au courant que les champs auto-incrémentés n'ont pas à être assignés.
Je pense donc me tourner vers PDO afin de résoudre mes problèmes.
Cordialement,
Merci pour le partage de cet article, je comprends donc mieux pourquoi ma connexion à la base de donnée ne marche donc pas.
Merci aussi pour toutes ces précisions ! Je vais donc retirer les "" pour les champs numériques.
Et je suis déjà au courant que les champs auto-incrémentés n'ont pas à être assignés.
Je pense donc me tourner vers PDO afin de résoudre mes problèmes.
Cordialement,
Merci pour votre réponse, je sais que mon code est assez illisible, mais je ne suis pas encore un expert en PHP :/
Et merci pour vos conseil :-)