INSERT INTO
Résolu/Fermé
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
-
Modifié par ^Abel^ le 12/12/2014 à 14:18
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 12 déc. 2014 à 22:52
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 12 déc. 2014 à 22:52
5 réponses
jordane45
Messages postés
38312
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié par jordane45 le 12/12/2014 à 14:30
Modifié par jordane45 le 12/12/2014 à 14:30
Bonjour,
Il faut, lorsqu'on a des soucis et qu'on ne sait pas où ça se trouve.. faire du DEBOGAGE.
Et pour ça .. on fait des ECHO .. des PRINT des PRINT_R .....
On ajoute des tests .. IF/else ... etc...
Bref.. essayes ça :
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Il faut, lorsqu'on a des soucis et qu'on ne sait pas où ça se trouve.. faire du DEBOGAGE.
Et pour ça .. on fait des ECHO .. des PRINT des PRINT_R .....
On ajoute des tests .. IF/else ... etc...
Bref.. essayes ça :
<?php $PARAM = array ( 'ID_ADHERENT' => isset($_REQUEST['id_adherent']) ? $_REQUEST['id_adherent'] : '', 'NOM' => isset($_POST['nom']) ? Security::clean(strtoupper($_POST['nom'])) : '', 'PRENOM' => isset($_POST['prenom']) ? Security::clean(ucfirst($_POST['prenom'])) : '', 'EMAIL' => isset($_POST['email']) ? Security::clean($_POST['email']) : '', 'NAISSANCE' => isset($_POST['naissance_3']) ? Security::clean($_POST['naissance_3']) . '-' . Security::clean($_POST['naissance_2']) . '-' . Security::clean($_POST['naissance_1']) : '', 'FIXE' => isset($_POST['fixe']) ? $_POST['fixe'] : '', 'MOBILE' => isset($_POST['mobile']) ? $_POST['mobile'] : '', 'ADRESSE' => isset($_POST['adresse']) ? Security::clean(ucfirst($_POST['adresse'])) : '', 'LIEU_DIT' => isset($_POST['lieu_dit']) ? Security::clean(ucfirst($_POST['lieu_dit'])) : '', 'CODE_POSTAL' => isset($_POST['code_postal']) ? $_POST['code_postal'] : '', 'VILLE' => isset($_POST['ville']) ? Security::clean(strtoupper($_POST['ville'])) : '', 'PSEUDO' => isset($_POST['pseudo']) ? Security::clean(strtolower($_POST['pseudo'])) : '', 'PASSWORD' => isset($_POST['password']) ? Security::clean(Security::hash($_POST['password'])) : '', 'ACTIF' => isset($_POST['actif']) ? Security::clean(strtolower($_POST['actif'])) : '', 'DEBUT' => isset($_POST['debut']) ? Security::clean(strtolower($_POST['debut'])) : '', 'FIN' => isset($_POST['fin']) ? Security::clean(strtolower($_POST['fin'])) : '', 'TOKEN' => isset($_POST['token']) ? Security::clean($_POST['token']) : '' ); // le temps des tests : echo "<pre>"; print_r($PARAM); echo "</pre>"; echo "<pre>"; print_r($_POST); echo "</pre>"; echo "<pre>"; print_r($_REQUEST); echo "</pre>"; if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': try{ //------------------------------------------------------------- // Presentee de cette maniere.. la requête est plus lisible : //------------------------------------------------------------- $sql = 'INSERT INTO tb_adherent ( nom , prenom , email , naissance , fixe , mobile , adresse , lieu_dit , code_postal , ville , pseudo , password , actif , debut , fin , token ) VALUES ( :nom , :prenom , :email , :naissance , :fixe , :mobile , :adresse , :lieu_dit , :code_postal , :ville , :pseudo , :password , :actif , :debut , :fin , :token )'; $requete = $bdd->prepare($sql); $requete->bindParam(':nom', $PARAM['NOM']); $requete->bindParam(':prenom', $PARAM['PRENOM']); $requete->bindParam(':email', $PARAM['EMAIL']); $requete->bindParam(':naissance', $PARAM['NAISSANCE']); $requete->bindParam(':fixe', $PARAM['FIXE']); $requete->bindParam(':mobile', $PARAM['MOBILE']); $requete->bindParam(':adresse', $PARAM['ADRESSE']); $requete->bindParam(':lieu_dit', $PARAM['LIEU_DIT']); $requete->bindParam(':code_postal', $PARAM['CODE_POSTAL']); $requete->bindParam(':ville', $PARAM['VILLE']); $requete->bindParam(':pseudo', $PARAM['PSEUDO']); $requete->bindParam(':password', $PARAM['PASSWORD']); $requete->bindParam(':actif', $PARAM['ACTIF']); $requete->bindParam(':debut', $PARAM['DEBUT']); $requete->bindParam(':fin', $PARAM['FIN']); $requete->bindParam(':token', $PARAM['TOKEN']); $requete->execute(); if($requete){ header('Location: index.php?body=compte_profil&type=compte'); }else{ echo "Erreur dans l'execution de la requête"; } } catch(Exception $e){ echo "<br>Erreur :".$e. "<br><pre> Requête :<br>".$sql."</pre>"; } break; default: echo "Action = " .$_REQUEST['action']; break; } // fin du switch }else{ echo "action : vide ou n'existe pas"; } ?>
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
12 déc. 2014 à 15:18
12 déc. 2014 à 15:18
Bonjour
Merci pour tes conseils j'ai pu trouver ce qui n'allait pas en fait j'avais oublié de mettre cet input dans mon formulaire
J'ai voulu faire 2 conditions je n'arrive pas à les incorporer dans le script peux tu m'aider s'il te plait je les ai mis en dessous de la case ajouter mais aucun résultat.
les 5 champs ne peuvent être vide
et si le login existe déjà
c'est mes 2 seul condition que je souhaiterai avoir.
Merci
Merci pour tes conseils j'ai pu trouver ce qui n'allait pas en fait j'avais oublié de mettre cet input dans mon formulaire
<input name="action" value="ajouter" type="hidden" />
J'ai voulu faire 2 conditions je n'arrive pas à les incorporer dans le script peux tu m'aider s'il te plait je les ai mis en dessous de la case ajouter mais aucun résultat.
les 5 champs ne peuvent être vide
et si le login existe déjà
c'est mes 2 seul condition que je souhaiterai avoir.
Merci
if(empty($nom) || empty($prenom) || empty($pseudo) || empty($password) || empty($debut)) { echo "Veuillez entrer les 5 champs obligatoirs<br/> ( Nom, Prénom, Login, Mot de passe et l'année Début )"; } else {}
if(!empty($'pseudo)) { echo 'Ce Login est déjà utilisé.'; } else {}
jordane45
Messages postés
38312
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
12 déc. 2014 à 16:31
12 déc. 2014 à 16:31
je les ai mis en dessous de la case ajouter mais aucun résultat.
Merci de nous montrer le code ainsi modifié.
NB : Par contre....ta deuxième fonction... tu as une quote en trop ..
if(!empty($'pseudo))
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
12 déc. 2014 à 18:16
12 déc. 2014 à 18:16
Bonjour
Je ne comprend pas bien j'ai essayé plusieurs conditions mais je n'y arrive pas juste 1 condition ça va mais plusieurs j'ai du mal.
J'ai fait une première condition pour ne pas insérer 2 fois le même membre.
Ensuite je voudrais pouvoir mettre si le pseudo existe déjà
et une condition afin de rendre obligatoire 5 champs
mon code
Je ne comprend pas bien j'ai essayé plusieurs conditions mais je n'y arrive pas juste 1 condition ça va mais plusieurs j'ai du mal.
J'ai fait une première condition pour ne pas insérer 2 fois le même membre.
Ensuite je voudrais pouvoir mettre si le pseudo existe déjà
if(!empty($donnees['pseudo'])) { echo 'Ce Login est déjà utilisé.'; } else {}
et une condition afin de rendre obligatoire 5 champs
if(empty($nom) || empty($prenom) || empty($pseudo) || empty($password) || empty($debut)) { echo "Veuillez entrer les 5 champs obligatoirs<br/> ( Nom, Prénom, Login, Mot de passe et l'année Début )"; } else {}
mon code
if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': //on sélectionne la table utilisateur et on cherche toutes les personnes portant le même nom et prénom et qui est membre actif $resultats = $bdd->query("SELECT * FROM tb_adherent WHERE nom = '". $PARAM['NOM'] ."' AND prenom = '". $PARAM['PRENOM'] ."' AND actif = '1'"); //on recupére le resultat de la requète dans un tableau $donnees $donnees = $resultats->fetch(PDO::FETCH_ASSOC); //si le nom est vide on insert... if (empty ($donnees['nom'])) { $sql = 'INSERT INTO tb_adherent (nom, prenom, email, naissance, fixe, mobile, adresse, lieu_dit, code_postal, ville, pseudo, password, actif, debut, fin, token) VALUES (:nom, :prenom, :email, :naissance, :fixe, :mobile, :adresse, :lieu_dit, :code_postal, :ville, :pseudo, :password, :actif, :debut, :fin, :token)'; $requete = $bdd->prepare($sql); $requete->bindParam(':nom', $PARAM['NOM']); $requete->bindParam(':prenom', $PARAM['PRENOM']); $requete->bindParam(':email', $PARAM['EMAIL']); $requete->bindParam(':naissance', $PARAM['NAISSANCE']); $requete->bindParam(':fixe', $PARAM['FIXE']); $requete->bindParam(':mobile', $PARAM['MOBILE']); $requete->bindParam(':adresse', $PARAM['ADRESSE']); $requete->bindParam(':lieu_dit', $PARAM['LIEU_DIT']); $requete->bindParam(':code_postal', $PARAM['CODE_POSTAL']); $requete->bindParam(':ville', $PARAM['VILLE']); $requete->bindParam(':pseudo', $PARAM['PSEUDO']); $requete->bindParam(':password', $PARAM['PASSWORD']); $requete->bindParam(':actif', $PARAM['ACTIF']); $requete->bindParam(':debut', $PARAM['DEBUT']); $requete->bindParam(':fin', $PARAM['FIN']); $requete->bindParam(':token', $PARAM['TOKEN']); $requete->execute(); } else { echo "Ce membre existe déjà...."; } break; } }
jordane45
Messages postés
38312
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié par jordane45 le 12/12/2014 à 18:50
Modifié par jordane45 le 12/12/2014 à 18:50
Ce code là .. il fonctionne ?
( pour vérifier si le user existe déjà..)
Donc ton souci ça serait seulement de rajouter la vérification que les champs ne sont pas vide c'est ça ???
( pour vérifier si le user existe déjà..)
Donc ton souci ça serait seulement de rajouter la vérification que les champs ne sont pas vide c'est ça ???
if(empty($nom) || empty($prenom) || empty($pseudo) || empty($password) || empty($debut)) { echo "<br>Veuillez entrer les 5 champs obligatoirs<br/> ( Nom, Prénom, Login, Mot de passe et l'année Début )"; }else{ if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': //on sélectionne la table utilisateur et on cherche toutes les personnes portant le même nom et prénom et qui est membre actif $resultats = $bdd->query("SELECT * FROM tb_adherent WHERE nom = '". $PARAM['NOM'] ."' AND prenom = '". $PARAM['PRENOM'] ."' AND actif = '1'"); //on recupére le resultat de la requète dans un tableau $donnees $donnees = $resultats->fetch(PDO::FETCH_ASSOC); //si le nom est vide on insert... if (empty ($donnees['nom'])) { $sql = 'INSERT INTO tb_adherent (nom, prenom, email, naissance, fixe, mobile, adresse, lieu_dit, code_postal, ville, pseudo, password, actif, debut, fin, token) VALUES (:nom, :prenom, :email, :naissance, :fixe, :mobile, :adresse, :lieu_dit, :code_postal, :ville, :pseudo, :password, :actif, :debut, :fin, :token)'; $requete = $bdd->prepare($sql); $requete->bindParam(':nom', $PARAM['NOM']); $requete->bindParam(':prenom', $PARAM['PRENOM']); $requete->bindParam(':email', $PARAM['EMAIL']); $requete->bindParam(':naissance', $PARAM['NAISSANCE']); $requete->bindParam(':fixe', $PARAM['FIXE']); $requete->bindParam(':mobile', $PARAM['MOBILE']); $requete->bindParam(':adresse', $PARAM['ADRESSE']); $requete->bindParam(':lieu_dit', $PARAM['LIEU_DIT']); $requete->bindParam(':code_postal', $PARAM['CODE_POSTAL']); $requete->bindParam(':ville', $PARAM['VILLE']); $requete->bindParam(':pseudo', $PARAM['PSEUDO']); $requete->bindParam(':password', $PARAM['PASSWORD']); $requete->bindParam(':actif', $PARAM['ACTIF']); $requete->bindParam(':debut', $PARAM['DEBUT']); $requete->bindParam(':fin', $PARAM['FIN']); $requete->bindParam(':token', $PARAM['TOKEN']); $requete->execute(); } else { echo "Ce membre existe déjà...."; } break; } } }
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
12 déc. 2014 à 19:25
12 déc. 2014 à 19:25
Bonjour
Merci de ton aide, je vais commencer par mettre une condition si le pseudo existe déjà voilà ce que j'ai fait par contre ça affiche bien l'erreur si un pseudo existe déjà mais ça INSERT quand même dans la BDD
Merci de ton aide, je vais commencer par mettre une condition si le pseudo existe déjà voilà ce que j'ai fait par contre ça affiche bien l'erreur si un pseudo existe déjà mais ça INSERT quand même dans la BDD
if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': //on sélectionne la table utilisateur et on cherche toutes les personnes portant le même nom et prénom et qui est membre actif $resultats = $bdd->query("SELECT * FROM tb_adherent WHERE nom = '". $PARAM['NOM'] ."' AND prenom = '". $PARAM['PRENOM'] ."' AND actif = '1'"); //on recupére le resultat de la requète dans un tableau $donnees $donnees = $resultats->fetch(PDO::FETCH_ASSOC); //si le nom est vide on insert... if (empty ($donnees['nom'])) { $verif = $bdd->prepare('SELECT pseudo FROM tb_adherent WHERE pseudo = :pseudo'); $verif->execute(array('pseudo' => $_POST['pseudo'])); $count = $verif->rowCount(); if ($count > 0) { echo 'Votre Pseudo est déjà utilisé, veuillez en choisir un autre...<br/>'; } $sql = 'INSERT INTO tb_adherent (nom, prenom, email, naissance, fixe, mobile, adresse, lieu_dit, code_postal, ville, pseudo, password, actif, debut, fin, token) VALUES (:nom, :prenom, :email, :naissance, :fixe, :mobile, :adresse, :lieu_dit, :code_postal, :ville, :pseudo, :password, :actif, :debut, :fin, :token)'; $requete = $bdd->prepare($sql); $requete->bindParam(':nom', $PARAM['NOM']); $requete->bindParam(':prenom', $PARAM['PRENOM']); $requete->bindParam(':email', $PARAM['EMAIL']); $requete->bindParam(':naissance', $PARAM['NAISSANCE']); $requete->bindParam(':fixe', $PARAM['FIXE']); $requete->bindParam(':mobile', $PARAM['MOBILE']); $requete->bindParam(':adresse', $PARAM['ADRESSE']); $requete->bindParam(':lieu_dit', $PARAM['LIEU_DIT']); $requete->bindParam(':code_postal', $PARAM['CODE_POSTAL']); $requete->bindParam(':ville', $PARAM['VILLE']); $requete->bindParam(':pseudo', $PARAM['PSEUDO']); $requete->bindParam(':password', $PARAM['PASSWORD']); $requete->bindParam(':actif', $PARAM['ACTIF']); $requete->bindParam(':debut', $PARAM['DEBUT']); $requete->bindParam(':fin', $PARAM['FIN']); $requete->bindParam(':token', $PARAM['TOKEN']); $requete->execute(); } else { echo "Ce membre existe déjà....<br/>"; } break; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
12 déc. 2014 à 22:52
12 déc. 2014 à 22:52
Bonjour
Merci j'ai résolu mon problème.
Cordialement
Merci j'ai résolu mon problème.
Cordialement