enregistrement sans doublons

Eléphant du PHP | 74 Messages

06 févr. 2006, 13:05

Bonjour tout le monde! (Ouaissssssss)
C'est encore moi.... (Ohhhhhhhhh)

Petit soucis en rapport à un précédent post (voir http://www.phpfrance.com/forums/voir_sujet-13953.php).
Je recupere et j'affiche la date et l'identifiant des personnes qui ce sont connectés. 9a, ça marche (merci le_cobra20). Le probleme c'est que si une personne se connecte 3 fois dans la journée (donc avec le même identifiant), mon affichage l'affiche évidemment 3 fois!

Donc en gros je voudrais éviter les doublons.
Genre avant l'écriture, lui dire : if cet_identifiant et cette_date est déja dans ma table, alors n'écris pas...

Mon code de la page d'insertion est :
<?php
session_start();
$host="localhost";
$login="root";
$pass="";
$base="ma_base";
$connect= mysql_connect($host,$login,$pass);
mysql_select_db($base, $connect);

   $query = 'INSERT INTO ma_table VALUES(NULL, "'.date("Y-m-d").'",  "'.$_SESSION['identifiant'].'")';
mysql_query($query, $connect);
header ("Location: index.php");
?>
Merci d'avance ;)

Eléphant du PHP | 383 Messages

06 févr. 2006, 14:16

dans la famille bourrin, je te propose une solution simple : dans ta base, designe le couple {login;date} comme unique. du coup, l'ajout d'un doublon generera une erreur, qu'il te suiffit de recuperer.

Eléphant du PHP | 74 Messages

06 févr. 2006, 14:55

... ça ne marche pas...
Si je mets les 2 champs en unique: plus rien ne s'affiche!
"mettre le couple en unique" : existe t-il une autre solution pour mettre le couple ensemble, et non chaque champs en unique?

Eléphant du PHP | 383 Messages

06 févr. 2006, 14:59

normalement oui, je ne me souviens pas de la syntaxe, mais il est possible de mettre un couple en unique. evidemment, si tu met chaque champ indiciduellement en unique, ca ne marche pas, puisque la date est repetee.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

06 févr. 2006, 15:10

Tiens SQL qui fait ça :

Code : Tout sélectionner

ALTER TABLE ma_table ADD UNIQUE id_unique ( identifiant , date )
Mais efface d'abord les doublons qui existent.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 74 Messages

06 févr. 2006, 15:17

oki merci à tous!!

Le code Sql fonctionne bien et il ne me renvoi pas de messages d'erreur.

Merci ;)