PHP Warning: mysql_fetch_array() expects parameter 1 to be ....
Résolu
Madriax
Messages postés
96
Date d'inscription
Statut
Membre
Dernière intervention
-
Madriax Messages postés 96 Date d'inscription Statut Membre Dernière intervention -
Madriax Messages postés 96 Date d'inscription Statut Membre Dernière intervention -
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 ....
- Easy php - Télécharger - Divers Web & Internet
- Warning zone telechargement - Accueil - Outils
- Expert php pinterest - Télécharger - Langages
- Téléchargement et streaming illégal : voici les adresses des sites pirates que les FAI vont bloquer - Accueil - Services en ligne
- Symbole warning word - Forum Word
3 réponses
Hello,
tu devrais réécrire ton code déjà, les if-else imbriqués, c'est pas bon. Pareil pour le énorme if avec les empty et isset qui peut-être réécris avec un foreach pour améliorer la lisibilité et éviter de se répéter.
tu devrais réécrire ton code déjà, les if-else imbriqués, c'est pas bon. Pareil pour le énorme if avec les empty et isset qui peut-être réécris avec un foreach pour améliorer la lisibilité et éviter de se répéter.
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 :-)