Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2572 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Alerte doublons + update

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Alerte doublons + update

n°1853055
angelusflm
Posté le 19-02-2009 à 16:54:08  profilanswer
 

Bonjour :)
 
J'aimerai vérifier que mon champs "date" n'est pas déjà dans la bdd sinon ça retourne une erreur mais pas seulement.
J'aimerai en plus effectuer une modification dans la base, si la personne confirme qu'elle souhaite écraser le contenu précédent.
 
Je suis pour le moment que sur la partie "vérification" du champs qui ne fonctionne pas bien sur :p. Je vous joints mon code pour information j'ai une boucle "for" qui me permet d'ajouter autant d'entré que d'utilisateurs car mon formulaire renvoie un listing d'utilisateur qui se trouve dans ma BDD.
J'espère être clair :x
 

Code :
  1. <?php
  2. if(isset($_POST['valider']))
  3. {
  4. $indice = $_POST['numIndice'];
  5. $valider = $_POST['valider'];
  6. $date = $_POST['date'];
  7. function user_exists($date)
  8. {
  9. $sql = 'SELECT date FROM presence WHERE date = \'' . addslashes($date) . '\' LIMIT 1';
  10. $res = mysql_query($sql) or die (mysql_error());
  11. return (mysql_num_rows($res) == 1);
  12. }
  13. if(empty($_POST["date"]))
  14. {
  15. echo "Attention un des champs n'est pas correctement remplit.<a href='accueil.php'>Verifier</a>.";
  16. }
  17. else
  18. {
  19. if (user_exists($date))
  20. {
  21. echo('date deja enregistrer!<br />');
  22. }
  23. else
  24. {
  25. if ( $indice > 0 ) {
  26. for ( $i=0; $i < $indice; $i++ )
  27. {
  28. $nservice=$_POST['nservice'.$i];
  29. $agent=$_POST['agent'.$i];
  30. $nchrono=$_POST['nchrono'.$i];
  31. $etat=$_POST['etat'.$i];
  32. $login=$_POST['login'.$i];
  33. $requete ="INSERT INTO presence (id,nservice,date,agent,nchrono,etat,login) values ('','$nservice','$date','$agent','$nchrono','$etat','$login')";
  34. mysql_query($requete);
  35. }
  36. mysql_close();
  37. echo "La date &agrave; bien &eacute;t&eacute; prise en charge pour les ".$indice." agent";
  38. }
  39. }
  40. else
  41. echo "Merci de bien remplir le formulaire";
  42. ?>


 
vous pouvez retourner au <a href="accueil.php">menu principal</a>
 
Merci de votre aide future

mood
Publicité
Posté le 19-02-2009 à 16:54:08  profilanswer
 

n°1853058
macgawel
Posté le 19-02-2009 à 17:03:29  profilanswer
 

angelusflm a écrit :

Je suis pour le moment que sur la partie "vérification" du champs qui ne fonctionne pas bien sur :p.  
J'espère être clair :x


Ben justement, non...
Il ne fonctionne pas = ?
- Il plante ? Message d'erreur ?
- Le résultat n'est pas conforme aux attentes ? Pourquoi ?
- Ca dépend des cas ?
- Le PC crash et prend feu ?

n°1853319
angelusflm
Posté le 20-02-2009 à 09:30:15  profilanswer
 

Ca ne fonctionne pas depuis que j'ai mis ma fonction tri j'ai cette erreur
 
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.2009' at line 1"

n°1853328
macgawel
Posté le 20-02-2009 à 09:45:22  profilanswer
 

angelusflm a écrit :

Ca ne fonctionne pas depuis que j'ai mis ma fonction tri j'ai cette erreur
 
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.2009' at line 1"


Ligne 12 :

Code :
  1. $sql = 'SELECT date FROM presence WHERE date = \'' . addslashes($date) . '\' LIMIT 1';
  2. $res = mysql_query($sql) or die ($sql.'<br />'.mysql_error());


Ca va t'afficher la requête utilisée - si c'est bien celle-là qui plante...
 
Et après, c'est un problème de syntaxe SQL (a priori)

n°1853338
angelusflm
Posté le 20-02-2009 à 09:59:11  profilanswer
 

En faite je mal écrit ma requête je dois écrire 'SELECT `date` FROM ...
 
Maintenant il voit bien que j'ai déjà cette date d'enregistrement mais il m'ajoute quand même les donné dans la base :x

n°1853339
angelusflm
Posté le 20-02-2009 à 10:02:03  profilanswer
 

Et je ne peux pas créer un champs UNIQUE sur date puisque plusieurs agent peuvent avoir la même date

n°1853355
macgawel
Posté le 20-02-2009 à 11:17:39  profilanswer
 

angelusflm a écrit :

En faite je mal écrit ma requête je dois écrire 'SELECT `date` FROM ...
 
Maintenant il voit bien que j'ai déjà cette date d'enregistrement mais il m'ajoute quand même les donné dans la base :x


Cours vite faire breveter ça ! Un PC qui voit  :sol:  
Sérieusement, tu as un IF ... THEN ... ELSE ...
Donc, soit ta condition est remplie et tu passes dans le THEN, soit elle ne l'est pas et tu passes dans le ELSE.
Tu ne peux pas passer dans les deux à la fois...
 
1. Tu es sûr de ta syntaxe php ? Parce que là, si je vois bien, ta fonction user_exists($date) est dans le IF...
 
2. Essaye d'alléger tes imbrications de IF ... THEN ... ELSE, parce que là c'est un peu le foutoir. En fait, si tu as bien envoyé ton code, il y a un ELSE ... ELSE ... !
=> Pense à bien indenter ton code, ça aide...
 
3. Si ton schéma de BDD est correct, tu ne devrais pas avoir de problème pour faire ce que tu veux faire.
Un point important quand on travaille avec des BDDs : si une tâche demande trop de travail à implémenter, c'est quasiment tout le temps un  
problème de concetpion de BDD...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Alerte doublons + update

 

Sujets relatifs
Update SQLDétecter les doublons sur une base de données MYSQL
[sql]Requête qui affiche les doublons à partir d'un critèreBlocage accès formulaire & update auto
mise a jour de BD SQL en php avec "update"UPDATE Fonctionnel sur Easy php en local mais pas en ligne
PHP + MySQL : afficher une liste regroupée par doublons d'IP[JAVA/JSP] gestion des doublons
Suppresion des doublons d'une base de données[SQL] Aide à la réalisation d'une simple requête update
Plus de sujets relatifs à : Alerte doublons + update


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)