Bonjour,
Je me cantonne habituellement à des requêtes du style INSERT/SELECT les plus basiques et je me demande actuellement quelle est la meilleur manière d'insérer une ligne si la ligne en question n'existe pas encore.
Voici la situation pratique :
Ma page php est visitée par les visiteurs (j'entends par là que cette page est "fréquentée"/consultée relativement souvent, c'est une page "classique" du site).
Cette page contient un script php qui génère des données que je dois insérer dans ma table si ces données n'existent pas encore. Ces données sont plutôt simple puisque cela se résume à 4 champs dans une table :
var | date | author | mod
S'il y a un enregistrement pour date=$date et author=$author alors il ne faut pas enregistrer les données (car c'est que l'author a déjà enregistré des données à cette date - il ne peut pas y avoir 2 enregistrements à la même date pour un author).
Ces données sont fournies par une boucle php (qui fait 10 tours avec à chaque fois de nouvelles données à éventuellement insérer dans la table si les données n'y sont pas déjà donc).
Dois-je faire quelque chose du genre :
:- ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 while () { if (mysql_num_rows("SELECT * FROM table WHERE author='$author' AND date='$date')>0) { } else { INSERT ....; } }
Je pensais aussi n'exécuter ce bout de code qu'une fois sur 10 (je suis sur un mutualisé sans CRON, chose que je ne maitrise pas de toute façon) avec un rand(0,10), histoire d'alléger la page 9 fois sur 10 (j'estime qu'il y aura environ une dixaine de nouvelles lignes par page et par jour environ).
Mmm j'imagine qu'il y a plus optimisé, non :- ?
Partager