Solution PHP

WRInaute passionné
Bonjour,

Pour un moteur de recherche en php, j'ai besoin d'enregistrer les dernières requètes... mais je veux enregister que s'il n'y a pas deja un même enregistrement. Mais comment faire ?

Voilà deja comment j'ajoute :

....
mysql_query("INSERT INTO lasts (last) VALUES(\"$qry\")");
....


Merccccccccccccccccccccccccccccccci ! :idea: :?:
 
WRInaute occasionnel
Tu créés ta table avec une clé primaire sur la colonne last, et tu ajoutes un "@" devant mysql_query :) :)
 
WRInaute discret
Trop tard... c'est donc valable ce qui suit...
Mais le temps que j'écrive, me suis fait piquer la place.

sans rancune ! :wink:

Salut,

J'ai déja vu une autre solution :

- Tu déclare ta colonne "valeur" qui ne doit existe qu'une seule fois comme unique dans mysql. Du coup, tu auras un message d'erreur lors de l'interprétation de ta page php si la valeur existe déja dans la base. (l'insertion ne se fait donc pas).
Et pour masque le message d'erreur, tu rajoute un "@" devant ton mysql_query comme ça @mysql_query.

Je sais pas si c'est valable au niveau des ressources serveur, mais ça marche.

Bye
 
WRInaute occasionnel
Sinon, plus propre, avec la v4-et-des-brouettes de mysql, il existe la syntaxe:
INSERT INTO blabla
VALUES(blabal)
ON DUPLICATE KEY je sais plus quoi

Bref, voir la doc, donc. Sinon, en v3 de mysql, pour être propre, il te faut a priori deux requêtes sucessives (select count blabla limit 1 puis insert si pas trouvé), avec le pb d'accès concurrentiels que ça implique...
 
Discussions similaires
Haut