bonjour,
quelle est la methode la plus efficace pour verifier que les informations n'existent pas en base avant d'en inserer des nouvelles ?
merci
bonjour,
quelle est la methode la plus efficace pour verifier que les informations n'existent pas en base avant d'en inserer des nouvelles ?
merci
Bonjour,
tu fais une requête de selection pour verifier si les infos existent ...
Sur cette requete, tu compte le nombre de ligne retourné à l'aide de mysql_num_rows.
A partir du resultat tu fais une condition : si aucune ligne alors insert sinon update ou ce que tu veux ...
en fait j'ai cela mais ca marchais pas
ma syntaxte est peut etre pas bonne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $codearticlebase = mysql_query("SELECT code FROM article WHERE code='".$codearticle."'"); $nomarticle = mysql_query("SELECT nom FROM article WHERE nom='".$nomarticle."'"); if((mysql_num_rows($codearticlebase)>=1)&&((mysql_num_rows($nomarticle)>=1))){
Pourquoi ne pas faire simplement une seule requête ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $codearticlebase = mysql_query("SELECT code,nom FROM article WHERE code='$codearticle' AND nom='$nomarticle'"); if(mysql_num_rows($codearticlebase)==0){ //Ta requête d'insert } else{ Ton autre requete }
juste parce que je voulais bien voir mes deux variables :p
dans tous les cas meme avec ta methode, il rentre dans le if alors qu'il ne devrait pas.
C'est peut être comme ca :
ou comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if(mysql_num_rows($codearticlebase)==TRUE){ //Ta requête d'insert }
Ca fait longtemps que j'ai pas essayé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if(mysql_num_rows($codearticlebase)=0){ //Ta requête d'insert }
et si elles existent déjà tu ne fais rien
ou tu les mets à jour?
parce que si tu les mets à jour autant regarder comment faire avec un "ON DUPLICATE KEY"
en gros
si l'enregistrement n'existe pas ça fait une insertion
si l'enregistrement existe ça le met à jour sur ce que tu lui indiques
voilà un exemple
champ1 est la clé de la table
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 "INSERT INTO table (champ1, champ2) VALUES ('valeur1', 'valeur2') ON DUPLICATE KEY UPDATE champ2= 'valeur2' ";
si valeur1 n'est pas dans la table c'est un insert
si valeur1 est déjà dans la table c'est un update (et on met à jour le champ2 avec la valeur2)
hum en fait j'avais pas vu que je m'etais craque dans l'orde des fonctions pour le if
maintenant cela marche super bien :d j'avais une petite coquille lol
merci a vous
+++
finalement pour une autre fonction ca me serait pratique d'utiliser cette option.
mais on dirait qu'il aime pas ma formulation :p
mais ca doit pas etre cela la syntaxe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 function inserercodeKey($nomtable,$champs1,$champs2){ $this->execQuery("INSERT INTO $nomtable VALUES($champs1,$champs2) ON DUPLICATE KEY UPDATE code='$champs1' OR nom='$champs2'"); }
en gros j'ai que deux champs dans cette table (code & nom) et je veux que les deux soit mis a jour lorsque les donnees existe deja dans la base.
donc, c'est quoi la synthaxe exacte ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager